Bekerja dengan grup ketersediaan Always On


Halaman ini menjelaskan apa yang dimaksud dengan grup ketersediaan AlwaysOn di SQL Server dan cara Datastream mendukungnya untuk skenario failover dan pemulihan data.

Ringkasan grup ketersediaan Always On

Di SQL Server, grup ketersediaan Always On adalah solusi ketersediaan tinggi yang memungkinkan Anda menyiapkan database untuk skenario pemulihan dari bencana (disaster recovery).

Grup ketersediaan Always On memaksimalkan ketersediaan database untuk bisnis. Grup ketersediaan mendukung lingkungan yang direplikasi untuk serangkaian database yang dipilih, yang dikenal sebagai database ketersediaan. Setiap grup mencakup satu set database utama untuk tugas baca dan tulis, serta hingga delapan set database sekunder yang sesuai. Database sekunder dapat secara opsional mengizinkan akses hanya baca atau operasi pencadangan.

Untuk mengetahui informasi selengkapnya tentang grup ketersediaan Always On, lihat Apa yang dimaksud dengan grup ketersediaan Always On? dalam dokumentasi SQL Server.

Untuk mengetahui informasi tentang prasyarat grup Ketersediaan Always On untuk instance SQL Server, lihat dokumentasi SQL Server.

Mengonfigurasi Datastream untuk digunakan dengan grup ketersediaan Always On

Datastream mendukung mode ketersediaan synchronous-commit dengan metode CDC tabel perubahan. Dalam mode ini, database sekunder tetap disinkronkan dengan database primer yang sesuai hingga sinkronisasi data berhenti. Konfirmasi transaksi hanya dikirim ke klien saat replika sekunder menulis catatan log transaksi yang masuk ke disk.

Untuk mengetahui informasi tentang mode ketersediaan, lihat Perbedaan antara mode ketersediaan untuk grup ketersediaan Always On.

Untuk mengonfigurasi instance SQL Server agar dapat digunakan dengan grup ketersediaan Always On, Anda harus mengaktifkan Agen SQL Server untuk merekam log saat terjadi failover, lalu menjalankan tugas pembersihan. Sebelum dapat melakukannya, Anda perlu mengubah langkah-langkah tugas CDC Agent untuk memeriksa apakah replika saat ini benar-benar merupakan primer. Hal ini dilakukan menggunakan fungsi sys.fn_hadr_is_primary_replica.

Gunakan perintah berikut untuk menyiapkan instance Anda:

  -- Check if the current replica is a primary for the corresponding database.
  USE [DATABASE_NAME];
  DECLARE @DatabaseName SYSNAME = DB_NAME();
  IF (SELECT sys.fn_hadr_is_primary_replica(@DatabaseName)) = 1
  BEGIN
  -- If the replica isn't a primary, the code block that follows is skipped
  EXECUTE sys.sp_cdc_add_job @job_type = 'capture';
  EXECUTE sys.sp_cdc_add_job @job_type = 'cleanup';
  END

Batasan umum

Batasan umum untuk menggunakan Datastream dengan grup ketersediaan Always On meliputi:

  • Datastream tidak mendukung resolusi DNS pribadi berdasarkan alamat IP pendengar. Anda harus mengalihkan alamat IP untuk replika secara manual.
  • Setelah failover grup ketersediaan, Anda harus memastikan secara manual bahwa tugas pengambilan dan pembersihan Agen SQL Server berjalan di server utama yang baru. Jika tidak dilakukan, hal ini dapat menyebabkan hilangnya data jika log transaksi dipangkas sebelum Datastream dapat membaca perubahan.
  • Jika replika dibuat lebih awal daripada yang utama, Anda harus menambahkan label always_on_availability: true ke aliran untuk mencegah masalah integritas data. Untuk mengetahui informasi tentang cara menambahkan label ke streaming, lihat Menentukan setelan untuk streaming.

Langkah berikutnya