sp_repldone (Transact-SQL)
適用於:SQL ServerAzure 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 都是 NULL 時,reset 才有效。
傳回碼值
0 (成功) 或 1 (失敗)
備註
sp_repldone用於事務複製。
記錄讀取器程式會使用sp_repldone來追蹤已散發的交易。
透過 sp_repldone,您可以手動告訴伺服器已復寫交易(傳送至散發者)。 它也可讓您變更標示為下一個等待複寫的交易。 您可以在複寫的交易清單中向前或向後移動。 (所有小於或等於該交易的交易都會標示為分散式。
您可以使用sp_repltrans或sp_replcmds來取得必要的參數 xactid 和 xact_seqno。
權限
系統管理員固定伺服器角色或db_owner固定資料庫角色的成員可以執行sp_repldone。
範例
當 xactid 為 NULL 時, xact_seqno 為 NULL,而 重設 為 1,記錄中的所有復寫交易都會標示為分散式。 當事務歷史記錄中有已復寫的交易不再有效且您想要截斷記錄檔時,這非常有用,例如:
EXEC sp_repldone @xactid = NULL, @xact_seqno = NULL, @numtrans = 0, @time = 0, @reset = 1
警告
此程式可用於緊急情況下,以允許在事務暫止複寫存在時截斷事務歷史記錄。
另請參閱
sp_replcmds (Transact-SQL)
sp_replflush (Transact-SQL)
sp_repltrans (Transact-SQL)
系統預存程序 (Transact-SQL)
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應