Yes, if you want to use local resources, all the related URLs in the DB would need to be updated. Better Search and Replace is a good way to accomplish this. Before doing that though, there is an alternative. You could edit your computer’s hosts file to interpret old domain requests as localhost (IP 127.0.0.1) requests. Then you needn’t change any DB data. The drawback is you’ll no longer be able to access the real old domain site from that computer, unless you remove the hosts entry. This is a great solution for some, others hate it.
It’s not a bad solution if you have another computer you can use to access the real old domain, or you don’t mind editing hosts and restarting the computer every time you want to switch. N.B: It is necessary to do a restart anytime you edit the hosts file. One big advantage in my mind is you can migrate your local DB back to production without having to do another search and replace. (not that search and replace is that big of a deal) Bear in mind that any changes to production after you’ve duplicated the DB to localhost will be lost when you migrate your local DB back to production. Attempting to somehow sync or merge changes is a headache and it’s best to avoid the need.
Hosts file location varies by O/S. Do an internet search to find out where it is for your specific O/S. To add a domain name to hosts for local access, add a line similar to:
127.0.0.1 old-domain.com