Mengonfigurasi replikasi dengan grup ketersediaan AlwaysOn

Berlaku untuk:SQL Server - Khusus Windows

Mengonfigurasi replikasi SQL Server dan grup ketersediaan AlwaysOn melibatkan tujuh langkah. Setiap langkah dijelaskan secara lebih rinci di bagian berikut.

1. Mengonfigurasi Publikasi dan Langganan Database

Mengonfigurasi distributor

Database distribusi tidak dapat ditempatkan dalam grup ketersediaan dengan SQL Server 2012 dan SQL Server 2014. Menempatkan database distribusi ke dalam grup ketersediaan didukung dengan SQL 2016 dan lebih besar, kecuali untuk database distribusi yang digunakan dalam topologi replikasi gabungan, dua arah, atau peer-to-peer. Untuk informasi selengkapnya, lihat Mengonfigurasi database distribusi dalam grup ketersediaan.

  1. Mengonfigurasi distribusi di distributor. Jika prosedur tersimpan sedang digunakan untuk konfigurasi, jalankan sp_adddistributor. Gunakan parameter @password untuk mengidentifikasi kata sandi yang akan digunakan saat penerbit jarak jauh terhubung ke distributor. Kata sandi juga akan diperlukan di setiap penerbit jarak jauh ketika distributor jarak jauh disiapkan.

    USE master;  
    GO  
    EXEC sys.sp_adddistributor  
        @distributor = 'MyDistributor',  
        @password = '**Strong password for distributor**';  
    
  2. Buat database distribusi di distributor. Jika prosedur tersimpan sedang digunakan untuk konfigurasi, jalankan sp_adddistributiondb.

    USE master;  
    GO  
    EXEC sys.sp_adddistributiondb  
        @database = 'distribution',  
        @security_mode = 1;  
    
  3. Mengonfigurasi penerbit jarak jauh. Jika prosedur tersimpan digunakan untuk mengonfigurasi distributor, jalankan sp_adddistpublisher. Parameter @security_mode digunakan untuk menentukan bagaimana prosedur tersimpan validasi penerbit yang dijalankan dari agen replikasi, terhubung ke primer saat ini. Jika diatur ke 1 autentikasi Windows digunakan untuk menyambungkan ke primer saat ini. Jika diatur ke 0, autentikasi SQL Server digunakan dengan nilai @login dan @password yang ditentukan. Login dan kata sandi yang ditentukan harus valid di setiap replika sekunder agar prosedur tersimpan validasi berhasil tersambung ke replika tersebut.

    Catatan

    Jika ada agen replikasi yang dimodifikasi yang berjalan di komputer selain distributor, penggunaan autentikasi Windows untuk koneksi ke primer akan mengharuskan autentikasi Kerberos dikonfigurasi untuk komunikasi antara komputer host replika. Penggunaan login SQL Server untuk koneksi ke primer saat ini tidak akan memerlukan autentikasi Kerberos.

    USE master;  
    GO  
    EXEC sys.sp_adddistpublisher  
        @publisher = 'AGPrimaryReplicaHost',  
        @distribution_db = 'distribution',  
        @working_directory = '\\MyReplShare\WorkingDir',  
        @login = 'MyPubLogin',  
        @password = '**Strong password for publisher**';  
    

Untuk informasi selengkapnya, lihat sp_adddistpublisher (Transact-SQL).

Mengonfigurasi penerbit di penerbit asli

  1. Mengonfigurasi distribusi jarak jauh. Jika prosedur tersimpan digunakan untuk mengonfigurasi penerbit, jalankan sp_adddistributor. Tentukan nilai yang sama untuk @password seperti yang digunakan saat sp_adddistrbutor dijalankan di distributor untuk menyiapkan distribusi.

    exec sys.sp_adddistributor  
        @distributor = 'MyDistributor',  
        @password = 'MyDistPass'  
    
  2. Aktifkan database untuk replikasi. Jika prosedur tersimpan digunakan untuk mengonfigurasi penerbit, jalankan sp_replicationdboption. Jika replikasi transaksional dan penggabungan akan dikonfigurasi untuk database, masing-masing harus diaktifkan.

    USE master;  
    GO  
    EXEC sys.sp_replicationdboption  
        @dbname = 'MyDBName',  
        @optname = 'publish',  
        @value = 'true';  
    
    EXEC sys.sp_replicationdboption  
        @dbname = 'MyDBName',  
        @optname = 'merge publish',  
        @value = 'true';  
    
  3. Buat publikasi, artikel, dan langganan replikasi. Untuk informasi selengkapnya tentang cara mengonfigurasi replikasi, lihat Menerbitkan objek Data dan Database.

2. Mengonfigurasi Grup Ketersediaan AlwaysOn

Di primer yang dimaksudkan, buat grup ketersediaan dengan database yang diterbitkan (atau akan diterbitkan) sebagai database anggota. Jika menggunakan Wizard Grup Ketersediaan, Anda bisa memperbolehkan wizard untuk awalnya menyinkronkan database replika sekunder atau Anda bisa melakukan inisialisasi secara manual dengan menggunakan pencadangan dan pemulihan.

Buat pendengar DNS untuk grup ketersediaan yang akan digunakan oleh agen replikasi untuk menyambungkan ke primer saat ini. Nama pendengar yang ditentukan akan digunakan sebagai target pengalihan untuk pasangan database penerbit/penerbit asli. Misalnya, jika Anda menggunakan DDL untuk mengonfigurasi grup ketersediaan, contoh kode berikut dapat digunakan untuk menentukan listener grup ketersediaan untuk grup ketersediaan yang ada bernama MyAG:

ALTER AVAILABILITY GROUP 'MyAG'   
    ADD LISTENER 'MyAGListenerName' (WITH IP (('10.120.19.155', '255.255.254.0')));  

Untuk informasi selengkapnya, lihat Pembuatan dan Konfigurasi Grup Ketersediaan (SQL Server).

3. Pastikan bahwa semua Host Replika Sekunder Dikonfigurasi untuk Replikasi

Di setiap host replika sekunder, verifikasi bahwa SQL Server telah dikonfigurasi untuk mendukung replikasi. Kueri berikut dapat dijalankan di setiap host replika sekunder untuk menentukan apakah replikasi diinstal:

USE master;  
GO  
DECLARE @installed int;  
EXEC @installed = sys.sp_MS_replication_installed;  
SELECT @installed;  

Jika @installed adalah 0, replikasi harus ditambahkan ke penginstalan SQL Server.

4. Konfigurasikan Host Replika Sekunder sebagai Penerbit Replikasi

Replika sekunder tidak dapat bertindak sebagai penerbit replikasi atau penerbit ulang tetapi replikasi harus dikonfigurasi sehingga sekunder dapat mengambil alih setelah failover. Di distributor, konfigurasikan distribusi untuk setiap host replika sekunder. Tentukan database distribusi dan direktori kerja yang sama seperti yang ditentukan ketika penerbit asli ditambahkan ke distributor. Jika Anda menggunakan prosedur tersimpan untuk mengonfigurasi distribusi, gunakan sp_adddistpublisher untuk mengaitkan penerbit jarak jauh dengan distributor. Jika @login dan @password digunakan untuk penerbit asli, tentukan nilai yang sama untuk masing-masing saat Anda menambahkan host replika sekunder sebagai penerbit.

EXEC sys.sp_adddistpublisher  
    @publisher = 'AGSecondaryReplicaHost',  
    @distribution_db = 'distribution',  
    @working_directory = '\\MyReplShare\WorkingDir',  
    @login = 'MyPubLogin',  
    @password = '**Strong password for publisher**';  

Di setiap host replika sekunder, konfigurasikan distribusi. Identifikasi distributor penerbit asli sebagai distributor jarak jauh. Gunakan kata sandi yang sama seperti yang digunakan saat sp_adddistributor dijalankan awalnya di distributor. Jika prosedur tersimpan digunakan untuk mengonfigurasi distribusi, parameter @passwordsp_adddistributor digunakan untuk menentukan kata sandi.

EXEC sp_adddistributor   
    @distributor = 'MyDistributor',  
    @password = '**Strong password for distributor**';  

Di setiap host replika sekunder, pastikan bahwa pelanggan pendorongan publikasi database muncul sebagai server yang ditautkan. Jika prosedur tersimpan digunakan untuk mengonfigurasi penerbit jarak jauh, gunakan sp_addlinkedserver untuk menambahkan pelanggan (jika belum ada) sebagai server tertaut ke penerbit.

EXEC sys.sp_addlinkedserver   
    @server = 'MySubscriber';  

5. Alihkan Penerbit Asli ke Nama Pendengar AG

Di distributor, dalam database distribusi, jalankan prosedur tersimpan sp_redirect_publisher untuk mengaitkan penerbit asli dan database yang diterbitkan dengan nama pendengar grup ketersediaan grup ketersediaan.

USE distribution;  
GO  
EXEC sys.sp_redirect_publisher   
@original_publisher = 'MyPublisher',  
    @publisher_db = 'MyPublishedDB',  
    @redirected_publisher = 'MyAGListenerName';  

6. Jalankan Prosedur Tersimpan Validasi Replikasi untuk Memverifikasi Konfigurasi

Di distributor, dalam database distribusi, jalankan prosedur tersimpan sp_validate_replica_hosts_as_publishers untuk memverifikasi bahwa semua host replika sekarang dikonfigurasi untuk berfungsi sebagai penerbit untuk database yang diterbitkan.

USE distribution;  
GO  
DECLARE @redirected_publisher sysname;  
EXEC sys.sp_validate_replica_hosts_as_publishers  
    @original_publisher = 'MyPublisher',  
    @publisher_db = 'MyPublishedDB',  
    @redirected_publisher = @redirected_publisher output;  

Prosedur tersimpan sp_validate_replica_hosts_as_publishers harus dijalankan dari login dengan otorisasi yang memadai di setiap host replika grup ketersediaan untuk meminta informasi tentang grup ketersediaan. Tidak seperti sp_validate_redirected_publisher, ia menggunakan kredensial pemanggil dan tidak menggunakan login yang dipertahankan di msdb.dbo.MSdistpublishers untuk terhubung ke replika grup ketersediaan.

Catatan

sp_validate_replica_hosts_as_publishers akan gagal dengan kesalahan berikut saat memvalidasi host replika sekunder yang tidak mengizinkan akses baca, atau memerlukan niat baca untuk ditentukan.

Msg 21899, Level 11, State 1, Procedure sp_hadr_verify_subscribers_at_publisher, Line 109

Kueri di penerbit 'MyReplicaHostName' yang dialihkan untuk menentukan apakah ada entri sysserver untuk pelanggan penerbit asli 'MyOriginalPublisher' gagal dengan kesalahan '976', pesan kesalahan 'Kesalahan 976, Tingkat 14, Status 1, Pesan: Database target, 'MyPublishedDB', berpartisipasi dalam grup ketersediaan dan saat ini tidak dapat diakses untuk kueri. Pergerakan data ditangguhkan atau replika ketersediaan tidak diaktifkan untuk akses baca. Untuk mengizinkan akses baca-saja ke database ini dan database lain dalam grup ketersediaan, aktifkan akses baca ke satu atau beberapa replika ketersediaan sekunder dalam grup. Untuk informasi selengkapnya, lihat pernyataan UBAH GRUP KETERSEDIAAN di SQL Server Books Online.'.

Satu atau beberapa kesalahan validasi penerbit ditemui untuk host replika 'MyReplicaHostName'.

Ini adalah perilaku yang diharapkan. Anda harus memverifikasi keberadaan entri server pelanggan di host replika sekunder ini dengan mengkueri entri sysserver langsung di host.

7. Tambahkan Penerbit Asli ke Monitor Replikasi

Di setiap replika grup ketersediaan, tambahkan penerbit asli ke Monitor Replikasi.

Tugas Terkait

Replikasi

Untuk membuat dan mengonfigurasi grup ketersediaan

Lihat juga