Subskriber Replikasi dan Grup Ketersediaan AlwaysOn (SQL Server)

Saat grup ketersediaan AlwaysOn yang berisi database yang merupakan pelanggan replikasi gagal, langganan replikasi mungkin gagal. Untuk pelanggan pendorongan replikasi transaksional, agen distribusi akan terus mereplikasi secara otomatis setelah failover jika langganan dibuat menggunakan nama pendengar AG. Untuk pelanggan penarikan replikasi transaksional, agen distribusi akan terus mereplikasi secara otomatis setelah failover, jika langganan dibuat menggunakan nama pendengar AG dan server pelanggan asli aktif dan berjalan. Ini karena pekerjaan agen distribusi hanya dibuat pada pelanggan asli (replika utama AG). Untuk pelanggan penggabungan, administrator replikasi harus mengonfigurasi ulang pelanggan secara manual, dengan membuat ulang langganan.

Apa yang Didukung

Replikasi SQL Server mendukung failover otomatis penerbit, failover otomatis pelanggan transaksional, dan failover manual pelanggan gabungan. Failover distributor pada database ketersediaan tidak didukung. AlwaysOn tidak dapat dikombinasikan dengan skenario Websync dan SQL Server Compact.

Pengalihan Langganan Pull Merge

Langganan penarikan gagal setelah failover grup ketersediaan, karena agen penarikan tidak dapat menemukan pekerjaan yang disimpan dalam database msdb instans server yang menghosting replika utama; yang tidak tersedia karena instans server telah gagal.

Pengalihan Otomatis Langganan Dorong Penggabungan

Langganan pendorongan gagal setelah failover grup ketersediaan, karena agen pendorongan tidak dapat lagi tersambung ke database langganan asli pada pelanggan asli.

Cara Membuat Langganan Transaksional di Lingkungan AlwaysOn

Untuk replikasi transaksional, gunakan langkah-langkah berikut untuk mengonfigurasi dan melakukan failover grup ketersediaan pelanggan:

  1. Sebelum membuat langganan, tambahkan database pelanggan ke grup ketersediaan AlwaysOn yang sesuai.

  2. Tambahkan Listener dari grup ketersediaan subskriber sebagai server tertaut untuk semua simpul dalam grup ketersediaan. Langkah ini memastikan bahwa semua mitra failover potensial menyadari dan dapat terhubung ke pendengar.

  3. Menggunakan skrip di bagian Membuat Langganan Push Replikasi Transaksional di bawah ini, buat langganan dengan menggunakan nama pendengar kelompok ketersediaan penerima. Setelah failover, nama pendengar akan selalu tetap valid, sedangkan nama server pelanggan yang sebenarnya akan bergantung pada node aktual yang menjadi primer baru.

    Nota

    Langganan harus dibuat dengan menggunakan skrip Transact-SQL dan tidak dapat dibuat menggunakan Management Studio.

  4. Jika membuat langganan penarikan:

    1. Di Management Studio, pada simpul pelanggan utama, buka pohon SQL Server Agent.

    2. Identifikasi tugas Agen Distribusi Pull dan edit tugas.

    3. Pada langkah pekerjaan Jalankan Agen, periksa parameter -Publisher dan -Distributor. Pastikan parameter ini berisi server langsung dan nama instans server penerbit dan distributor yang benar.

    4. Ubah parameter -Subscriber menjadi nama listener grup ketersediaan langganan.

Ketika Anda membuat langganan Anda dengan mengikuti langkah-langkah ini, maka Anda tidak perlu melakukan apa pun setelah terjadi failover.

Membuat Langganan Push Replikasi Transaksional

-- commands to execute at the publisher, in the publisher database:  
use [<publisher database name>]  
EXEC sp_addsubscription @publication = N'<publication name>',   
       @subscriber = N'<availability group listener name>',   
       @destination_db = N'<subscriber database name>',   
       @subscription_type = N'Push',   
       @sync_type = N'automatic', @article = N'all', @update_mode = N'read only', @subscriber_type = 0;  
GO  
  
EXEC sp_addpushsubscription_agent @publication = N'<publication name>',   
       @subscriber = N'<availability group listener name>',   
       @subscriber_db = N'<subscriber database name>',   
       @job_login = null, @job_password = null, @subscriber_security_mode = 1;  
GO  

Untuk Melanjutkan Agen Penggabungan Setelah Grup Ketersediaan Pelanggan Gagal

Untuk replikasi penggabungan, administrator replikasi harus mengonfigurasi ulang pelanggan secara manual dengan langkah-langkah berikut:

  1. Jalankan sp_subscription_cleanup untuk menghapus langganan lama untuk pelanggan. Lakukan tindakan ini pada replika utama baru (yang sebelumnya merupakan replika sekunder).

  2. Buat ulang langganan dengan membuat langganan baru, dimulai dengan snapshot baru.

Nota

Proses saat ini kurang nyaman bagi pelanggan replikasi penggabungan. Namun, skenario utama untuk replikasi penggabungan adalah pengguna yang tidak terhubung (desktop, laptop, perangkat genggam) yang tidak akan menggunakan grup ketersediaan AlwaysOn bagi pelanggan.