徵兆
sp_replmonitorsubscriptionpendingcmds儲存程式與對等 (P2P) 複寫不相容。 它會傳回不正確的擱置命令數目。 套用此修正之後, sp_replmonitorsubscriptionpendingcmds 將與 P2P 複寫相容。
注意 複製 監視器的 [未偵錯命令] 索引標籤會在幕後呼叫 sp_replmonitorsubscriptionpendingcmds 。
解決方案
累積更新資訊
此問題已在下列SQL Server累積更新中修正:
附註套用此累積更新之後,如果MSrepl_originators資料表包含過時的專案,sp_replmonitorsubscriptionpendingcmds仍可能回報 P2P 複寫擱置命令的數量不正確。
如果MSrepl_originators資料表包含過時的專案,執行sp_replmonitorsubscriptionpendingcmds會在SQL Server錯誤記錄檔中產生下列警告訊息:
警告:無法取得訂閱資料庫的資料庫版本「<database_name>」。 sp_replmonitorsubscriptionpendingcmds 可能會回報 P2P 複寫擱置中的命令數目不正確。
若要解決此問題,請從 MSrepl_originators 刪除過時的專案,或在執行sp_replmonitorsubscriptionpendingcmds時,將訂閱資料庫的正確「dbversion」當做subdb_version自變量。
提示: 您可以選取下列其中一種方法來尋找訂閱資料庫的「dbversion」:
-
在通訊群組資料庫上執行下列查詢: select dbversion from MSrepl_originators
where publisher_database_id = <Publisher_Database_ID>
and srvname = <Subscriber_Server>and dbname = <Subscriber_Database>
注意您需要將適當的值替代<Publisher_Database_ID>、<Subscriber_Server>和<Subscriber_Database>。 -
在訂閱資料庫上執行下列查詢: declare @current_version int , @currentGuid uniqueidentifier
select @currentGuid = recovery_fork_guid
from sys.database_recovery_status#x3
select @current_version = substring(convert(binary(16), isnull(@currentGuid, 0x0)),1,6)
print @current_version
SQL Server的每個新累積更新都包含上一個組建中的所有 Hotfix 與安全性修正。 建議您安裝適用于SQL Server版本的最新組建:
狀態
Microsoft 已確認<適用於>一節中所列的 Microsoft 產品確實有上述問題。
參考資料
瞭解 Microsoft 用來描述軟體更新的 術語 。