停止複寫拓撲 (複寫 Transact-SQL 程式設計)

適用于:SQL ServerAzure SQL 受控執行個體

「停止」系統包括停止所有節點上已發行資料表的活動,並確定每個節點已收到來自其他所有節點的所有變更。 本主題說明如何停止複寫拓撲 (此為數項管理工作所需),以及如何確定節點已從其他節點接收到所有變更。

若要使用唯讀訂閱停止異動複寫拓撲

  1. 停止在「發行者」端的所有已發行資料表上的活動。

  2. 在發行集資料庫的發行者上,執行 sp_posttracertoken (Transact-SQL)

  3. 在發行集資料庫的「發行者」端,執行 sp_helptracertokenhistory

  4. 確保每個「訂閱者」已接收追蹤 Token。

若要使用可更新的訂閱停止異動複寫拓撲

  1. 停止在「發行者」端和所有「訂閱者」端的所有已發行資料表上的活動。

  2. 如果任何「訂閱者」使用佇列更新訂閱:

    1. 如果「佇列讀取器代理程式」並非以連續模式執行,請執行該代理程式。 如需執行代理程式的詳細資訊,請參閱複寫代理程式可執行檔概念啟動和停止複寫代理程式 (SQL Server Management Studio)

    2. 若要確認佇列是空的,請在每個「訂閱者」端執行 sp_replqueuemonitor

  3. 在發行集資料庫的「發行者」端,執行 sp_posttracertoken

  4. 在發行集資料庫的「發行者」端,執行 sp_helptracertokenhistory

  5. 確保每個「訂閱者」已接收追蹤 Token。

若要停止點對點異動複寫拓撲

  1. 停止在所有節點的所有已發行資料表上的活動。

  2. 在拓撲中的每個發行集資料庫上執行 sp_requestpeerresponse

  3. 如果「記錄讀取器代理程式」或「散發代理程式」並非以連續模式執行,請執行該代理程式。 「記錄讀取器代理程式」必須在「散發代理程式」之前啟動。 如需執行代理程式的詳細資訊,請參閱複寫代理程式可執行檔概念啟動和停止複寫代理程式 (SQL Server Management Studio)

  4. 在拓撲中的每個發行集資料庫上執行 sp_helppeerresponses 。 確定結果集包含其他每個節點的回應。

若要確定對等節點已接收所有先前的變更

  1. 在您所檢查之節點的發行集資料庫上執行 sp_requestpeerresponse

  2. 如果「記錄讀取器代理程式」或「散發代理程式」並非以連續模式執行,請執行該代理程式。 「記錄讀取器代理程式」必須在「散發代理程式」之前啟動。 如需執行代理程式的詳細資訊,請參閱複寫代理程式可執行檔概念啟動和停止複寫代理程式 (SQL Server Management Studio)

  3. 在您所檢查之節點的發行集資料庫上執行 sp_helppeerresponses 。 確定結果集包含其他每個節點的回應。

若要停止合併式複寫拓撲

  1. 停止在「發行者」端和所有「訂閱者」端的所有已發行資料表上的活動。

  2. 針對每項訂閱執行合併代理程式兩次:同步處理所有訂閱一次,然後再同步處理每個訂閱一次。 這可確保所有的變更都會複寫到所有節點。 如需執行代理程式的詳細資訊,請參閱複寫代理程式可執行檔概念啟動和停止複寫代理程式 (SQL Server Management Studio)

    注意

    如果在同步處理期間發生衝突,則在執行「合併代理程式」兩次之後,衝突解決所需的變更有可能不會傳播到所有節點。

另請參閱

管理點對點拓撲 (複寫 Transact-SQL 程式設計)
針對異動複寫測量延遲及驗證連接