Hi there,
If your GoCD setup only uses static agents then restoring the production instance to a test server should be perfectly safe. Since it is the agents that do the work and the agents will not be connected to the test GoCD instance, there would be no workers available to do anything that might interact with your production systems. Once the test system is online you should make any necessary changes to the configuration to ensure that if a pipeline _does_ run from the test instance then it will not interact with your production environment(s). Then you can bring one or more test agents online and connect them to the test server.
If you are using elastic agents, things might be more complicated. I have not experimented with elastic agents yet, but I believe that the way they work is that the GoCD server will call out to whichever orchestrator to request an agent be brought online whenever a job needs to run. If that is the case, you will need to ensure that the test GoCD server is unable to talk to the elastic agent controller that the production server uses.
With that said, I am curious about your use case. What is it that you want to test in GoCD that you believe requires using a copy of the production GoCD database?
Regards,
Jason Smyth