You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将SSRS快照数据从一台服务器迁移至另一台服务器?

SSRS报表快照跨服务器迁移(导入实现方案)

你提到已经能用PowerShell导出SSRS快照,但缺少导入方法,结合你提供的快照存储结构SQL,以下是直接针对SSRS数据库的导入方案(注:直接操作SSRS数据库属于非官方操作,执行前务必备份目标服务器的SSRS数据库):

核心逻辑说明

SSRS快照数据分散在SnapshotData、History、SegmentedChunk、ChunkSegmentMapping、Segment这几张关联表中,导入时需要按表的依赖顺序处理,同时确保目标服务器已存在对应报表(否则History表的ReportID无法匹配)。

步骤1:确认源数据范围

你提供的SQL可用于筛选需要迁移的快照数据,先在源服务器执行确认:

-- 查看指定报表的快照关联数据
SELECT * 
FROM [dbo].[SnapshotData] SD
JOIN dbo.History H ON h.SnapshotDataID = sd.SnapshotDataID
JOIN dbo.Catalog C ON c.ItemID = h.ReportID
JOIN dbo.SegmentedChunk SC ON SC.SnapshotDataId = SD.SnapshotDataID
JOIN dbo.ChunkSegmentMapping CSM ON csm.ChunkId = sc.ChunkId
JOIN dbo.Segment S ON s.SegmentId = csm.SegmentId
WHERE C.Path = '/你的报表路径' -- 替换为实际报表路径
ORDER BY c.Path, sd.CreatedDate DESC

步骤2:目标服务器导入操作

2.1 映射报表ID

先获取目标服务器对应报表的ItemID,后续替换History表中的ReportID:

DECLARE @TargetReportID UNIQUEIDENTIFIER = (SELECT ItemID FROM [dbo].[Catalog] WHERE Path = '/目标服务器报表路径');

2.2 按依赖顺序导入表数据

导入时需开启IDENTITY_INSERT以保留源数据的主键ID,避免冲突:

导入SnapshotData表

SET IDENTITY_INSERT [dbo].[SnapshotData] ON;
GO
INSERT INTO [dbo].[SnapshotData] (SnapshotDataID, CreatedDate, ExpirationDate, Size, Status, ExecutionID)
SELECT SnapshotDataID, CreatedDate, ExpirationDate, Size, Status, ExecutionID
FROM [源服务器IP].[源SSRS数据库名].[dbo].[SnapshotData] SD
JOIN [源服务器IP].[源SSRS数据库名].[dbo].[History] H ON H.SnapshotDataID = SD.SnapshotDataID
JOIN [源服务器IP].[源SSRS数据库名].[dbo].[Catalog] C ON C.ItemID = H.ReportID
WHERE C.Path = '/源服务器报表路径';
GO
SET IDENTITY_INSERT [dbo].[SnapshotData] OFF;
GO

导入History表

SET IDENTITY_INSERT [dbo].[History] ON;
GO
INSERT INTO [dbo].[History] (HistoryID, ReportID, SnapshotDataID, CreatedDate, ExpirationDate, Parameters)
SELECT HistoryID, @TargetReportID, SnapshotDataID, CreatedDate, ExpirationDate, Parameters
FROM [源服务器IP].[源SSRS数据库名].[dbo].[History] H
JOIN [源服务器IP].[源SSRS数据库名].[dbo].[Catalog] C ON C.ItemID = H.ReportID
WHERE C.Path = '/源服务器报表路径';
GO
SET IDENTITY_INSERT [dbo].[History] OFF;
GO

导入Segment表(Blob快照数据)

SET IDENTITY_INSERT [dbo].[Segment] ON;
GO
INSERT INTO [dbo].[Segment] (SegmentId, Data, CompressionType)
SELECT S.SegmentId, S.Data, S.CompressionType
FROM [源服务器IP].[源SSRS数据库名].[dbo].[Segment] S
JOIN [源服务器IP].[源SSRS数据库名].[dbo].[ChunkSegmentMapping] CSM ON CSM.SegmentId = S.SegmentId
JOIN [源服务器IP].[源SSRS数据库名].[dbo].[SegmentedChunk] SC ON SC.ChunkId = CSM.ChunkId
JOIN [源服务器IP].[源SSRS数据库名].[dbo].[SnapshotData] SD ON SD.SnapshotDataID = SC.SnapshotDataId
JOIN [源服务器IP].[源SSRS数据库名].[dbo].[History] H ON H.SnapshotDataID = SD.SnapshotDataID
JOIN [源服务器IP].[源SSRS数据库名].[dbo].[Catalog] C ON C.ItemID = H.ReportID
WHERE C.Path = '/源服务器报表路径';
GO
SET IDENTITY_INSERT [dbo].[Segment] OFF;
GO

导入SegmentedChunk表

SET IDENTITY_INSERT [dbo].[SegmentedChunk] ON;
GO
INSERT INTO [dbo].[SegmentedChunk] (ChunkId, SnapshotDataId, Sequence)
SELECT SC.ChunkId, SC.SnapshotDataId, SC.Sequence
FROM [源服务器IP].[源SSRS数据库名].[dbo].[SegmentedChunk] SC
JOIN [源服务器IP].[源SSRS数据库名].[dbo].[SnapshotData] SD ON SD.SnapshotDataID = SC.SnapshotDataId
JOIN [源服务器IP].[源SSRS数据库名].[dbo].[History] H ON H.SnapshotDataID = SD.SnapshotDataID
JOIN [源服务器IP].[源SSRS数据库名].[dbo].[Catalog] C ON C.ItemID = H.ReportID
WHERE C.Path = '/源服务器报表路径';
GO
SET IDENTITY_INSERT [dbo].[SegmentedChunk] OFF;
GO

导入ChunkSegmentMapping表

SET IDENTITY_INSERT [dbo].[ChunkSegmentMapping] ON;
GO
INSERT INTO [dbo].[ChunkSegmentMapping] (ChunkSegmentMappingId, ChunkId, SegmentId, Sequence)
SELECT CSM.ChunkSegmentMappingId, CSM.ChunkId, CSM.SegmentId, CSM.Sequence
FROM [源服务器IP].[源SSRS数据库名].[dbo].[ChunkSegmentMapping] CSM
JOIN [源服务器IP].[源SSRS数据库名].[dbo].[SegmentedChunk] SC ON SC.ChunkId = CSM.ChunkId
JOIN [源服务器IP].[源SSRS数据库名].[dbo].[SnapshotData] SD ON SD.SnapshotDataID = SC.SnapshotDataId
JOIN [源服务器IP].[源SSRS数据库名].[dbo].[History] H ON H.SnapshotDataID = SD.SnapshotDataID
JOIN [源服务器IP].[源SSRS数据库名].[dbo].[Catalog] C ON C.ItemID = H.ReportID
WHERE C.Path = '/源服务器报表路径';
GO
SET IDENTITY_INSERT [dbo].[ChunkSegmentMapping] OFF;
GO

验证迁移结果

导入完成后,在目标SSRS报表管理器中查看对应报表的历史快照,确认能正常加载和显示。

内容的提问来源于stack exchange,提问作者Gurthang99

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 01:50:25