由于關系數據庫的機制要求合并復制數據同步時需要有良好的自治性,SQL Server的合并復制的應用場景相對比較少。一些典型的應用場景比如異地數據同步,跨洋的數據同步等。由于網絡延時以及該種業務有相對比較大的數據獨立性,因此在合并復制在某些場景會比較合適。
在一些情況下,合并復制如果由于某些原因壞掉,需要重新初始化,而由于網絡帶寬的限制,用快照重新初始化稍微大一點的庫基本不現實,因此需要考慮使用通過備份初始化,在初始化過程中,我遇到了如下錯誤:
{call sp_MSsetconflicttable (N'__UserSyncOptions', N'MSmerge_conflict_Main___UserSyncOptions', N'DB/MAIN', N'DB1', N'Main')}
Incorrect syntax near 'Id'.
后來通過排查發現,疏忽了關鍵步驟,因此在此寫下從備份初始化合并復制的正確姿勢:
1.為需要合并復制的表添加唯一的RowGuid列,該列是合并復制用于確認行的唯一依據,因此該列有如下要求:
該列的添加腳本為:
BEGIN TRANSACTION
SET QUOTED_IDENTIFIER ON
SET ARITHABORT ON
SET NUMERIC_ROUNDABORT OFF
SET CONCAT_NULL_YIELDS_NULL ON
SET ANSI_NULLS ON
SET ANSI_PADDING ON
SET ANSI_WARNINGS ON
COMMIT
新聞熱點
疑難解答