SSRS 2008 R2到SSRS 2016的迁移

3

我需要将770个SSRS报表(包括本地模式和Sharepoint模式报表)从2008 R2版本迁移到SSRS 2016版本。哪个工具是最适合进行此SSRS迁移的?我看到了一些工具,如Microsoft Reporting Services Migration、RS脚本等。在这种情况下哪一个最好?请帮忙。


您可以将数据库备份/还原到新的报告服务器。您还应该备份/还原报告服务加密密钥。 - niktrs
我同意@niktrs的看法,但在恢复ReportServer DB时要小心,因为2016年的一些默认过程稍有变化,并且将被备份覆盖,您需要重新进行这些更改。 因此,升级,保留新的过程,恢复您的DB,将过程更改回新版本。 或者,您可以尝试仅还原数据而不是过程。 无论哪种方式,我都要说要小心 :) - GandRalph
从2005年到2014年的测试中,2016年升级了数据库,一切似乎都正常工作。我遇到的唯一问题是测试从2005年升级到2017年时出现了问题,但如果您首先升级到2016备份,然后恢复到2017,您就可以克服这个问题。 - niktrs
迁移是一回事,但你如何验证数据呢?我们进行了类似的迁移,即使基本的 count(1) 匹配,但 2008 r2 和 2016 之间的 join 条件不匹配。但一步一步来。先迁移再验证。我相信在从生产环境中删除 2008 年之前,你必须完成这一步骤。 - junketsu
我们还没有将SQL Server 2008R2迁移到2016版本,这将在下一阶段完成。但是我们已经成功地将所有SSRS报告迁移到了新版本。 - Sunjith
3个回答

5

我也在进行类似的SSRS迁移(2008SSRS:2016SSRS)。您可能需要迁移以下内容:报告、共享数据源、共享数据集、报告订阅。以下是一些工具和流程,它们已经被广泛使用并取得了不错的成功。我包含了相关的Youtube视频、StackOverflow帖子和Microsoft页面链接。

工具:

作为一个例子,下面的命令将所有数据源从源服务器移动到目标服务器...
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是我首选的环境,用于存储和部署报表文件到报表文件DEV SSRS服务器(.RDL-报表定义,.RSD-共享数据集,.RDS-共享数据源,rptproj-报表项目)。

    • 我为服务器上每个目标文件夹都有一个报表项目文件(约20个ssrs文件夹和vs项目)。您可以使用适当的部署信息(server urlssrs versiontarget folder等)配置SSRS项目。
  • 版本控制将帮助您更加敏捷地处理报表变更请求。这将允许您更改报表文件(.RDL)并快速还原或比较更改。

    • 我使用连接到SVN服务器仓库ANKHSVN for Visual StudioVisual Studio 2015

    • 我听说过其他SO社区成员推荐Microsoft Azure DevOps Services

流程:

  • 我还分析了报表执行历史记录,以识别不再使用的报表。我将这些报表退役到名为\Decomissioned\SSRS 2008 Migration\的文件夹中的DEV SSRS服务器。

链接:


0

您不需要迁移工具 - 手动执行步骤相当容易

迁移过程:

1)从SSRS配置管理器中导出加密密钥

2)回滚ReportServer和ReportServerTempDB数据库

3)将这些文件复制到新环境中

4)在新节点上安装SQL Server和SSRS

5)将两个报告数据库恢复到新节点上

6)启动新的SSRS服务,连接到“现有”的新创建的数据库

7)将旧的加密密钥导入新的SSRS配置管理器中

8)手动编辑ReportServer.dbo.Keys表,删除旧节点的记录-消除“此版本的Reporting Services不支持“扩展部署”功能。 (rsOperationNotSupported)”-错误。我认为您也可以使用“Scale-out deployment”菜单项从Config Manager GUI中删除它。

9)从Config Manager强制创建ReportManager和Reports URL的默认Web服务

然后,您将拥有一个完整的已迁移节点。根据您的SQL Server版本,您可能还需要单独安装最新的Report Manager。

最近迁移了2008 >> 2017,没有太多的麻烦。

希望这可以帮到你。


0

ReportingServicesTools PowerShell模块也可以帮助,如果您熟悉PowerShell的话。

但是我在使用它将从SSRS 2008R2服务器提取的数据源推送到新的SSRS 2016服务器时没有成功(例如,使用Write-RsFolderContent cmdlet),可能是因为这些数据源中大多数都有密码,并且两个服务器没有共同的加密密钥(例如,来自SSRS 2008R2服务器的密钥未被提取然后应用于SSRS 2016服务器)。这只是一个猜测。

不过,Write-RsFolderContent可以推送一个包含报告.RDL文件的目录。

Microsoft已经很好地记录了“将旧数据库还原到新的SSRS服务器”场景。请注意,这是一种1:1的迁移。

如果新服务器上的AD用户/角色与旧服务器不同,您可能需要先在旧的SSRS实例中设置它们(糟糕)。如果可以的话,这将节省一些时间和困惑。否则,ReportingServicesTools中的cmdlet也可以直接在数据库中调整。

请参考微软页面获取所有详细信息,特别是在进行SharePoint模式迁移时。以下仅为最近记忆中进行“本地”安装/迁移方案的摘要:

  • 备份SSRS 2008R2加密密钥
  • 仅安装文件的SSRS 2016安装
  • 将SSRS 2008R2数据库(ReportServer、ReportServerTempDB)恢复到预定的SQL Server 2016服务器上
  • 在SSRS 2016报告服务管理器应用程序中,将SSRS指向新恢复的ReportServer数据库
  • 此外,将SSRS 208R2加密密钥文件导入新的SSRS 2016

请注意,存储的报告RDL不会升级到新的SSRS 2016命名空间,但它们应该仍然在SSRS 2016兼容模式下运行。

除了使用VS 2015/2017中的SSDT之外,是否有一种好的批量方式将RDL升级到新的命名空间?如果没有,那么请使用VS 2015/2017工具...

  • 先决条件:VS2015或VS2017的最新SSDT
  • 创建一个新的SSRS项目,每个SSRS文件夹一个(无论是为了SSRS 2008R2文件夹还是在SSRS 2016上的新目标文件夹)
  • 将所有报告所需的数据源添加到项目中(它们需要首先构建RDLs),并将它们添加到项目中
  • 将要部署到目标文件夹中的所有旧RDL都添加到该项目中
  • 将项目构建属性配置为指向目标SSRS服务器、正确的报告文件夹等。
  • 构建项目,然后部署项目(或单独的报告)

从VS2015/2017 SSDT项目中,项目顶层文件夹中的RDL将被转换为SSRS 2016 RDL文件。

部署的是在构建报告之后位于/bin/[Debug|Debug Local|Release]文件夹中的RDLs。


解决了我的问题。我需要使用New-RSDataSource(使用Get-RSDatasource中的字段,针对旧服务器上的给定数据源)。当然,这让我手动设置迁移后数据源上的任何密码...但我可以接受这一点。 - user1390375

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接