Mengaktifkan failover database yang ditingkatkan ke database dalam grup ketersediaan AlwaysOn

Berlaku untuk:SQL Server

Di SQL Server 2012 dan 2014, jika database yang berpartisipasi dalam grup ketersediaan pada replika utama kehilangan kemampuan untuk menulis transaksi, itu tidak akan memicu failover bahkan jika replika disinkronkan dan dikonfigurasi untuk failover otomatis.

SQL Server 2016 memperkenalkan perilaku opsional baru bernama failover database yang ditingkatkan yang dapat diatur baik oleh Wizard atau dengan menggunakan Transact-SQL. Jika opsi ini diaktifkan dan failover otomatis dikonfigurasi, ketika satu basis data yang berpartisipasi dalam grup ketersediaan tidak lagi dapat menulis transaksi, ini akan memicu failover ke replika sekunder yang tersinkronisasi.

Skenario 1

Grup ketersediaan dikonfigurasi antara Instans A dan Instans B, yang berisi database tunggal bernama DB1. File data DB1 ada di Drive E dan file log transaksinya ada di Drive F. Mode ketersediaan diatur ke komit sinkron dengan failover otomatis. Opsi failover database baru yang disempurnakan dikonfigurasi pada grup ketersediaan. Kedua replika saat ini dalam keadaan disinkronkan. Masalah menyebabkan Drive E gagal. Skenario ini tidak akan menyebabkan failover database yang ditingkatkan, karena Drive E tidak berisi log transaksi.

Dalam skenario di atas, jika kesalahan 823 dilaporkan 4 kali berturut-turut sementara opsi failover database diatur ke 'on', SQL Server akan memberi tahu Kluster Failover Windows untuk mengambil tindakan yang tepat berdasarkan kebijakan failover peran AG, ini dapat dikonfigurasi untuk melakukan failover, atau melakukan memulai ulang sumber daya.

Skenario 2

Ini memiliki konfigurasi grup ketersediaan yang sama dengan Skenario 1. Daripada Drive E gagal, kali ini drive log transaksi, Drive F, gagal. Ini akan memicu failover, karena memenuhi kondisi yang tercakup oleh failover database yang ditingkatkan: log transaksi tidak dapat dijangkau, yang berarti database tidak dapat menulis transaksi.

Skenario 3

Grup ketersediaan dikonfigurasi antara Instans A dan Instans B yang berisi dua database: DB1 dan DB2. Mode ketersediaan diatur ke komit sinkron dengan mode failover otomatis, dan failover database yang ditingkatkan diaktifkan. Akses ke disk yang berisi data DB2 dan file log transaksi hilang. Ketika masalah terdeteksi, grup ketersediaan akan secara otomatis beralih ke Instance B.

Mengonfigurasi failover yang ditingkatkan

Failover database yang ditingkatkan dapat dikonfigurasi menggunakan SQL Server Management Studio atau Transact-SQL. Cmdlet PowerShell saat ini tidak memiliki kemampuan ini. Secara default, failover database yang ditingkatkan dinonaktifkan.

SQL Server Management Studio

Mengaktifkan failover database yang ditingkatkan dimungkinkan selama pembuatan grup aksesibilitas menggunakan SQL Server Management Studio. Satu-satunya cara untuk menonaktifkan atau mengaktifkannya setelah membuat grup ketersediaan adalah dengan menggunakan Transact-SQL.

Pembuatan Grup Ketersediaan Manual

Gunakan instruksi yang ditemukan dalam artikel Menggunakan Kotak Dialog Grup Ketersediaan Baru (SQL Server Management Studio) untuk membuat grup ketersediaan. Untuk mengaktifkan failover database yang ditingkatkan, pilih kotak centangnya di samping Deteksi Kesehatan Tingkat Database.

Menggunakan Panduan Grup Ketersediaan

Gunakan instruksi yang ditemukan dalam artikel Menggunakan Wizard Grup Ketersediaan (SQL Server Management Studio). Opsi untuk mengaktifkan failover database yang ditingkatkan ditemukan pada dialog Tentukan Nama Grup Ketersediaan. Untuk mengaktifkannya, centang kotak di samping Deteksi Kesehatan pada Tingkat Basis Data.

Transact-SQL

Untuk mengonfigurasi perilaku failover database yang lebih baik selama pembuatan grup ketersediaan, DB_FAILOVER harus diatur ke ON sebagai berikut:

CREATE AVAILABILITY GROUP [AGNAME]
WITH ( DB_FAILOVER = ON)
...

Untuk menambahkan perilaku ini setelah grup ketersediaan dikonfigurasi, gunakan perintah UBAH GRUP KETERSEDIAAN:

ALTER AVAILABILITY GROUP [AGNAME] SET (DB_FAILOVER = ON)

Untuk menonaktifkan perilaku ini, terbitkan perintah UBAH GRUP KETERSEDIAAN berikut:

ALTER AVAILABILITY GROUP [AGNAME] SET (DB_FAILOVER = OFF)

Tampilan manajemen dinamis

Untuk mengetahui apakah grup ketersediaan telah diaktifkan untuk meningkatkan failover database, jalankan kueri pada tampilan manajemen dinamis sys.availability_groups. Kolom db_failover akan memiliki nol jika dinonaktifkan atau 1 jika diaktifkan.

Langkah berikutnya