如何:以程式設計方式監視複寫 (複寫 Transact-SQL 程式設計)

「複寫監視器」是一個允許您監視複寫拓樸之全面健全狀況的圖形化工具。您可以使用複寫預存程序以程式設計的方式存取相同的監視資料。這些預存程序可用來設計下列工作:

  • 監視「發行者」、發行集和訂閱的狀態。

  • 在一或多個「訂閱者」端監視「合併代理程式」的工作階段。

  • 監視在一或多個「訂閱者」端等候套用的交易式命令。

  • 定義臨界值標準,以決定發行集何時需要介入。

若要從散發者監視發行者、發行集和訂閱

  1. 在散發資料庫的「散發者」端,執行 sp_replmonitorhelppublisher。這會為所有使用此「散發者」的「發行者」傳回監視資訊。若要將結果集限制為單一「發行者」,請指定 @publisher

  2. 在散發資料庫的「散發者」端,執行 sp_replmonitorhelppublication。這會為所有使用此「散發者」的發行集傳回監視資訊。若要將結果集限制為單一「發行者」、發行集或已發行資料庫,請分別指定 @publisher@publication@publisher_db

  3. 在散發資料庫的「散發者」端,執行 sp_replmonitorhelpsubscription。這會為所有使用此「散發者」的訂閱傳回監視資訊。若要將結果集限制為屬於單一「發行者」、發行集或已發行資料庫的訂閱,請分別指定 @publisher@publication@publisher_db

若要監視在訂閱者端等候套用的交易式命令

  • 在散發資料庫的「散發者」端,執行 sp_replmonitorsubscriptionpendingcmds。這會為所有使用此「散發者」的訂閱傳回所有暫止命令的監視資訊。若要將結果集限制為屬於單一「發行者」、「訂閱者」、發行集或已發行資料庫之訂閱的暫止命令,請分別指定 @publisher@subscriber@publication@publisher_db

若要監視等候上載或下載的合併變更

  1. 在發行集資料庫的「發行者」端,執行 sp_showpendingchanges。這會傳回結果集,顯示正等候複寫至「訂閱者」之變更的相關資訊。若要將結果集限制為屬於單一發行集或發行項的變更,請分別指定 @publication@article

  2. 在訂閱資料庫的「訂閱者」端,執行 sp_showpendingchanges。這會傳回結果集,顯示正等候複寫至「發行者」之變更的相關資訊。若要將結果集限制為屬於單一發行集或發行項的變更,請分別指定 @publication@article

若要監視合併代理程式的工作階段

  1. 在散發資料庫的「散發者」端,執行 sp_replmonitorhelpmergesession。這會針對所有使用此「散發者」的訂閱,傳回有關「合併代理程式」工作階段的監視資訊,包括 Session_id。您也可以藉由查詢 MSmerge_sessions 系統資料表來取得 Session_id

  2. 在散發資料庫的「散發者」端,執行 sp_replmonitorhelpmergesessiondetail。針對 @session_id 指定步驟 1 的 Session_id 值。這會顯示有關工作階段的詳細監視資訊。

  3. 針對每個感興趣的工作階段重複步驟 2。

若要從訂閱者監視提取訂閱的合併代理程式工作階段

  1. 在訂閱資料庫的「訂閱者」端,執行 sp_replmonitorhelpmergesession。針對給定的訂閱指定 @publisher@publication,及 @publisher_db 的發行集資料庫名稱。這會傳回此訂閱最後五個「合併代理程式」工作階段的監視資訊。請注意結果集中感興趣之工作階段的 Session_id 值。

  2. 在訂閱資料庫的「訂閱者」端,執行 sp_replmonitorhelpmergesessiondetail。針對 @session_id 指定步驟 1 的 Session_id 值。這會顯示有關工作階段的詳細監視資訊。

  3. 針對每個感興趣的工作階段重複步驟 2。

若要檢視和修改發行集的監視臨界值標準

  1. 在散發資料庫的「散發者」端,執行 sp_replmonitorhelppublicationthresholds。這會傳回為所有使用此「散發者」的發行集所設定的監視臨界值。若要將結果集限制為監視屬於單一「發行者」或已發行資料庫之發行集的臨界值或監視單一發行集的臨界值,請分別指定 @publisher@publisher_db@publication。請注意必須變更之任何臨界值的 Metric_id 值。如需詳細資訊,請參閱<在複寫監視器中設定臨界值和警告>。

  2. 在散發資料庫的「散發者」端,執行 sp_replmonitorchangepublicationthreshold。視需要指定下列項目:

    • 針對 @metric_id 指定在步驟 1 中取得的 Metric_id 值。

    • 針對 @value 指定監視臨界值標準的新值。

    • 針對 @shouldalert,指定 1 的值以在達到此臨界值時記錄警示,或者如果不需要警示,則指定 0 的值。

    • 針對 @mode,指定 1 的值以啟用監視臨界值標準;或指定 2 的值加以停用。