Ssrs

從 SSRS 2012 遷移到 SSRS 2017

  • October 16, 2018

我們公司正在從 SSRS 2012 遷移到 SSRS 2017。我想知道是否有人做過類似的遷移。如果是的話,你能指導我完成這些步驟嗎?

從我讀到的關於遷移的內容來看,這似乎是一個非常累人的過程,因為我必須從 2012 年的伺服器下載每個報告並將其上傳到 2017 年的伺服器。或使用 PowerShell 腳本自動執行相同的操作。

如果有人知道更好的方法,我會全力以赴。

謝謝

這是我用來遷移到新報表伺服器的過程。這是假設您尚未使用原始碼管理並且您的報表沒有 Visual Studio 解決方案。如果你這樣做,請跳到#4。如果您擁有數據庫權限,則可以使用 Microsoft 指南移動報表伺服器數據庫

1.備份部署的報告

  • 遠端到目前報表伺服器。

%systemroot%/system32/mstsc.exe

  • 然後將以下過程保存為 .rss 文件,並將參數parentFolder=""作為零字元串執行,以保存包含所有報告的整個文件夾結構。

命令行:

rs -s http://localhost/reportserver -i D:\Scripts\Backup_Reports.rss -e Mgmt2010 -v backupFolder="D:\Scripts\BackupReports" -v parentFolder=""

報告備份程序:

Public Sub Main()
   '--------------------------------------------------------------------------------------------------------------------
   ' Purpose:   Script to backup reports from a folder on ReportServer
   '            Save file as .rss extension and run using rs.exe from command line.
   ' Reference: http://bhushan.extreme-advice.com/back-up-of-ssrs-reports-using-rs-utility/
   '            https://docs.microsoft.com/en-us/sql/reporting-services/tools/rs-exe-utility-ssrs?view=sql-server-2017
   ' Example:   rs -s http://localhost/reportserver -i D:\Scripts\Backup_Reports.rss -e Mgmt2010 -v backupFolder="D:\Scripts\BackupReports" -v parentFolder="/IndividualReportFolderNameHere"
   '            rs -s http://localhost/reportserver -i D:\Scripts\Backup_Reports.rss -e Mgmt2010 -v backupFolder="D:\Scripts\BackupReports" -v parentFolder=""
   '--------------------------------------------------------------------------------------------------------------------
   Try
       rs.Credentials = System.Net.CredentialCache.DefaultCredentials
       Dim items As CatalogItem() = Nothing

       If String.IsNullOrEmpty(parentFolder) Then
           items = rs.ListChildren("/", True)
       Else
           items = rs.ListChildren(parentFolder, False)
       End If

       Console.WriteLine()
       Console.WriteLine("...Reports Back Up Started...")

       For Each item As CatalogItem In items
           If item.TypeName = "Report" Then
               Console.WriteLine(item.Path)
               Dim reportPath As String = item.Path
               parentFolder = Path.GetDirectoryName(item.Path) ' comment out this line to save the reports in one folder
               Dim reportDefinition As Byte() = rs.GetItemDefinition(item.Path)
               Dim rdlReport As New System.Xml.XmlDocument
               Dim Stream As New MemoryStream(reportDefinition)
               Dim backupPath As String = Path.Combine(backupFolder, Date.Now().ToString("yyyy.MM.dd") + "\" + parentFolder)

               If (Not System.IO.Directory.Exists(backupPath)) Then
                   System.IO.Directory.CreateDirectory(backupPath)
               End If

               rdlReport.Load(Stream)
               rdlReport.Save(Path.Combine(backupPath, item.Name + ".rdl"))

               Console.WriteLine(item.Name + ".rdl")
           End If
       Next

       Console.WriteLine("...Reports Back Up Completed...")
       Console.WriteLine()

   Catch e As Exception
       Console.WriteLine(e.Message)

   End Try

End Sub
  1. 創建 Visual Studio 解決方案

  • 在一個解決方案下為每個報表文件夾創建一個報表項目。
  • 從備份 .rdl 文件添加報告
  • 添加共享數據源
  • 添加共享數據集

截屏

  1. 使用 Microsoft Azure DevOps Services 的原始碼控制

4.設置部署配置

使用配置管理器為每個報表項目設置目標部署設置。

報告項目配置

截屏

配置管理器

截屏

  1. 建構解決方案

  • 我只將此選項用於初始建構。之後,您可以通過右鍵點擊它們並選擇來部署單個報告Deploy

截屏

我也在進行類似的 SSRS 遷移(2008SSRS:2016SSRS)。是的,報告需要從一台伺服器下載並移動到另一台伺服器。此外,您可能需要遷移其他 SSRS 內容——共享數據源、共享數據集、報告訂閱。以下是一些執行良好的工具和流程。

工具:

  • **ReportSync**是一個免費下載和使用的開源程序。它非常適合批量下載報告,甚至可以將報告從一台伺服器推送到另一台伺服器。

    • 我從 Github( http://github.com/phires/reportsync )下載了原始碼文件,執行 VS,打開解決方案文件(.SLN),編譯程序,從“C”中找到執行檔(.EXE) :\Temp\reportsync-master\bin\Release’ 文件夾,並將 .EXE 保存在某處供我定期使用
    • 這個導出功能非常棒,可以簡單地將所有 RDL 文件轉儲到一個文件夾中,以便我訪問並添加到 VS 解決方案項目中
  • **RS Utilitywithssrs_migration.rss**腳本文件類似於 ReportSync 程序,不同之處在於它是通過命令行執行並由 Microsoft 發布的。根據我的經驗,此實用程序將遷移比 ReportSync 更多的報告內容,但我認為它使用起來並不簡單,而且您不能輕易挑選要移動的內容(它將源中的所有內容移動到目標)。了解更多資訊:

例如,以下命令將所有數據源從源伺服器移動到目標伺服器…

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 項目
  • Version Control將幫助您更靈活地處理報告更改請求。這將允許您更改報告欄位 (.RDL) 并快速恢復或比較更改。

    • 我使用**Visual Studio 2015連接ANKHSVN for Visual StudioSVN server repository**

過程:

  • 我還分析了報表執行歷史,以確定不再使用的報表。我將 DEV SSRS 伺服器的這些報告停用到一個文件夾,其效果如下:\Decomissioned\SSRS 2008 Migration\

還可以查看我的一些 SO 文章,其中記錄了我的一些 SSRS 問題/答案。

9 個回答

+---------+--------------------------------------------------------------------+-------------------+
|   Votes |   SO Posted Answers                                                |   Posted          |
+---------+--------------------------------------------------------------------+-------------------+
|   0     |   Visual Studio SSRS RDL Files creating a new file (backup) when   |   Sep 28 at 19:28 |
|         |   opened                                                           |                   |
+---------+--------------------------------------------------------------------+-------------------+
|   0     |   is there a way to query future SSRS subscription schedules?      |   Sep 20 at 16:14 |
+---------+--------------------------------------------------------------------+-------------------+
|   0     |   There is an error in XML document (2, 2): Visual Studio, SSRS    |   Aug 10 at 14:50 |
|         |   Project file errors (VS2015-VS2017)                              |                   |
+---------+--------------------------------------------------------------------+-------------------+
|   0     |   AnkhSvn undo/revert a commit                                     |   Aug 8 at 17:04  |
+---------+--------------------------------------------------------------------+-------------------+
|   3     |   SSRS file error message: The number of defined parameters is not |   Jul 23 at 20:05 |
|         |   equal to the number of cell definitions in the parameter panel   |                   |
+---------+--------------------------------------------------------------------+-------------------+
|   0     |   How do I move subreports into their own folder?                  |   Jul 20 at 19:55 |
+---------+--------------------------------------------------------------------+-------------------+
|   1     |   SSRS Permissions                                                 |   Jul 9 at 17:43  |
+---------+--------------------------------------------------------------------+-------------------+
|   1     |   SSRS 2008 Report Snapshot Timestamp                              |   Jul 2 at 19:36  |
+---------+--------------------------------------------------------------------+-------------------+
|   2     |   Add ssrs report description                                      |   Jun 26 at 16:11 |
+---------+--------------------------------------------------------------------+-------------------+

其他收藏的文章

如果我不是報告的所有者,如何將 SSRS 報告複製到新伺服器(由 nunespascal 提供的 ReportSync 回答)

ssrs_migration.rss 文件(RS Utility 腳本文件下載)

SSRS 遷移 Sharepoint 集成到獨立(RS 實用程序腳本文件語法)

如何在不還原報表伺服器的情況下將 SSRS 數據源從一台伺服器遷移或複製到另一台伺服器(RS 實用程序腳本文件下載)

引用自:https://dba.stackexchange.com/questions/220206