sp_replmonitorhelpsubscription (Transact-SQL)
傳回屬於發行者端一或多個發行集之訂閱的目前狀態資訊,同時為每個傳回的訂閱,各傳回一個資料列。這個預存程序用來監視複寫,執行於散發資料庫的散發者端。
語法
sp_replmonitorhelpsubscription [ @publisher = ] 'publisher'
[ , [ @publisher_db = ] 'publisher_db' ]
[ , [ @publication = ] 'publication' ]
[ , [ @publication_type = ] publication_type ]
[ , [ @mode = ] mode ]
[ , [ @topnum = ] topnum ]
[ , [ @exclude_anonymous = ] exclude_anonymous ]
[ , [ @refreshpolicy = ] refreshpolicy ]
引數
[@publisher = ] 'publisher'
這是在監視其狀態的發行者名稱。publisher 是 sysname,預設值是 NULL。如果是 Null,就會傳回所有使用散發者之發行者的資訊。[@publisher_db = ] 'publisher_db'
這是已發行的資料庫名稱。publisher_db 是 sysname,預設值是 NULL。如果是 NULL,就會傳回發行者端所有已發行資料庫的資訊。[@publication = ] 'publication'
這是正在監視的發行集名稱。publication 是 sysname,預設值是 NULL。[@publication_type = ] publication_type
這是發行集的類型。publication_type 是 int,它可以是下列值之一。值
描述
0
交易式發行集。
1
快照式發行集。
2
合併式發行集。
NULL (預設值)
複寫會嘗試判斷發行集的類型。
[@mode = ] mode
這是傳回訂閱監視資訊時使用的篩選模式。mode 是 int,它可以是下列值之一。值
描述
0 (預設值)
傳回所有訂閱。
1
僅傳回有錯誤的訂閱。
2
僅傳回產生臨界值標準警告的訂閱。
3
僅傳回有錯誤或產生臨界值標準警告的訂閱。
4
傳回前 25 個執行最差的訂閱。
5
傳回前 50 個執行最差的訂閱。
6
僅傳回目前同步處理中的訂閱。
7
僅傳回目前不在同步處理中的訂閱。
[@topnum = ] topnum
限制結果集只包含傳回資料頂端指定數目的訂閱。topnum 是 int,沒有預設值。[@exclude_anonymous = ] exclude_anonymous
exclude_anonymous 是 bit,預設值是 0;1 值表示排除匿名訂閱,0 值則表示包含匿名訂閱。[@refreshpolicy= ] refreshpolicy
僅供內部使用。
結果集
資料行名稱 |
資料類型 |
描述 |
---|---|---|
status |
int |
發行集所有相關聯之複寫代理程式的最大狀態,它可能是下列值之一: 1 = 已啟動 2 = 成功 3 = 進行中 4 = 閒置 5 = 重試中 6 = 失敗 |
warning |
int |
屬於發行集之訂閱所產生的最大臨界警告,它可能是一或多個這些值的邏輯 OR 結果。 1 = expiration – 並未在保留期限臨界值內同步處理交易式發行集的訂閱。 2 = latency - 將交易式發行者的資料複寫到訂閱者所花的時間超出臨界值 (以秒為單位)。 4 = mergeexpiration – 並未在保留期限臨界值內同步處理合併式發行集的訂閱。 8 = mergefastrunduration - 利用快速網路連接來完成合併訂閱的同步處理所花的時間超出臨界值 (以秒為單位)。 16 = mergeslowrunduration - 利用慢速或撥號網路連接來完成合併訂閱的同步處理所花的時間超出臨界值 (以秒為單位)。 32 = mergefastrunspeed – 利用快速網路連接來進行合併訂閱同步處理期間,資料列傳遞速率無法維持臨界速率 (以每秒資料列數為單位)。 64 = mergeslowrunspeed – 利用慢速或撥號網路連接來進行合併訂閱同步處理期間,資料列傳遞速率無法維持臨界速率 (以每秒資料列數為單位)。 |
subscriber |
sysname |
這是訂閱者的名稱。 |
subscriber_db |
sysname |
這是訂閱所用資料庫的名稱。 |
publisher_db |
sysname |
這是發行集資料庫的名稱。 |
publication |
sysname |
這是發行集的名稱。 |
publication_type |
int |
這是發行集的類型,它可以是下列值之一: 0 = 交易式發行集 1 = 快照式發行集 2 = 合併式發行集 |
subtype |
int |
這是訂閱類型,它可以是下列值之一: 0 = 發送 1 = 提取 2 = 匿名 |
latency |
int |
交易式發行集的記錄讀取器或散發代理程式所傳播之資料變更的最高延遲 (以秒為單位)。 |
latencythreshold |
int |
這是交易式發行集引發警告的最大延遲。 |
agentnotrunning |
int |
這是代理程式未執行的時間長度 (以小時為單位)。 |
agentnotrunningthreshold |
int |
這是引發警告前代理程式未執行的時間長度 (以小時為單位)。 |
timetoexpiration |
int |
這是訂閱在未同步處理的情況下過期之前的時間長度 (以小時為單位)。 |
expirationthreshold |
int |
這是訂閱過期引發警告之前的時間 (以小時為單位)。 |
last_distsync |
datetime |
這是散發代理程式上次執行的日期時間。 |
distribution_agentname |
sysname |
這是訂閱交易式發行集之散發代理程式作業的名稱。 |
mergeagentname |
sysname |
這是訂閱合併式發行集之合併代理程式作業的名稱。 |
mergesubscriptionfriendlyname |
sysname |
這是提供給訂閱的易記名稱。 |
mergeagentlocation |
sysname |
這是執行合併代理程式所在伺服器的名稱。 |
mergeconnectiontype |
int |
同步處理訂閱合併式發行集時所用的連接,它可以是下列值之一: 1 = 區域網路 (LAN) 2 = 撥號網路連接 3 = Web 同步處理。 |
mergePerformance |
int |
以上一次同步處理的傳遞速率除以先前所有傳遞速率的平均值為基礎,上一次同步處理相對於訂閱之所有同步處理的效能。 |
mergerunspeed |
float |
這是訂閱上一次同步處理的傳遞速率。 |
mergerunduration |
int |
這是完成上一次訂閱同步處理的時間長度。 |
monitorranking |
int |
這是對結果集裡的訂閱進行排序所用的次序值,它可以是下列值之一: 對於交易式發行集: 60 = 錯誤 56 = 警告:效能嚴重不足 52 = 警告:即將過期或已過期 50 = 警告:訂閱未初始化 40 = 正在重試失敗的命令 30 = 未執行 (成功) 20 = 正在執行 (啟動中、執行中或閒置) 對於合併式發行集: 60 = 錯誤 56 = 警告:效能嚴重不足 54 = 警告:長時間執行的合併 52 = 警告:即將過期 50 = 警告:訂閱未初始化 40 = 正在重試失敗的命令 30 = 正在執行 (啟動中、執行中或閒置) 20 = 未執行 (成功) |
distributionagentjobid |
binary(16) |
訂閱交易式發行集之散發代理程式作業的識別碼。 |
mergeagentjobid |
binary(16) |
訂閱合併式發行集之合併代理程式作業的識別碼。 |
distributionagentid |
int |
訂閱之散發代理程式作業的識別碼。 |
distributionagentprofileid |
int |
散發代理程式所用代理程式設定檔的識別碼。 |
mergeagentid |
int |
訂閱之合併代理程式作業的識別碼。 |
mergeagentprofileid |
int |
合併代理程式所用代理程式設定檔的識別碼。 |
傳回碼值
0 (成功) 或 1 (失敗)
備註
sp_replmonitorhelpsubscription 用來搭配使用所有類型的複寫。
sp_replmonitorhelpsubscription 依據訂閱狀態嚴重性對結果集進行排序,由 monitorranking 的值所決定。例如,所有錯誤狀態中的訂閱資料列會排在警告狀態中的訂閱資料列上面。
權限
只有散發資料庫中的 db_owner 或 replmonitor 固定資料庫角色成員,才能夠執行 sp_replmonitorhelpsubscription。