Bagikan melalui


Menambahkan Artikel ke dan Menghapus Artikel dari Publikasi yang Ada

Berlaku untuk:SQL ServerAzure SQL Managed Instance

Setelah publikasi dibuat, dimungkinkan untuk menambahkan dan menghilangkan artikel. Artikel dapat ditambahkan kapan saja, tetapi tindakan yang diperlukan untuk menjatuhkan artikel tergantung pada jenis replikasi dan kapan artikel dihilangkan.

Menambahkan Artikel

Menambahkan artikel melibatkan: menambahkan artikel ke publikasi; membuat rekam jepret baru untuk publikasi; menyinkronkan langganan untuk menerapkan skema dan data untuk artikel baru.

Catatan

Jika Anda menambahkan artikel ke publikasi gabungan dan artikel yang sudah ada bergantung pada artikel baru, Anda harus menentukan urutan pemrosesan untuk kedua artikel menggunakan parameter @processing_order sp_addmergearticle dan sp_changemergearticle. Pertimbangkan skenario berikut: Anda menerbitkan tabel tetapi Anda tidak menerbitkan fungsi yang direferensikan tabel. Jika Anda tidak menerbitkan fungsi, tabel tidak dapat dibuat di Pelanggan. Saat Anda menambahkan fungsi ke publikasi: tentukan nilai 1 untuk parameter @processing_order sp_addmergearticle; dan tentukan nilai 2 untuk parameter @processing_order sp_changemergearticle, menentukan nama tabel untuk parameter @article. Urutan pemrosesan ini memastikan bahwa Anda membuat fungsi di Pelanggan sebelum tabel yang bergantung padanya. Anda dapat menggunakan angka yang berbeda untuk setiap artikel, selama angka untuk fungsi lebih rendah dari angka untuk tabel.

  1. Tambahkan satu atau beberapa artikel melalui salah satu metode berikut:

  2. Setelah menambahkan artikel ke publikasi, Anda harus membuat rekam jepret baru untuk publikasi (dan semua partisi jika merupakan publikasi gabungan dengan filter berparameter). Agen Distribusi atau Agen Penggabungan kemudian menyalin skema dan data untuk artikel baru ke Pelanggan (tidak menginisialisasi ulang seluruh publikasi).

  3. Setelah rekam jepret dibuat, sinkronkan langganan untuk menyalin skema dan data untuk artikel baru.

Menjatuhkan Artikel

Artikel dapat dihilangkan dari publikasi kapan saja, tetapi Anda harus mempertimbangkan perilaku berikut:

  • Menghapus artikel dari publikasi tidak menghapus objek dari database publikasi atau objek terkait dari database langganan. Gunakan Objek> DROP <untuk menghapus objek ini jika perlu. Saat Anda menjatuhkan artikel yang terkait dengan artikel lain yang diterbitkan melalui batasan kunci asing, sebaiknya letakkan tabel di Pelanggan secara manual atau dengan menggunakan eksekusi skrip sesuai permintaan: tentukan skrip yang menyertakan pernyataan Objek> DROP <yang sesuai. Untuk informasi selengkapnya, lihat Menjalankan Skrip Selama Sinkronisasi (Pemrograman Transact-SQL Replikasi).

  • Untuk publikasi gabungan dengan tingkat kompatibilitas 90RTM atau lebih tinggi, artikel dapat dihilangkan kapan saja, tetapi rekam jepret baru diperlukan. Selain itu:

    • Jika artikel adalah artikel induk dalam filter gabungan atau hubungan rekaman logis, hubungan harus dihilangkan terlebih dahulu, yang memerlukan reinisialisasi.

    • Jika artikel memiliki filter parameter terakhir dalam publikasi, langganan harus diinisialisasi ulang.

  • Untuk publikasi gabungan dengan tingkat kompatibilitas yang lebih rendah dari 90RTM, artikel dapat dihilangkan tanpa pertimbangan khusus sebelum sinkronisasi awal langganan. Jika artikel dihilangkan setelah satu atau beberapa langganan disinkronkan, langganan harus dihilangkan, dibuat ulang, dan disinkronkan.

  • Untuk rekam jepret atau publikasi transaksi, artikel dapat dihilangkan tanpa pertimbangan khusus sebelum langganan dibuat. Jika artikel dihilangkan setelah satu atau beberapa langganan dibuat, langganan harus dihilangkan, dibuat ulang, dan disinkronkan. Untuk informasi selengkapnya tentang menghilangkan langganan, lihat Berlangganan Publikasi dan sp_dropsubscription (Transact-SQL). sp_dropsubscription memungkinkan Anda untuk menghapus satu artikel dari langganan daripada seluruh langganan.

  1. Menghapus artikel dari publikasi melibatkan penghapusan artikel dan membuat rekam jepret baru untuk publikasi. Menghapus artikel membatalkan rekam jepret saat ini; oleh karena itu rekam jepret baru harus dibuat.

  2. Setelah menghapus artikel dari publikasi, Anda harus membuat rekam jepret baru untuk publikasi (dan semua partisi jika merupakan publikasi gabungan dengan filter berparameter).

Seperti disebutkan di atas, dalam beberapa kasus menghilangkan artikel mengharuskan langganan dihilangkan, dibuat ulang, lalu disinkronkan. Untuk informasi selengkapnya, lihat Berlangganan Publikasi dan Menyinkronkan Data.

Catatan

Paket Layanan SQL Server 2014 (12.x) 2 atau lebih tinggi dan Paket Layanan SQL Server 2016 (13.x) 1 atau lebih tinggi mendukung penghapusan tabel menggunakan perintah DROP TABLE DDL untuk artikel yang berpartisipasi dalam Replikasi Transaksional. Jika DROP TABLE DDL didukung oleh publikasi, maka operasi DROP TABLE akan menghilangkan tabel dari publikasi dan database. Agen pembaca log akan memposting perintah pembersihan untuk database distribusi tabel yang dihilangkan dan melakukan pembersihan metadata penerbit. Jika pembaca log belum memproses semua rekaman log yang merujuk ke tabel yang dihilangkan, maka akan mengabaikan perintah baru yang terkait dengan tabel yang dihilangkan. Rekaman yang sudah diproses akan dikirimkan ke database distribusi. Mereka dapat diterapkan pada database Pelanggan jika Agen Distribusi memprosesnya sebelum Pembaca Log membersihkan artikel yang usang (dihilangkan). Pengaturan default untuk semua publikasi replikasi transaksional adalah tidak mendukung DROP TABLE DDL. KB 3170123 memiliki detail lebih lanjut tentang peningkatan ini.

Lihat Juga

Menerbitkan Objek Data dan Database
Menginisialisasi ulang Langganan
Membuat Perubahan Skema pada Database Publikasi