sp_replmonitorsubscriptionpendingcmds (Transact-SQL)
適用於:SQL Server Azure SQL 受控執行個體
傳回交易式發行集訂閱暫止命令數目的相關信息,以及處理這些命令所需的時間粗略估計。 此預存程式會針對每個傳回的訂用帳戶傳回一個數據列。 這個用來監視複寫的預存程式會在散發資料庫的散發者端執行。
語法
sp_replmonitorsubscriptionpendingcmds [ @publisher = ] 'publisher'
, [ @publisher_db = ] 'publisher_db'
, [ @publication = ] 'publication'
, [ @subscriber = ] 'subscriber'
, [ @subscriber_db = ] 'subscriber_db'
, [ @subscription_type = ] subscription_type
, [ @subdb_version = ] subdb_version
引數
[ @publisher = ] 'publisher'
發行者的名稱。 publisher 是 sysname,沒有預設值。
[ @publisher_db = ] 'publisher_db'
已發佈資料庫的名稱。 publisher_db為 sysname,沒有預設值。
[ @publication = ] 'publication'
發行集的名稱。 publication 是 sysname,沒有預設值。
[ @subscriber = ] 'subscriber'
訂閱者的名稱。 subscriber 是 sysname,沒有預設值。
[ @subscriber_db = ] 'subscriber_db'
訂閱資料庫的名稱。 subscriber_db為 sysname,沒有預設值。
[ @subscription_type = ] subscription_type
訂用帳戶的類型。 subscription_type為 int,沒有預設值,而且可以是下列其中一個值。
值 | Description |
---|---|
0 |
發送訂閱 |
1 |
提取訂閱 |
[ @subdb_version = ] subdb_version
dbversion
訂閱資料庫的 。 subdb_version是 int 類型的選擇性參數,預設值為 0。
結果集
資料行名稱 | 資料類型 | 描述 |
---|---|---|
pendingcmdcount |
int | 訂用帳戶擱置的命令數目。 |
estimatedprocesstime |
int | 估計將所有暫止命令傳遞至訂閱者所需的秒數。 |
傳回碼值
0
(成功) 或 1
(失敗)。
備註
sp_replmonitorsubscriptionpendingcmds
與事務複製搭配使用。
在 SQL Server 2019 (15.x) CU17 之前, sp_replmonitorsubscriptionpendingcmds
不支援對等複寫,並在用來查詢點對點復寫拓撲時傳回不正確的暫止命令數目。 在 SQL Server 2019 (15.x) CU 17 中,已新增支援以與 sp_replmonitorsubscriptionpendingcmds
點對點發行集相容。
不過,即使 SQL Server 2019 (15.x) CU17 或更新版本,如果數據表MSrepl_originators
包含訂閱資料庫的過時專案,則當與點對點復寫搭配使用時,sp_replmonitorsubscriptionpendingcmds
可能會報告不正確的暫止命令數目。 若要更正問題,請從 MSrepl_originators
中刪除所有過時的專案,或使用預存程式的 自變數sp_replmonitorsubscriptionpendingcmds
時subdb_version
傳遞訂閱資料庫的正確dbversion
。
如需如何判斷 dbversion
的詳細資訊,請參閱KB5017009。
權限
只有散發資料庫中db_owner固定資料庫角色之散發者或db_owner固定資料庫角色之 sysadmin 固定伺服器角色的成員才能執行 sp_replmonitorsubscriptionpendingcmds
。 使用散發資料庫之發行集的發行集存取清單成員可以執行 sp_replmonitorsubscriptionpendingcmds
,以傳回該發行集的暫止命令。