It's not actually that difficult. The only annoying part is that you need to uninstall your original CRM server, to stop it from keeping a lock on your MSCRM_Config database.
- Backup your MSCRM_Config and Organization_MSCRM databases.
- Uninstall CRM from Server 1
- Install CRM on Server 2
- During Deployment Options, choose Existing deployment
- Point towards your existing SQL Server
There is a technet article with a more thorough explanation available.
See step 11 in particular:
On the Specify Deployment Options page, if Setup detects an existing deployment, you can select whether you want to create a new deployment or connect to an existing deployment. In the Enter or select the name of the computer that is running SQL Server to use with the deployment box, type or select the instance of SQL Server that will be used to store the Microsoft Dynamics CRM database (MSCRM_CONFIG).
While the article says:
Only one deployment is supported for each instance of SQL Server.
You can easily work around this by renaming the MSCRM_Config database, and adjusting the relevant registry entries. Then installing a new instance with a new MSCRM_Config database on the same server.
But there are a lot of blogs and posts out there showing that this process can easily go wrong. If at all possible, test out your migration in a DEV environment first and avoid having two CRM servers installed on a single SQL Server.