sp_repldone (Transact-SQL)
適用於:SQL Server Azure SQL 受控執行個體
更新可識別伺服器最後一個分散式交易的記錄。 這個預存程式會在發行集資料庫的發行者端執行。
警告
如果您手動執行 sp_repldone
,則可以使已傳遞交易的順序和一致性失效。 您應該只使用 sp_repldone
針對經驗豐富的復寫支援專業人員所指示的複寫進行疑難解答。
語法
sp_repldone [ @xactid = ] xactid
, [ @xact_seqno = ] xact_seqno
[ , [ @numtrans = ] numtrans ]
[ , [ @time = ] time ]
[ , [ @reset = ] reset ]
[ ; ]
引數
[ @xactid = ] xactid
伺服器最後一個分散式交易之第一筆記錄的記錄序號 (LSN)。 @xactid為 binary(10),沒有預設值。
[ @xact_seqno = ] xact_seqno
伺服器最後一筆分散式交易之最後一筆記錄的 LSN。 @xact_seqno為 binary(10),沒有預設值。
[ @numtrans = ] numtrans
分散式交易數目。 @numtrans為 int,沒有預設值。
[ @time = ] time
如果提供,則需要毫秒數,才能散髮最後一批交易。 @time為 int,沒有預設值。
[ @reset = ] reset
重設狀態。 @reset為 int,沒有預設值。
- 如果
1
為 ,則記錄檔中的所有複寫交易都會標示為分散式。 - 如果
0
為 ,事務歷史記錄會重設為第一個複寫的交易,而且沒有複寫的交易會標示為分散式。
只有當@xactid和@xact_seqno都是 時,@reset才NULL
有效。
傳回碼值
0
(成功) 或 1
(失敗)。
備註
sp_repldone
用於事務複製。
sp_repldone
記錄讀取器程式會使用 來追蹤已散發的交易。
使用 sp_repldone
,您可以手動告訴伺服器已復寫交易(傳送至散發者)。 它也可讓您變更標示為下一個等待複寫的交易。 您可以在複寫的交易清單中向前或向後移動。 (所有小於或等於該交易的交易都會標示為分散式。
您可以使用 或 取得必要的參數@xactid和@xact_seqno。sp_replcmds
sp_repltrans
此程式可用於緊急情況下,以允許在事務暫止複寫存在時截斷事務歷史記錄。 如需詳細資訊,請參閱範例一節。
權限
系統管理員固定伺服器角色或db_owner固定資料庫角色的成員可以執行 sp_repldone
。
範例
當 @xactid 為 NULL
時, @xact_seqno 為 NULL
,而 @reset 為 1
,則記錄檔中的所有復寫交易都會標示為分散式。 當事務歷史記錄中有已復寫的交易不再有效且您想要截斷記錄檔時,這非常有用,例如:
EXEC sp_repldone
@xactid = NULL,
@xact_seqno = NULL,
@numtrans = 0,
@time = 0,
@reset = 1;