Q1 - Use extended events and capture the logon event and the statement started events to capture which db's have queries run against them.
Q2 - For me always backup and restore, then take the original DB offline.
Now for moving to SQL2017 why may I ask?
2017 is out of mainstream support already, has 4 years extended (best endeavours support from MSFT) left, so you're not going to get any bug fixes if you see any on 2017.
Should ideally be looking at moving everything now to 2022 or at a push 2019 to ensure you have the most life left in the system.