將在給定的數(shù)據(jù)庫內(nèi)運行 sp_replcmds 的第一個客戶端視為日志讀取器。返回被標(biāo)記為復(fù)制的事務(wù)的命令。此存儲過程在發(fā)布服務(wù)器的發(fā)布數(shù)據(jù)庫上執(zhí)行。
sp_replcmds [ @maxtrans = ] maxtrans
[@maxtrans =] maxtrans
是返回其信息的事務(wù)數(shù)。maxtrans 的數(shù)據(jù)類型為 int,默認(rèn)值為 1,表示指定下一個等待分發(fā)的事務(wù)。
sp_replcmds 由日志讀取器進程使用。此過程返回有關(guān)其執(zhí)行時所在的發(fā)布數(shù)據(jù)庫的信息。它使您得以查看當(dāng)前沒有隨命令分發(fā)的事務(wù)(那些保留在事務(wù)日志中的、沒有被發(fā)送到分發(fā)服務(wù)器的事務(wù)),并且返回項目 ID、partial_command(真或假)、命令、頁、行和時間截。
sp_replcmds 用于事務(wù)復(fù)制。
此過程可以為所有者限定的表或未限定的表名(默認(rèn)值)生成命令。添加限定的表名允許將數(shù)據(jù)從一個數(shù)據(jù)庫內(nèi)的特定用戶所擁有的表復(fù)制到這個用戶在另一個數(shù)據(jù)庫內(nèi)所擁有的表中。
說明 由于源數(shù)據(jù)庫內(nèi)的表名是由所有者名稱限定的,所以目標(biāo)數(shù)據(jù)庫內(nèi)的表所有者必須具有相同的所有者名稱。
嘗試在同一數(shù)據(jù)庫內(nèi)運行 sp_replcmds 的客戶端會收到 18752 號錯誤,直到第一個客戶端斷開連接為止。當(dāng)?shù)谝粋€客戶端斷開連接后,另一個客戶端可以運行 sp_replcmds,并成為新的日志讀取器。
說明 應(yīng)只在解決與復(fù)制有關(guān)的問題時才運行 sp_replcmds 過程。
如果因為在同一個事務(wù)中沒有檢索到文本指針而導(dǎo)致 sp_replcmds 無法復(fù)制文本命令,則將在 Microsoft® SQL Server™ 錯誤日志和 Microsoft Windows NT® 應(yīng)用程序日志中添加 18759 號警告消息。
只有 sysadmin 固定服務(wù)器角色成員或 db_owner 固定數(shù)據(jù)庫角色成員才能執(zhí)行 sp_replcmds。
相關(guān)文章