Recently I had to migrate a Report Server installation from one server to another by keeping the Report Server catalog intact. If you find yourself in the same situation, here are the steps (hope I recall them right ):
- If you haven’t done this already, back up the encryption key of the old RS installation. RS uses encryption keys to encrypt vital information, such as credentials, connection strings, etc. in the RS catalog. You won’t be able to point the new installation to use the old catalog if you don’t migrate the encryption keys. To extract (backup) your encryption keys, issue the following command:
rskeymgmt -e -fa:\keys.txt -p<password>, where
password is any password you want to use to secure the encryption keys. You will need it later to restore the encryption keys on the new installation. For more info about the encryption keys, read Bryan Keller’s posting (http://blogs.msdn.com/bryanke/archive/2004/03/18/92102.aspx).
- If you need to move the RS catalog to another machine, back up the ReportServer and ReportServerTempDB databases and restore them on the new SQL Server instance.
- Install RS on the new server. In the RS setup, specify different database names that the default ones, e.g. ReportServer1 and ReportServerTempDB1. We will later drop these databases since we will re-configure RS to point to the old RS catalog.
- Verify that RS is installed properly by browsing to the Report Manager portal.
- Make sure that the new installation is the exact same version as the ole one. For example, if the old RS installation has SP1 applied, apply SP1 to the new installation as well. Otherwise, you will get an error that the RS catalog version is different.
- Use the rsconfig utility to re-configure RS to use the old catalog, e.g.:
resconfig.exe –c –s -d -a -u -p
- At this point if you try to instantiate RS you will get rsNotActivatedError. Why? Because, RS is trying to decrypt the catalog data with the new encryption key which doesn’t match the old. Therefore, the last step is to migrate the encryption keys.
- Use the rskeymgmt utility to apply the old encryption keys, as follows:
rskeymgmt -a –f -p
That’s it.. and don’t forget to store the encryption keys file in a save place.