Kedaluwarsa dan Pennonaktifkan langganan

Berlaku untuk:SQL ServerAzure SQL Managed Instance

Langganan dapat dinonaktifkan atau dapat kedaluwarsa jika tidak disinkronkan dalam periode retensi tertentu. Tindakan yang terjadi tergantung pada jenis replikasi dan periode retensi yang terlampaui.

Untuk mengatur periode retensi, lihat Mengatur Periode Kedaluwarsa untuk Langganan, Mengatur Periode Retensi Distribusi untuk Publikasi Transaksional (SQL Server Management Studio), dan Mengonfigurasi Penerbitan dan Distribusi.

Replikasi Transaksional

Replikasi transaksional menggunakan periode retensi distribusi maksimum ( @max_distretention parameter sp_adddistributiondb (Transact-SQL)) dan periode retensi publikasi ( @retention parameter sp_addpublication (Transact-SQL)):

  • Jika langganan tidak disinkronkan dalam periode retensi distribusi maksimum (default 72 jam) dan ada perubahan dalam database distribusi yang belum dikirimkan ke Pelanggan, langganan akan ditandai dinonaktifkan oleh pekerjaan pembersihan Langganan Kedaluwarsa yang berjalan di Distributor. Langganan harus diinisialisasi ulang.

  • Jika langganan tidak disinkronkan dalam periode retensi publikasi (default 336 jam), langganan akan kedaluwarsa dan dihilangkan oleh pekerjaan pembersihan langganan kedaluwarsa yang berjalan di Publisher. (Sebelum perbaikan di KB4014798, pekerjaan tersebut diberi nama Pembersihan distribusi.) Langganan harus dibuat ulang dan disinkronkan.

    Jika langganan push kedaluwarsa, langganan akan dihapus sepenuhnya, tetapi langganan penarikan tidak. Anda harus membersihkan langganan penarikan di Pelanggan. Untuk informasi selengkapnya, lihat Menghapus Langganan Pull.

Replikasi Penggabungan

Replikasi penggabungan menggunakan periode retensi publikasi (@retentionparameter dan @retention_period_unit sp_addmergepublication (Transact-SQL)). Saat langganan kedaluwarsa, langganan harus diinisialisasi ulang, karena metadata untuk langganan dihapus. Langganan yang tidak diinisialisasi ulang dihilangkan oleh pekerjaan pembersihan langganan kedaluwarsa yang berjalan di Publisher. Secara default, pekerjaan ini berjalan setiap hari; ini menghapus semua langganan push yang belum disinkronkan untuk dua kali lipat panjang periode retensi publikasi. Contohnya:

  • Jika publikasi memiliki periode retensi 14 hari, langganan dapat kedaluwarsa jika belum disinkronkan dalam waktu 14 hari.

    Jika Publisher menjalankan SQL Server 2005 (9.x) atau versi yang lebih baru dan agen untuk langganan berasal dari SQL Server 2005 (9.x) atau versi yang lebih baru, langganan hanya kedaluwarsa jika ada perubahan pada data dalam partisi langganan tersebut. Misalnya, pelanggan menerima data pelanggan hanya untuk pelanggan di Jerman. Jika periode retensi diatur ke 14 hari, langganan akan kedaluwarsa pada hari ke-14 hanya jika ada perubahan pada data pelanggan Jerman dalam 14 hari terakhir.

  • Dari 14 hari hingga 27 hari setelah sinkronisasi terakhir, langganan dapat diinisialisasi ulang.

  • Pada 28 hari setelah sinkronisasi terakhir, langganan dihilangkan oleh pekerjaan pembersihan langganan kedaluwarsa. Jika langganan push kedaluwarsa, langganan akan dihapus sepenuhnya, tetapi langganan penarikan tidak. Anda harus membersihkan langganan penarikan di Pelanggan. Untuk informasi selengkapnya, lihat Menghapus Langganan Pull.

Pertimbangan untuk Mengatur Periode Retensi Publikasi untuk Publikasi Gabungan

Ingatlah pertimbangan berikut saat mengatur periode retensi untuk publikasi gabungan:

  • Periode retensi untuk publikasi gabungan memiliki masa tenggang 24 jam untuk mengakomodasi Pelanggan di zona waktu yang berbeda. Jika, misalnya, Anda menetapkan periode retensi satu hari, periode retensi aktual adalah 48 jam.

  • Pembersihan metadata replikasi penggabungan tergantung pada periode retensi publikasi:

    • Replikasi tidak dapat membersihkan metadata dalam database publikasi dan langganan hingga periode retensi tercapai. Berhati-hatilah dalam menentukan nilai tinggi untuk periode retensi, karena dapat berdampak negatif pada performa replikasi. Disarankan agar Anda menggunakan pengaturan yang lebih rendah jika Anda dapat dengan andal memprediksi bahwa semua Pelanggan akan disinkronkan secara teratur dalam periode waktu tersebut.

    • Dimungkinkan untuk menentukan bahwa langganan tidak pernah kedaluwarsa (nilai 0 untuk @retention), tetapi sangat disarankan agar Anda tidak menggunakan nilai ini, karena metadata tidak dapat dibersihkan.

  • Periode retensi untuk penerbit ulang apa pun harus diatur ke nilai yang sama dengan atau kurang dari periode retensi yang ditetapkan di Publisher asli. Anda juga harus menggunakan nilai retensi publikasi yang sama untuk semua Penerbit dan mitra sinkronisasi alternatifnya. Menggunakan nilai yang berbeda dapat menyebabkan non-konvergensi. Jika Anda perlu mengubah nilai retensi publikasi, masukkan kembali Pelanggan untuk menghindari non-konvergensi data.

  • Jika, setelah pembersihan, periode retensi publikasi ditingkatkan dan langganan mencoba menggabungkan dengan Publisher (yang telah menghapus metadata), langganan tidak akan kedaluwarsa karena peningkatan nilai retensi. Namun, Penerbit tidak memiliki cukup metadata untuk mengunduh perubahan pada Pelanggan, yang mengarah ke non-konvergensi.

Lihat Juga

Menginisialisasi ulang Langganan
Administrasi Agen Replikasi
Berlangganan Publikasi