分享方式:


sp_repldone (Transact-SQL)

適用於:SQL Server Azure SQL 受控執行個體

更新可識別伺服器最後一個分散式交易的記錄。 這個預存程式會在發行集資料庫的發行者端執行。

警告

如果您手動執行 sp_repldone ,則可以使已傳遞交易的順序和一致性失效。 您應該只使用 sp_repldone 針對經驗豐富的復寫支援專業人員所指示的複寫進行疑難解答。

Transact-SQL 語法慣例

語法

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都是 時,@resetNULL有效。

傳回碼值

0 (成功) 或 1 (失敗)。

備註

sp_repldone 用於事務複製。

sp_repldone 記錄讀取器程式會使用 來追蹤已散發的交易。

使用 sp_repldone,您可以手動告訴伺服器已復寫交易(傳送至散發者)。 它也可讓您變更標示為下一個等待複寫的交易。 您可以在複寫的交易清單中向前或向後移動。 (所有小於或等於該交易的交易都會標示為分散式。

您可以使用 或 取得必要的參數@xactid@xact_seqnosp_replcmdssp_repltrans

此程式可用於緊急情況下,以允許在事務暫止複寫存在時截斷事務歷史記錄。 如需詳細資訊,請參閱範例一節。

權限

系統管理員固定伺服器角色或db_owner固定資料庫角色的成員可以執行 sp_repldone

範例

@xactidNULL時, @xact_seqnoNULL,而 @reset1,則記錄檔中的所有復寫交易都會標示為分散式。 當事務歷史記錄中有已復寫的交易不再有效且您想要截斷記錄檔時,這非常有用,例如:

EXEC sp_repldone
    @xactid = NULL,
    @xact_seqno = NULL,
    @numtrans = 0,
    @time = 0,
    @reset = 1;