You want to copy the Production environment down locally (database and files), then do the upgrade. I usually negotiate couple days or a week window where no changes should be made.
If there are a lot of database changes (say orders) and you can't afford to have a no-change window, still copy database and site locally, do the full upgrade so you have all the files fixed and document any non-code changes that need to occur for the upgrade, then when ready take down the live site, upgrade, copy and paste your already-fixed code, then push back up.
Just make sure that whenever you do a hotfix/major version upgrade, that you LOAD the website before continuing, it has to run code between 7 to 8, then 8 to 8.1, then 8.1 to 8.2 and 8.2 to 9 that only runs when the site loads.