Bagikan melalui


sp_repldone (T-SQL)

Berlaku untuk: SQL ServerAzure SQL Managed Instance

Memperbarui catatan yang mengidentifikasi transaksi terdistribusi terakhir server. Prosedur tersimpan ini dijalankan di Publisher pada database publikasi.

Perhatian

Jika Anda menjalankan sp_repldone secara manual, Anda dapat membatalkan pesanan dan konsistensi transaksi yang dikirimkan. Anda hanya boleh menggunakan sp_repldone untuk memecahkan masalah replikasi seperti yang diarahkan oleh profesional dukungan replikasi berpengalaman.

Konvensi sintaks transact-SQL

Sintaks

sp_repldone [ @xactid = ] xactid
    , [ @xact_seqno = ] xact_seqno
    [ , [ @numtrans = ] numtrans ]
    [ , [ @time = ] time ]
    [ , [ @reset = ] reset ]
[ ; ]

Argumen

Penting

Argumen untuk prosedur tersimpan yang diperluas harus dimasukkan dalam urutan tertentu seperti yang dijelaskan di bagian Sintaks. Jika parameter dimasukkan di luar urutan, pesan kesalahan terjadi.

[ @xactid = ] xactid

Nomor urutan log (LSN) dari rekaman pertama untuk transaksi terdistribusi terakhir server. @xactid adalah biner(10), tanpa default.

[ @xact_seqno = ] xact_seqno

LSN dari catatan terakhir untuk transaksi terdistribusi terakhir server. @xact_seqno adalah biner(10), tanpa default.

[ @numtrans = ] numtrans

Jumlah transaksi yang didistribusikan. @numtrans int, tanpa default.

[ @time = ] waktu

Jumlah milidetik, jika disediakan, diperlukan untuk mendistribusikan batch transaksi terakhir. @time int, tanpa default.

[ @reset = ] reset

Status reset. @reset int, tanpa default.

  • Jika 1, semua transaksi yang direplikasi dalam log ditandai sebagai terdistribusi.
  • Jika 0, log transaksi diatur ulang ke transaksi pertama yang direplikasi dan tidak ada transaksi yang direplikasi ditandai sebagai didistribusikan.

@reset hanya berlaku ketika @xactid dan @xact_seqno adalah NULL.

Mengembalikan nilai kode

0 (berhasil) atau 1 (kegagalan).

Keterangan

sp_repldone digunakan dalam replikasi transaksional.

sp_repldone digunakan oleh proses pembaca log untuk melacak transaksi mana yang telah didistribusikan.

Dengan sp_repldone, Anda dapat memberi tahu server secara manual bahwa transaksi telah direplikasi (dikirim ke Distributor). Ini juga memungkinkan Anda untuk mengubah transaksi yang ditandai sebagai yang berikutnya menunggu replikasi. Anda dapat maju atau mundur dalam daftar transaksi yang direplikasi. (Semua transaksi kurang dari atau sama dengan transaksi tersebut ditandai sebagai terdistribusi.)

Parameter yang diperlukan @xactid dan @xact_seqno dapat diperoleh dengan menggunakan sp_repltrans atau sp_replcmds.

Prosedur ini dapat digunakan dalam situasi darurat untuk memungkinkan pemotongan log transaksi ketika transaksi tertunda replikasi ada. Untuk informasi selengkapnya, lihat bagian Contoh .

Izin

Anggota peran server tetap sysadmin atau peran database tetap db_owner dapat menjalankan sp_repldone.

Contoh

Ketika @xactid adalah NULL, @xact_seqno adalah NULL, dan @reset adalah 1, semua transaksi yang direplikasi dalam log ditandai sebagai didistribusikan. Ini berguna ketika ada transaksi yang direplikasi dalam log transaksi yang tidak lagi valid dan Anda ingin memotong log, misalnya:

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