Menginisialisasi Langganan Transaksi tanpa Rekam Jepret

Berlaku untuk:SQL ServerAzure SQL Managed Instance

Secara default, langganan ke publikasi transaksi diinisialisasi dengan rekam jepret, yang dihasilkan oleh Agen Rekam Jepret dan diterapkan oleh Agen Distribusi. Dalam beberapa skenario, seperti yang melibatkan himpunan data awal besar, lebih baik menginisialisasi langganan menggunakan metode lain. Metode lain untuk menginisialisasi Pelanggan meliputi:

  • Menentukan cadangan. Pulihkan cadangan pada Pelanggan, lalu Agen Distribusi menyalin metadata replikasi dan prosedur sistem yang diperlukan. Menginisialisasi dengan cadangan adalah cara tercepat untuk mengirimkan data ke Pelanggan dan nyaman, karena cadangan terbaru dapat digunakan jika diambil setelah publikasi diaktifkan untuk inisialisasi dengan cadangan.

  • Menyalin himpunan data awal ke Pelanggan melalui mekanisme lain, seperti melampirkan database. Anda harus memastikan data dan skema yang benar ada di Pelanggan, lalu Agen Distribusi menyalin metadata dan prosedur sistem yang diperlukan.

Menginisialisasi langganan dengan cadangan

Cadangan berisi seluruh database; oleh karena itu, setiap database langganan akan berisi salinan lengkap database publikasi saat diinisialisasi:

  • Cadangan menyertakan tabel yang tidak ditentukan sebagai artikel untuk publikasi.

  • Cadangan mencakup semua data, bahkan jika filter baris atau kolom ditentukan pada tabel.

Administrator atau aplikasi bertanggung jawab untuk menghapus objek atau data yang tidak diinginkan setelah cadangan dipulihkan. Dalam sinkronisasi berikutnya, perubahan data hanya direplikasi jika diterapkan ke tabel yang ditentukan sebagai artikel, dan perubahan memenuhi kriteria pemfilteran apa pun yang Anda tentukan.

Catatan

Saat memulihkan cadangan, Anda harus memastikan bahwa cadangan berasal dari Penerbit jika Anda ingin Pelanggan menyinkronkan secara otomatis. Nilai nomor urutan log (LSN) dalam cadangan (yang digunakan untuk mengatur titik untuk mulai menyinkronkan) khusus untuk Publisher.

Untuk menginisialisasi langganan dengan cadangan

Untuk menginisialisasi langganan dengan cadangan, Anda harus mengaktifkan opsi terlebih dahulu saat membuat publikasi, lalu menentukan nilai untuk sejumlah opsi saat membuat langganan. Publikasi dapat diaktifkan melalui Panduan Publikasi Baru atau secara terprogram. Namun, nilai yang diperlukan untuk opsi langganan hanya dapat ditentukan secara terprogram.

Catatan

Jika langganan diinisialisasi tanpa menggunakan rekam jepret, akun tempat layanan SQL Server berjalan di Penerbit harus memiliki izin tulis pada folder rekam jepret di Distributor. Untuk informasi selengkapnya tentang izin, lihat Model Keamanan Agen Replikasi.

Memastikan kesesuaian cadangan

Cadangan cocok untuk menginisialisasi Pelanggan jika semua transaksi yang terjadi setelah cadangan diambil disimpan di Distributor. Replikasi akan menampilkan pesan kesalahan jika cadangan tidak cocok.

Untuk membantu memastikan bahwa cadangan cocok untuk digunakan, ikuti panduan berikut:

  • Gunakan cadangan terbaru yang tersedia, dan jika cadangan terbaru lebih lama dari periode retensi distribusi maksimum, buat cadangan baru sebelum mencoba menginisialisasi langganan dengan cadangan. Untuk informasi selengkapnya tentang periode retensi, lihat Kedaluwarsa dan Pennonaktifkanan Langganan.

  • Secara default, pekerjaan pembersihan distribusi menghapus transaksi yang lebih lama dari 72 jam dari database distribusi. Pembersihan didasarkan pada periode retensi yang ditetapkan untuk publikasi. Saat menyinkronkan dengan cadangan yang lebih lama, pertimbangkan untuk menonaktifkan sementara pekerjaan sebelum pencadangan yang ingin Anda pulihkan dan aktifkan kembali setelah langganan berhasil dibuat. Ini mencegah penghapusan transaksi dari database distribusi yang mungkin diperlukan untuk berhasil disinkronkan dari cadangan. Untuk informasi tentang menjalankan pekerjaan pembersihan, lihat Menjalankan Pekerjaan Pemeliharaan Replikasi (SQL Server Management Studio).

Dalam beberapa kasus, Anda harus melakukan kustomisasi secara manual di database Pelanggan yang dipulihkan setelah menyiapkan langganan yang diinisialisasi dengan cadangan. Secara umum, modifikasi manual pada database Pelanggan yang dipulihkan diperlukan jika Publikasi didefinisikan sewaktu-waktu sehingga konten database Pelanggan diharapkan berbeda dari konten database Penerbit.

  • Tampilan terindeks di database yang dipulihkan harus dikonversi ke tabel jika diterbitkan sebagai artikel tampilan ke tabel terindeks berbasis log

  • Kolom tanda waktu berlangganan di database yang dipulihkan harus dikonversi ke kolom biner(8): salin konten tabel yang berisi kolom tanda waktu ke tabel baru dengan skema yang cocok kecuali memiliki kolom biner(8) sebagai pengganti kolom tanda waktu, letakkan tabel asli, dan ganti nama tabel baru dengan nama yang sama dengan tabel asli.

Menginisialisasi langganan dengan metode alternatif

Dimungkinkan untuk menginisialisasi langganan menggunakan metode apa pun yang memungkinkan Anda menyalin skema database publikasi dan data ke Pelanggan, seperti Layanan Integrasi. Saat Anda menggunakan metode alternatif untuk menginisialisasi Pelanggan, objek dukungan replikasi disalin ke Pelanggan.

Tidak seperti menginisialisasi dengan cadangan, Anda atau aplikasi Anda harus memastikan data dan skema disinkronkan dengan benar pada saat Anda menambahkan langganan. Jika, misalnya, ada aktivitas pada Penerbit antara data waktu dan skema disalin ke Pelanggan dan waktu saat langganan ditambahkan, perubahan yang dihasilkan dari aktivitas ini mungkin tidak direplikasi ke Pelanggan.

Untuk menginisialisasi langganan dengan metode alternatif, lihat Menginisialisasi Langganan Secara Manual.

Lihat Juga

Menginisialisasi Langganan