如何:檢視並解決合併式發行集的資料衝突 (SQL Server Management Studio)
合併式複寫中的衝突根據為每個發行項指定的解決器進行解決。依預設,衝突的解決不需要使用者的介入。但是可以在「Microsoft 複寫衝突檢視器」(Replication Conflict Viewer) 中檢視衝突並變更解決的結果。
複寫衝突檢視器可以在衝突保留期限指定的時間內使用衝突資料 (預設為 14 天)。若要設定衝突保留期限,可以:
為 sp_addmergepublication (Transact-SQL) 的 @conflict_retention 參數指定保留值。
或指定 @property 參數的 conflict_retention 值,以及 sp_changemergepublication (Transact-SQL) 之 @value 參數的保留值。
依預設,會儲存衝突資訊:
如果發行集相容性層級為 90RTM 或更高,則是在發行者與訂閱者端。如需有關相容性層級的詳細資訊,請參閱<在複寫拓撲中使用多個 SQL Server 版本>主題中的<合併發行集的相容性層級>一節。
如果發行集相容性層級低於 80RTM,則是在發行者端。
如果「訂閱者」執行 SQL Server Compact 3.5 SP1,則會儲存在「發行者」端。衝突資料無法儲存在 SQL Server Compact 3.5 SP1 訂閱者上。
衝突資訊的儲存由 conflict_logging 發行集屬性控制。如需詳細資訊,請參閱<sp_addmergepublication (Transact-SQL)>和<sp_changemergepublication (Transact-SQL)>。
衝突也可以使用「Microsoft 互動式解決器」在同步處理期間以互動的方式解決。互動解決器可以從 Microsoft Windows Synchronization Manager 使用。如需詳細資訊,請參閱<如何:使用 Windows Synchronization Manager 同步處理訂閱 (Windows Synchronization Manager)>。
若要檢視並解決合併式發行集衝突
連接到 MicrosoftSQL Server Management Studio 中的「發行者」(或「訂閱者」,如果適用),然後展開伺服器節點。
展開 [複寫] 資料夾,然後展開 [本機發行集] 資料夾。
以滑鼠右鍵按一下您要檢視衝突的發行集,然後按一下 [檢視衝突]。
[!附註]
如果將 conflict_logging 屬性的值指定為 'subscriber',就無法使用 [檢視衝突] 功能表選項。若要檢視衝突,請從命令提示字元啟動 ConflictViewer.exe。依預設,ConflictViewer.exe 位於下列目錄:Microsoft SQL Server\100\Tools\Binn\VSShell\Common7\IDE。如需有效的啟動參數清單,請執行 ConflictViewer.exe -?。
在 [選取衝突資料表] 對話方塊中,選取要檢視衝突的資料庫、發行集和資料表。
在複寫衝突檢視器中,您可以:
使用上方格右側按鈕篩選資料列。
在上方格內選取資料列,以便於下方格的該資料列顯示資訊。
在上方方格中選取一或多個資料列,然後按一下 [移除],這相當於按一下 [提交成功者] 按鈕 (不會對資料進行任何變更)。
按一下屬性按鈕 ([…]) 以檢視更多有關於衝突的資料行資訊。
在提交資料之前,編輯 [衝突成功者] 或 [衝突失敗者] 資料行中的資料 (灰色資料行表示資料為唯讀)。
按一下 [提交成功者] 以接受指定為衝突成功者的資料列。
按一下 [提交失敗者],以覆寫解決並將指定為衝突失敗者的值傳播到拓撲中的所有節點。
選取 [記錄此衝突的詳細資料] 即可將衝突資料記錄到檔案中。若要指定檔案的位置,請指向 [檢視] 功能表,然後按一下 [選項]。輸入值,或按一下瀏覽按鈕 ([...]),然後導覽至適當的檔案。按一下 [確定] 以退出 [選項] 對話方塊。
關閉複寫衝突檢視器。