Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Replikasi penggabungan harus menginisialisasi Penerbit dan Pelanggan sebelum data dapat mengalir di antara mereka. Artikel ini menyediakan informasi tentang langkah-langkah yang terjadi selama inisialisasi.
Memulai inisialisasi publikasi
Daftar berikut merinci langkah-langkah inisialisasi untuk publikasi, yang terjadi saat Anda menjalankan setiap prosedur tersimpan yang tercantum atau setelah Anda menyelesaikan Panduan Publikasi Baru. Inisialisasi lebih lanjut terjadi setelah Agen Rekam Jepret berjalan untuk pertama kalinya untuk publikasi.
sp_replicationdboptionBasis data publikasi ditandai untuk replikasi. Database tidak dapat dihilangkan kecuali replikasi dihapus.
Tabel sistem ditambahkan ke database publikasi (kecuali publikasi penggabungan sudah ada di database). Untuk daftar lengkap tabel sistem, lihat bagian "Tabel Sistem Yang Dibuat di Database Publikasi dan Langganan" di artikel ini.
sp_addmergepublication- Entri untuk publikasi ditambahkan ke tabel sistem.
sp_addpublication_snapshot- Pekerjaan Agen Rekam Jepret ditambahkan ke sistem SQL Server Agent. Nama pekerjaan dalam bentuk
<Publisher>-<PublicationDatabase>-<Publication>-<Integer>.
- Pekerjaan Agen Rekam Jepret ditambahkan ke sistem SQL Server Agent. Nama pekerjaan dalam bentuk
sp_addmergearticleSetiap objek yang direplikasi ditandai untuk replikasi. Objek tidak dapat dihapus kecuali artikel terkait dihilangkan dari semua publikasi.
Entri untuk setiap artikel ditambahkan ke tabel sistem.
Sisa inisialisasi untuk database publikasi terjadi selama eksekusi awal Agen Rekam Jepret untuk publikasi. Database publikasi tidak diinisialisasi ulang selama proses berikutnya dari Agen Snapshot. Jika Anda menggunakan Panduan Publikasi Baru, cuplikan awal dibuat secara default setelah Anda menyelesaikan panduan. Jika Anda menggunakan prosedur tersimpan, Anda harus menjalankan tugas agen atau menjalankan agen secara langsung. Untuk informasi selengkapnya tentang menjalankan agen, lihat Memulai dan Menghentikan Agen Replikasi (SQL Server Management Studio) dan Konsep Executable Agen Replikasi.
Pertama kali Agen Snapshot untuk publikasi dijalankan:
Kolom bernama
rowguidditambahkan ke setiap tabel yang diterbitkan, kecuali tabel sudah memiliki kolom pengidentifikasi unik tipe data denganROWGUIDCOLkumpulan properti (dalam hal ini kolom ini digunakan). Kolomrowguiddigunakan untuk mengidentifikasi setiap baris secara unik di setiap tabel yang diterbitkan. Jika tabel dihilangkan dari publikasi,rowguidkolom dihapus; jika kolom yang ada digunakan untuk pelacakan, kolom tidak dihapus.Objek berikut dibuat dalam database publikasi untuk setiap tabel yang diterbitkan (semua objek dibuat dalam
dboskema):Sisipkan pemicu, perbarui pemicu, dan hapus pemicu ditambahkan ke tabel yang diterbitkan untuk melacak perubahan. Pemicu dinamai dalam formulir
MSmerge_ins_<GUID>, ,MSmerge_upd_<GUID>danMSmerge_del_<GUID>. Nilai GUID berasal dari entri untuk artikel dalam tabelsysmergearticlessistem .Prosedur tersimpan dibuat untuk menangani penyisipan, pembaruan, dan penghapusan ke tabel yang diterbitkan, dan untuk melakukan beberapa operasi terkait replikasi lainnya.
Tampilan dibuat untuk mengelola penyisipan, pembaruan, penghapusan, dan pemfilteran.
Tabel konflik dibuat untuk menyimpan informasi konflik. Tabel konflik cocok dengan skema tabel yang diterbitkan: setiap tabel yang diterbitkan diskrip, lalu skrip digunakan untuk membuat tabel konflik dalam database publikasi. Tabel konflik dinamai dalam format
dbo.MSmerge_conflict_<Publication>_<Article>.
Setiap kali Agen Rekam Jepret berjalan, jenis file berikut (dengan ekstensi file yang sesuai) dibuat untuk setiap artikel dalam database publikasi:
Skema (
.sch)Batasan dan indeks (
.dri)Pemicu (
.trg)Data sistem tabel (
.sys)Tabel konflik (
.cft)Data (
.bcp): tidak dibuat untuk publikasi dengan filter berparameter.Jika publikasi tidak menggunakan filter berparameter apa pun, rekam jepret berisi data untuk tabel yang diterbitkan dalam sekumpulan
.bcpfile. Jika publikasi menggunakan filter berparameter (yang khas untuk publikasi penggabungan), rekam jepret awal tidak berisi data apa pun. Data disediakan menggunakan snapshot untuk partisi milik Pelanggan, yang akan dibahas di bagian berikutnya.
Menginisialisasi langganan
Setiap langganan diinisialisasi ketika Agen Penggabungan untuk langganan tersebut berjalan dan menyalin cuplikan awal ke database langganan. Selain skema dan data dari objek yang direplikasi, rekam jepret berisi tabel sistem, tampilan, pemicu, dan prosedur tersimpan yang ada di database publikasi. Satu atau dua tabel sistem tambahan juga disalin ke database langganan. Untuk daftar lengkap tabel sistem, lihat bagian Tabel sistem yang dibuat dalam database publikasi dan langganan dalam artikel ini. Jika langganan dijalankan ulang, semua objek yang direplikasi dan objek sistem replikasi ditimpa ulang.
Jika tidak ada tabel dalam database publikasi yang menggunakan filter berparameter, rekam jepret publikasi yang sama disalin ke setiap Pelanggan. Jika satu atau beberapa filter berparameter digunakan, cara setiap langganan diinisialisasi diatur oleh logika berikut:
Jika lokasi rekam jepret disediakan untuk Agen Penggabungan pada baris perintah:
- Terapkan rekam jepret dari lokasi ini.
Jika tidak, jika rekam jepret telah dibuat sebelumnya:
- Ambil lokasi rekam jepret dari
MSmerge_dynamic_snapshotsdalam database publikasi dan terapkan rekam jepret dari lokasi tersebut.
- Ambil lokasi rekam jepret dari
Jika tidak, jika publikasi memungkinkan Pelanggan untuk memulai rekam jepret:
Jika rekam jepret telah dibuat untuk Pelanggan lain dengan partisi yang sama, terapkan rekam jepret tersebut ke Pelanggan.
Jika tidak, buat dan terapkan snapshot ke Langganan.
Jika tidak, inisialisasi Subscriber menggunakan
SELECTperintah terhadap tabel dalam publikasi. Pendekatan ini lebih lambat daripada menggunakan rekam jepret untuk partisi Pelanggan.
Jika transfer rekam jepret terganggu kapan saja, transfer rekam jepret secara otomatis dilanjutkan, dan tidak mengirim ulang file apa pun yang telah sepenuhnya ditransfer. Unit pengiriman untuk Agen Rekam Jepret adalah file bcp untuk setiap artikel publikasi, sehingga file yang dikirim sebagian harus sepenuhnya disebarkan ulang. Namun, meneruskan rekam jepret dapat secara signifikan mengurangi jumlah data yang dikirimkan dan memastikan pengiriman rekam jepret tepat waktu meskipun koneksi tidak dapat diandalkan. Untuk informasi selengkapnya tentang membuat rekam jepret, lihat Filter Berparameter - Filter Baris Berparameter.
Lokasi rekam jepret
Lokasi rekam jepret bergantung pada: jalur yang ditentukan untuk lokasi rekam jepret default atau alternatif; apakah publikasi menggunakan jalur UNC atau berbagi FTP untuk folder rekam jepret; dan apakah publikasi menggunakan filter berparameter. Dalam contoh ini, asumsikan bahwa lokasi folder rekam jepret adalah: \\<MyComputer>\<MyFolder>:
Jika publikasi menggunakan UNC, bagian pertama dari jalur adalah:
\\<MyComputer>\<MyFolder>\unc\. Jika menggunakan FTP, itu adalah\\<MyComputer>\<MyFolder>\ftp\.Jika publikasi menggunakan UNC dan tidak menggunakan filter berparameter, jalurnya adalah
\\<MyComputer>\<MyFolder>\unc\<Publisher><Publicationdb><publication>Jika publikasi menggunakan UNC dan menggunakan filter berparameter, lokasi didasarkan pada jalur folder rekam jepret dan kriteria pemfilteran baris berparameter untuk publikasi. Misalnya, jika artikel difilter menggunakan
HOST_NAME()fungsi dan nilaiHOST_NAME()untuk partisi adalahSalesLaptop, jalur ke rekam jepret untuk partisi tersebut adalah\\<MyComputer>\<MyFolder>\unc\<Publisher><Publicationdb><publication>\SalesLaptop_12, di mana12ID digunakan secara internal untuk partisi.
Tabel sistem yang dibuat dalam database publikasi dan langganan
Tabel berikut ini dibuat dalam database publikasi dan setiap database langganan.
| Tabel | Deskripsi |
|---|---|
| MSdynamicsnapshotjobs | Berisi informasi tentang tugas snapshot untuk publikasi dengan filter berparameter. |
| MSdynamicsnapshotviews | Melacak semua tampilan rekam jepret sementara yang dibuat oleh Agen Rekam Jepret. Ini digunakan oleh sistem untuk membersihkan tampilan dalam kasus penonaktifan abnormal Agen SQL Server atau Agen Rekam Jepret. |
| MSmerge_altsyncpartners | Melacak hubungan mitra sinkronisasi saat ini untuk Penerbit. |
| MSmerge_articlehistory | Melacak perubahan yang dilakukan pada artikel selama sesi sinkronisasi Agen Penggabungan, dengan satu baris untuk setiap artikel tempat perubahan dilakukan. |
| MSmerge_conflicts_info | Melacak konflik yang terjadi saat menyinkronkan langganan ke publikasi gabungan. |
| MSmerge_contents | Berisi satu baris untuk setiap baris yang dimodifikasi dalam database saat ini sejak diterbitkan. Tabel ini digunakan oleh proses penggabungan untuk menentukan baris yang telah berubah. |
| MSmerge_current_partition_mappings | Berisi satu baris untuk setiap partisi di mana baris yang telah diubah itu berada. |
| MSmerge_dynamic_snapshots | Melacak lokasi rekam jepret untuk setiap partisi yang ditentukan untuk publikasi gabungan. |
| MSmerge_errorlineage | Berisi baris yang telah dihapus di Subcriber, tetapi penghapusannya tidak dipropagasikan ke Publisher. |
| MSmerge_generation_partition_mappings | Melacak apakah generasi tertentu berisi perubahan apa pun yang relevan dengan partisi tertentu. |
| MSmerge_genhistory | Berisi satu baris untuk setiap generasi. Generasi adalah kumpulan perubahan yang dikirimkan ke Penerbit atau Pelanggan. Generasi ditutup setiap kali Agen Penggabungan berjalan; Perubahan berikutnya dalam database ditambahkan ke satu atau beberapa generasi terbuka. |
| MSmerge_history | Berisi baris riwayat dengan deskripsi terperinci tentang hasil sesi pekerjaan Agen Penggabungan sebelumnya. |
| MSmerge_identity_range | Melacak rentang numerik yang ditetapkan ke kolom identitas untuk langganan ke publikasi yang replikasinya secara otomatis mengelola penetapan rentang. |
| MSmerge_metadataaction_request | Berisi satu baris untuk setiap tindakan kompensasi yang diperlukan. Tindakan kompensasi digunakan untuk mengembalikan perubahan pada satu simpul jika perubahan gagal pada simpul lain. |
| MSmerge_partition_groups | Berisi satu baris untuk setiap partisi yang telah dikomputasi dalam database tertentu. |
| MSmerge_past_partition_mappings | Mengandung satu baris untuk setiap partisi yang dulunya merupakan milik baris yang diubah, tetapi tidak lagi. |
| MSmerge_replinfo | Berisi satu baris untuk setiap langganan. Tabel ini melacak informasi internal tentang generasi yang dikirim dan diterima. |
| MSmerge_sessions | Menyertakan baris riwayat dengan hasil dari sesi pekerjaan Agen Penggabungan sebelumnya. |
| MSmerge_settingshistory | Berisi riwayat perubahan yang dibuat pada properti artikel dan publikasi, dengan satu baris untuk setiap perubahan yang dilakukan. |
| MSmerge_tombstone | Berisi informasi tentang baris yang dihapus dan memungkinkan penghapusan disebarluaskan ke Pelanggan lain. |
| MSrepl_errors | Berisi informasi terperinci tentang kegagalan agen apa pun. |
| sysmergearticles | Berisi satu baris untuk setiap artikel penggabungan. |
| sysmergepartitioninfo | Berisi informasi tentang partisi untuk setiap artikel, dengan satu baris untuk setiap artikel. |
| sysmergepartitioninfoview | Berisi informasi partisi untuk artikel tabel. |
| sysmergepublications | Berisi satu baris untuk setiap publikasi gabungan. |
| sysmergeschemaarticles | Melacak objek skema saja, seperti prosedur tersimpan. |
| sysmergeschemachange | Berisi informasi tentang artikel yang diterbitkan yang dihasilkan oleh Agen Rekam Jepret. |
| sysmergesubscriptions | Berisi satu baris untuk setiap Pelanggan. |
| sysmergesubsetfilters | Berisi informasi filter gabungan untuk artikel yang dipartisi. |
Selain itu, MSsnapshotdeliveryprogress tabel dibuat di setiap database langganan, dan MSsubscription_properties tabel dibuat di setiap database langganan yang menggunakan langganan penarikan:
| Tabel | Deskripsi |
|---|---|
| MSsnapshotdeliveryprogress | Melacak file yang berhasil dikirimkan ke Pelanggan Terdaftar saat snapshot diterapkan. Data ini digunakan untuk melanjutkan pengiriman file jika Agen Penggabungan gagal mengirimkan semua file selama sesi. |
| MSsubscription_properties | Berisi informasi parameter yang diperlukan untuk menjalankan agen replikasi di Subskriptor |