sp_replmonitorhelpsubscription (Transact-SQL)
適用於:SQL Server Azure SQL 受控執行個體
針對屬於發行者端一或多個發行集的訂閱,傳回目前的狀態資訊,並針對每個傳回的訂閱傳回一個數據列。 這個用來監視複寫的預存程式會在散發資料庫的散發者端執行。
語法
sp_replmonitorhelpsubscription
[ [ @publisher = ] N'publisher' ]
[ , [ @publisher_db = ] N'publisher_db' ]
[ , [ @publication = ] N'publication' ]
[ , [ @publication_type = ] publication_type ]
[ , [ @mode = ] mode ]
[ , [ @topnum = ] topnum ]
[ , [ @exclude_anonymous = ] exclude_anonymous ]
[ , [ @refreshpolicy = ] refreshpolicy ]
[ ; ]
引數
[ @publisher = ] N'publisher'
正在監視其狀態的發行者名稱。 @publisher為 sysname,預設值為 NULL
。 如果 為 null,則會傳回所有使用散發者之發行者的資訊。
[ @publisher_db = ] N'publisher_db'
已發佈資料庫的名稱。 @publisher_db為 sysname,預設值為 NULL
。 如果 NULL
為 ,則會傳回發行者端所有已發行資料庫的資訊。
[ @publication = ] N'publication'
要監視的發行集名稱。 @publication為 sysname,預設值為 NULL
。
[ @publication_type = ] publication_type
如果發行集的類型。 @publication_type為 int,而且可以是下列其中一個值。
值 | Description |
---|---|
0 |
交易式發行集。 |
1 |
快照式發行集。 |
2 |
合併式發行集。 |
NULL (預設值) |
複寫會嘗試判斷發行集類型。 |
[ @mode = ] 模式
傳回訂閱監視資訊時要使用的篩選模式。 @mode為 int,而且可以是下列其中一個值。
值 | Description |
---|---|
0 (預設值) |
傳回所有訂用帳戶。 |
1 |
只傳回發生錯誤的訂用帳戶。 |
2 |
只傳回產生臨界值計量警告的訂用帳戶。 |
3 |
只傳回有錯誤的訂用帳戶,或產生臨界值計量警告。 |
4 |
傳回表現最差的前 25 個訂用帳戶。 |
5 |
傳回表現最差的前 50 個訂用帳戶。 |
6 |
只傳回目前正在同步處理的訂用帳戶。 |
7 |
只傳回目前未同步處理的訂用帳戶。 |
[ @topnum = ] topnum
將結果集限制為傳回數據頂端的指定訂用帳戶數目。 @topnum為 int,預設值為 NULL
。
[ @exclude_anonymous = ] exclude_anonymous
如果匿名提取訂閱已從結果集排除。 @exclude_anonymous為 bit,預設值為 0
。
- 的值
1
表示會排除匿名訂閱。 - 的值
0
表示它們已包含在內。
[ @refreshpolicy = ] refreshpolicy
僅供參考之用。 不支援。 我們無法保證未來的相容性。
結果集
資料行名稱 | 資料類型 | 描述 |
---|---|---|
status |
int | 檢查與發行集相關聯之所有復寫代理程序的狀態,並傳回下列順序中找到的最高狀態:6 = 失敗5 = 重試2 = 已停止4 = 閑置3 = 進行中1 = 已啟動 |
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 |
二進位(16) | 交易式發行集訂閱之 散發代理程式 作業的標識碼。 |
mergeagentjobid |
二進位(16) | 合併式發行集訂閱之 合併代理程式 作業的標識碼。 |
distributionagentid |
int | 訂用帳戶 散發代理程式 作業的標識碼。 |
distributionagentprofileid |
int | 散發代理程式 所使用的代理程式設定檔標識碼。 |
mergeagentid |
int | 訂用帳戶 合併代理程式 作業的標識碼。 |
mergeagentprofileid |
int | 合併代理程式 所使用的代理程式設定檔標識碼。 |
傳回碼值
0
(成功) 或 1
(失敗)。
備註
sp_replmonitorhelpsubscription
會與所有類型的復寫搭配使用。
sp_replmonitorhelpsubscription
會根據訂用帳戶狀態的嚴重性來排序結果集,這個嚴重性是由的值 monitorranking
所決定。 例如,所有處於錯誤狀態之訂用帳戶的數據列都會排序在警告狀態的訂用帳戶的上方數據列。
權限
只有散發資料庫上db_owner或 replmonitor 固定資料庫角色的成員才能執行 sp_replmonitorhelpsubscription
。