3

I have to migrate 770 SSRS Reports (Includes both Native mode and Sharepoint Mode Reports) from 2008 R2 version to SSRS 2016 version. Which is the best tool for this SSRS migration ? I have seen few tools like Microsoft Reporting Services Migration, RS script etc. Which one will be best in this case? Please help.

Sunjith
  • 76
  • 1
  • 11
  • You can back/restore the database to the new report server. You should also backup/restore the reporting services encyption key – niktrs Jul 20 '18 at 09:55
  • I agree with @niktrs but be careful when restoring ReportServer DB as some of the default procs have changed slightly in 2016 and will be overwritten by your backup, you will need to put these changes back in. So upgrade, keep the new procs, restore your DB, alter the procs back to new version. Either that or you could try to just restore the data rather than the procs. Either way I'm saying be careful :) – GandRalph Jul 24 '18 at 17:10
  • From tests restoring from 2005 to 2014, 2016 upgrades the database and everything seems to work fine. The only issue I had was with testing upgrades from 2005 to 2017, but you can overcome the problem if you first upgrade to 2016 backup and then restore to 2017 – niktrs Jul 24 '18 at 17:25
  • migration is one thing but how are you validating the data? We did similar migration and even basic count(1)'s would match but not the join conditions between 2008 r2 and 2016. But one step at a time. Migrate then validate. I'm sure before 2008 is removed from prod you will have to do this step. – junketsu Nov 16 '18 at 15:32
  • We are yet to migrate SQL Server 2008R2 to 2016. It will be done in the next phase. But we successfully migrated all the SSRS reports to the newer version. – Sunjith Nov 17 '18 at 02:44

3 Answers3

5

I too am in the midst of similar SSRS migration (2008SSRS:2016SSRS). You will likely need to migrate content such as: reports, shared data sources, shared data sets, report subscriptions. Below are some tools and processes that have used with pretty good sucess. I've included relevant links for Youtube videos, StackOverflow posts, and Microsoft pages.

Tools:

As an example, the following command moved all datasources from Source to Target server...

rs.exe -i ssrs_migration.rss -e Mgmt2010 -s http://gcod049/ReportServer -v ts=http://gcop046/reportserver -v f=”/Data Sources/03-PROD” -v tf=”/Data Sources”
  • Visual Studio 2015 with SSDT addin is my preferred environment for storing and deploying the files to the report files DEV SSRS server (.RDL- Report Definition , .RSD- Shared Datasets , .RDS- Shared Datasources, rptproj- Report Project).

    • I have a report project file for each target folder on the server (~20 ssrs folders and vs projects). You configure the SSRS Project with the appropriate deployment information (server url, ssrs version, target folder, etc.)
  • Version Control will help you be much more agile with report change requests. This will allow you to make changes to the report fiels (.RDL) and quickly restore or compare changes.

    • I use Visual Studio 2015 with ANKHSVN for Visual Studio connected to SVN server repository

    • I've heard others on the SO community recommend Microsoft Azure DevOps Services

Process:

  • I also analyzed the report execution history to identify reports no longer used. I decomissioned these reports the DEV SSRS server to a folder called something to the effect of: \Decomissioned\SSRS 2008 Migration\

Links:

Adriaan
  • 17,741
  • 7
  • 42
  • 75
SherlockSpreadsheets
  • 2,062
  • 3
  • 27
  • 47
0

The ReportingServicesTools Powershell module can help, too, if you're into Powershell.

But I'm not having luck with using it to push data sources pulled from the SSRS 2008R2 Server to the new SSRS 2016 server (e.g., using Write-RsFolderContent cmdlet), perhaps due to most of those data sources having passwords in them, and the two servers not having common encryption keys (e.g., the keys from the SSRS 2008R2 server were not extracted and then applied to the SSRS 2016 server). That's just a SWAG.

Write-RsFolderContent push a directory full of report .RDL files up, though.

MS has it documented well the "restore old db into new SSRS Server" scenario. Do note that this is a 1:1 migration.

If you have different AD users/roles on the new server compared to the old server, you might want to first set them up in the old SSRS instance first if you can (oops). It'll save some time and WTF??? If not, the cmdlets in ReportingServicesTools can bail you out, too, since it's twiddling things in the database directly.

Do refer to the MS page for all the details, especially if doing a SharePoint mode migration). This is only summary from recent memory for doing a "native" install/migration scenario:

  • backup the SSRS 2008R2 encryption keys
  • do a "files only" SSRS 2016 install
  • restore the SSRS 2008R2 databases (ReportServer, ReportServerTempDB) to the intended SQL Server 2016 server
  • In the SSRS 2016 reporting services manager app, point SSRS to the newly restored ReportServer database
  • Also, import the SSRS 208R2 encryption key file into the new SSRS 2016

Do note that the stored report RDLs do not get upgraded to the new SSRS 2016 namespaces, but they should still run in compatibility mode in SSRS 2016.

Is there a good bulk way to upgrade the RDLs to the new namespaces other than to use SSDT in VS 2015/2017? If not, then use the VS 2015/2017 hammer...

  • prereq: latest SSDT for VS2015 or VS2017
  • create a new SSRS project, one per SSRS folder (either for SSRS 2008R2 folder or new target folder on SSRS 2016)
  • add all the data sources needed for the reports to the project (they're needed to build the RDLs first) into the project
  • add all the old RDLs that you want to deploy to the target folder into the project
  • configure the project build properties to point to the target SSRS server, right report folder, etc.
  • Build the project, then Deploy the project (or individual reports)

From VS2015/2017 SSDT project, the RDLs in the project top-level folder will be converted to be SSRS 2016 RDL files.

What gets deployed are the RDLs from the /bin/[Debug|Debug Local|Release] folders after building the reports.

user1390375
  • 676
  • 6
  • 5
  • worked thru my problem. I needed to use New-RSDataSource (with fields from Get-RSDatasource, for a given datasource, on the old server). Of course, this leaves me to manually go in and set any passwords on the migrated datasources... but I can live with that. – user1390375 Mar 19 '19 at 23:27
0

You don't need a migration tool - steps are fairly easy to execute manually

Migration procedure:

1) Export your encryption key from SSRS Configuration Manager

2) Backout ReportServer & ReportServerTempDB databases

3) Copy these files over to the new environment

4) Install SQL Server & SSRS on the new node

5) Restore both Report databases over to the new node

6) Start the new SSRS service attaching to the "existing", newly-created database

7) Import old encryption key into the new SSRS Config Manager

8) Manually edit ReportServer.dbo.Keys table, deleting the record with the old node - eliminating "The feature: “Scale-out deployment” is not supported in this edition of Reporting Services. (rsOperationNotSupported)" - error. I think you can remove it from the Config Manager GUI as well, using the "Scale-out deployment" menu item.

9) Force creation of the default web services for the ReportManager and Reports URL from the Config Manager

You will then have a full node migrated. You will probably also need a recent Report Manager installed separately, depending on your SQL Server edition.

Migrated recently 2008 >> 2017, without much ado.

Hope this helps.

access_granted
  • 1,807
  • 20
  • 25