使系統進入靜止狀態 涉及停止所有節點上已發行數據表上的活動,並確保每個節點都已接收到來自所有其他節點的所有變更。 本文說明如何使復寫拓撲停止活動,這是許多系統管理任務的必要步驟,以及如何確保節點已收到來自其他節點的所有變更。
若要停止具有只讀訂閱的事務複製拓撲
停止發行者端所有已發行數據表的活動。
在發行者的出版資料庫上,執行 sp_posttracertoken (Transact-SQL) 。
在發行資料庫的發行者中,執行 sp_helptracertokenhistory。
確定每個訂閱者都已收到追蹤令牌。
若要暫停具可更新訂閱的事務性複寫拓撲結構
停止在發行人和所有訂閱端的已發行資料表上的活動。
如果有任何訂閱者使用排隊更新的訂閱:
如果佇列讀取器代理程式未以連續模式執行,請執行代理程式。 如需執行代理程式的詳細資訊,請參閱 複寫代理程式可執行檔的概念 或 在 SQL Server Management Studio 中啟動和停止複寫代理程式。
若要確認佇列是空的,請在每個訂閱者端執行 sp_replqueuemonitor 。
在發行集資料庫的發行者上,執行 sp_posttracertoken。
在發行資料庫的發行者處,執行 sp_helptracertokenhistory。
確定每個訂閱者都已收到追蹤令牌。
若要暫停點對點事務性複製拓撲
在所有節點上停止所有已發行數據表上的活動。
在拓撲中的每個發行集資料庫上執行 sp_requestpeerresponse 指令。
如果記錄讀取器代理程式或散發代理程式未以連續模式執行,請執行代理程式。 必須在散發代理程式之前啟動記錄讀取器代理程式。 如需運行代理程式的詳細資訊,請參閱複寫代理程式可執行檔概念或啟動和停止複寫代理程式 (SQL Server Management Studio)。
在拓撲中的每個發行資料庫上執行 sp_helppeerresponses。 確定結果集包含來自其他每個節點的回應。
確保點對點節點已收到所有先前的變更
在您要檢查之節點上的發行集資料庫上執行 sp_requestpeerresponse 。
如果記錄讀取器代理程式或散發代理程式未以連續模式執行,請執行代理程式。 記錄讀取器代理程式必須在散發代理程式之前啟動。 如需有關運行代理程式的更多資訊,請參閱複寫 代理程式可執行檔概念 或 啟動和停止複寫代理程式 (SQL Server Management Studio) 。
在您要檢查之節點上的發行集資料庫上執行 sp_helppeerresponses 。 確定結果集包含來自其他每個節點的回應。
要使合併式複寫拓撲達到靜止狀態
停止發行者端和所有訂閱者上所有已發行數據表的活動。
針對每個訂用帳戶執行合併代理程式兩次:同步處理所有訂用帳戶一次,然後第二次同步處理每個訂閱。 這可確保所有變更都會復寫到所有節點。 如需有關執行代理程式的詳細資訊,請參閱 複寫代理程式執行檔概念 或 啟動和停止複寫代理程式(SQL Server Management Studio)。
備註
如果在同步處理期間發生衝突,衝突解決所需的變更有可能在執行合併代理程式兩次之後仍然無法傳播到所有節點。