共用方式為


sp_replmonitorhelpsubscription (Transact-SQL)

傳回屬於發行者端一或多個發行集之訂閱的目前狀態資訊,同時為每個傳回的訂閱,各傳回一個資料列。這個預存程序用來監視複寫,執行於散發資料庫的散發者端。

主題連結圖示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,預設值是 01 值表示排除匿名訂閱,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_ownerreplmonitor 固定資料庫角色成員,才能夠執行 sp_replmonitorhelpsubscription