This post topic is one that I look for often, since Reporting Services stores data for connection strings and settings encrypted, you need to take some steps when restoring the databases either to a new server in the case of migration or to a Test / Dev environment in the case of an environment refresh where you want all the same rights, users, reports for testing or application functionality.
Setup and Code:
- Backup the ReportServer and ReportServerTenpDB on the source server
- From the Reporting Services Configuration Console on the source server go to the EncryptionKeys node on the left navigation and choose Backup.
- Save the key to disk and copy it to your destination server.
- On the destination server stop the Reporting Services SQL Service from the Surface Area Configuration Manager
- Restore the backup of ReportServer and ReportServerTempDB to the destination server.
- On the Destination Server restart the SQL Server Reporting Services Service from Surface Area Configuration Manager.
- Connect to the Reporting Services Configuration Manager on the destination server and choose Database node from the left navigation.
- Choose Change Database > Choose Existing report server database.
- Select the restored database called ReportServer on the destination instance.
- From the left navigation choose Encryption keys, then choose Restore.
- Restore the encryption key on the destination from the file you copied in step 3.
- From SSMS on the destination server run a select * from ReportServer.dbo.Keys. Here you are looking for a row where the InstanceName column is the name of the Source Server. Delete this one row. If you miss this step when you browse to the reporting services home page it will throw an error that “Scale Out deployment is not supported by this version of reporting services”
- Browse to the Reporting Services home page http://destinationserver/reportserver/pages/folder.aspx. The page should load normally with all reports / folders available.
This article discusses how to migrate reporting services to a new server instance while keeping all reports / datasources and users intact.