snapshot;replikasi

Berlaku untuk:SQL ServerAzure SQL Managed Instance

Replikasi rekam jepret mendistribusikan data persis seperti yang muncul pada saat tertentu dan tidak memantau pembaruan data. Ketika sinkronisasi terjadi, seluruh rekam jepret dihasilkan dan dikirim ke Pelanggan.

Catatan

Replikasi rekam jepret dapat digunakan dengan sendirinya, tetapi proses rekam jepret (yang membuat salinan semua objek dan data yang ditentukan oleh publikasi) juga umumnya digunakan untuk menyediakan kumpulan data awal dan objek database untuk publikasi transaksional dan penggabungan.

Menggunakan replikasi rekam jepret dengan sendirinya paling tepat ketika satu atau beberapa hal berikut ini benar:

  • Perubahan data jarang.

  • Dapat diterima untuk memiliki salinan data yang kedaluarsa sehubungan dengan Penerbit untuk jangka waktu tertentu.

  • Mereplikasi data dalam volume kecil.

  • Volume besar perubahan terjadi dalam waktu singkat.

Replikasi rekam jepret paling tepat ketika perubahan data bersifat substansial tetapi jarang. Misalnya, jika organisasi penjualan mempertahankan daftar harga produk dan harga semuanya diperbarui pada saat yang sama sekali atau dua kali setiap tahun, mereplikasi seluruh rekam jepret data setelah diubah disarankan. Mengingat jenis data tertentu, rekam jepret yang lebih sering mungkin juga sesuai. Misalnya, jika tabel yang relatif kecil diperbarui di Publisher pada siang hari, tetapi beberapa latensi dapat diterima, perubahan dapat dikirim setiap malam sebagai rekam jepret.

Replikasi rekam jepret memiliki overhead berkelanjutan yang lebih rendah pada Penerbit daripada replikasi transaksional, karena perubahan bertahap tidak dilacak. Namun, jika kumpulan himpunan data yang direplikasi sangat besar, kumpulan data akan memerlukan sumber daya yang substansial untuk menghasilkan dan menerapkan rekam jepret. Pertimbangkan ukuran seluruh himpunan data dan frekuensi perubahan pada data saat mengevaluasi apakah akan menggunakan replikasi rekam jepret.

Dalam topik ini

Cara Kerja Replikasi Rekam Jepret

Agen Rekam Jepret

Agen Distribusi dan Penggabungan

Cara Kerja Replikasi Rekam Jepret

Secara default, ketiga jenis replikasi menggunakan rekam jepret untuk menginisialisasi Pelanggan. SQL Server Snapshot Agent selalu menghasilkan file rekam jepret, tetapi agen yang mengirimkan file berbeda tergantung pada jenis replikasi yang digunakan. Replikasi rekam jepret dan replikasi transaksional menggunakan Agen Distribusi untuk mengirimkan file, sedangkan replikasi penggabungan menggunakan SQL Server Merge Agent. Agen Rekam Jepret berjalan di Distributor. Agen Distribusi dan Agen Penggabungan berjalan di Distributor untuk langganan push, atau di Pelanggan untuk langganan penarikan.

Rekam jepret dapat dihasilkan dan diterapkan segera setelah langganan dibuat atau sesuai dengan jadwal yang ditetapkan pada saat publikasi dibuat. Agen Rekam Jepret menyiapkan file rekam jepret yang berisi skema dan data tabel dan objek database yang diterbitkan, menyimpan file di folder rekam jepret untuk Penerbit, dan merekam informasi pelacakan dalam database distribusi di Distributor. Anda menentukan folder rekam jepret default saat mengonfigurasi Distributor, tetapi Anda dapat menentukan lokasi alternatif untuk publikasi alih-alih atau selain default.

Selain proses rekam jepret standar yang dijelaskan dalam topik ini, proses rekam jepret dua bagian digunakan untuk menggabungkan publikasi dengan filter berparameter.

Ilustrasi berikut menunjukkan komponen utama replikasi rekam jepret.

Snapshot replication components and data flow

Agen Snapshot

Untuk replikasi penggabungan, rekam jepret dihasilkan setiap kali Agen Rekam Jepret berjalan. Untuk replikasi transaksional, pembuatan rekam jepret tergantung pada pengaturan properti publikasi immediate_sync. Jika properti diatur ke TRUE (default saat menggunakan Wizard Publikasi Baru), rekam jepret dihasilkan setiap kali Agen Rekam Jepret berjalan, dan dapat diterapkan ke Pelanggan kapan saja. Jika properti diatur ke FALSE (default saat menggunakan sp_addpublication), rekam jepret dihasilkan hanya jika langganan baru telah ditambahkan sejak Agen Rekam Jepret terakhir dijalankan; Pelanggan harus menunggu Agen Rekam Jepret selesai sebelum dapat disinkronkan.

Agen Rekam Jepret melakukan langkah-langkah berikut:

  1. Membuat koneksi dari Distributor ke Penerbit, lalu mengambil kunci pada tabel yang diterbitkan jika perlu:

    • Untuk publikasi gabungan, Agen Rekam Jepret tidak mengambil kunci apa pun.

    • Untuk publikasi transaksional, secara default Agen Rekam Jepret hanya mengambil kunci selama fase awal pembuatan rekam jepret.

    • Untuk publikasi rekam jepret, kunci ditahan selama seluruh proses pembuatan rekam jepret.

  2. Menulis salinan skema tabel untuk setiap artikel ke file .sch. Jika objek database lain diterbitkan, seperti indeks, batasan, prosedur tersimpan, tampilan, fungsi yang ditentukan pengguna, dan sebagainya, file skrip tambahan dihasilkan.

  3. Menyalin data dari tabel yang diterbitkan di Publisher dan menulis data ke folder rekam jepret. Rekam jepret dihasilkan sebagai sekumpulan file program penyalinan massal (BCP).

  4. Untuk rekam jepret dan publikasi transaksi, Agen Rekam Jepret menambahkan baris ke tabel MSrepl_commands dan MSrepl_transactions dalam database distribusi. Entri dalam tabel MSrepl_commands adalah perintah yang menunjukkan lokasi file .sch dan .bcp, file rekam jepret lainnya, dan referensi ke skrip pra-atau pasca-rekam jepret apa pun. Entri dalam tabel MSrepl_transactions adalah perintah yang relevan untuk menyinkronkan Pelanggan.

    Untuk publikasi gabungan, Agen Rekam Jepret melakukan langkah tambahan.

  5. Melepaskan kunci apa pun pada tabel yang diterbitkan.

Selama pembuatan rekam jepret, Anda tidak dapat membuat perubahan skema pada tabel yang diterbitkan. Setelah file rekam jepret dibuat, Anda dapat melihatnya di folder rekam jepret menggunakan Windows Explorer.

Agen Distribusi dan Agen Penggabungan

Untuk publikasi rekam jepret, setiap kali Agen Distribusi berjalan untuk publikasi, agen tersebut memindahkan rekam jepret baru ke setiap Pelanggan yang belum disinkronkan, telah ditandai untuk reinisialisasi, atau menyertakan artikel baru.

Untuk rekam jepret dan replikasi transaksional, Agen Distribusi melakukan langkah-langkah berikut:

  1. Membuat koneksi ke Distributor.

  2. Memeriksa tabel MSrepl_commands dan MSrepl_transactions dalam database distribusi pada Distributor. Agen membaca lokasi file rekam jepret dari tabel pertama dan perintah sinkronisasi Pelanggan dari kedua tabel.

  3. Menerapkan skema dan perintah ke database langganan.

Untuk publikasi replikasi penggabungan yang tidak difilter, Agen Penggabungan melakukan langkah-langkah berikut:

  1. Membuat koneksi ke Publisher.

  2. Memeriksa tabel sysmergeschemachange pada Publisher dan menentukan apakah ada rekam jepret baru yang harus diterapkan di Pelanggan.

  3. Jika rekam jepret baru tersedia, Agen Penggabungan berlaku untuk database langganan, file rekam jepret dari lokasi yang ditentukan dalam sysmergeschemachange.