Kebijakan Failover untuk Instans Kluster Failover

Berlaku untuk:SQL Server

Dalam SQL Server instans kluster failover (FCI), hanya satu simpul yang dapat memiliki grup sumber daya kluster Windows Server Failover Cluster (WSFC) pada waktu tertentu. Permintaan klien dilayani melalui simpul ini di FCI. Dalam kasus kegagalan dan restart yang tidak berhasil, kepemilikan grup dipindahkan ke node WSFC lain di FCI. Proses ini disebut failover. SQL Server meningkatkan keandalan deteksi kegagalan dan memberikan kebijakan failover yang fleksibel.

FCI SQL Server tergantung pada layanan WSFC yang mendasar untuk deteksi failover. Oleh karena itu, dua mekanisme menentukan perilaku failover untuk FCI: yang pertama adalah fungsionalitas WSFC asli, dan yang terakhir adalah fungsionalitas yang ditambahkan oleh pengaturan SQL Server.

  • Kluster WSFC mempertahankan konfigurasi kuorum, yang memastikan target failover unik dalam failover otomatis. Layanan WSFC menentukan apakah kluster berada dalam kesehatan kuorum optimal setiap saat dan membawa grup sumber daya online dan offline yang sesuai.

  • Instans SQL Server aktif secara berkala melaporkan serangkaian diagnostik komponen ke grup sumber daya WSFC melalui koneksi khusus. Grup sumber daya WSFC mempertahankan kebijakan failover, yang menentukan kondisi kegagalan yang memicu restart dan failover.

Topik ini membahas mekanisme kedua di atas. Untuk informasi selengkapnya tentang perilaku WSFC untuk konfigurasi kuorum dan deteksi kesehatan, lihat Mode Kuorum WSFC dan Konfigurasi Pemungutan Suara (SQL Server).

Penting

Failover otomatis ke dan dari FCI tidak diizinkan dalam grup ketersediaan AlwaysOn. Namun, failover manual ke dan dari dan FCI diizinkan dalam grup ketersediaan AlwaysOn.

Gambaran Umum Kebijakan Failover

Proses failover dapat dipecah menjadi langkah-langkah berikut:

  1. Memantau Status Kesehatan

  2. Menentukan Kegagalan

  3. Menanggapi Kegagalan

Memantau Status Kesehatan

Ada tiga jenis status kesehatan yang dipantau untuk FCI:

Status layanan SQL Server

Layanan WSFC memantau status awal layanan SQL Server pada simpul FCI aktif untuk mendeteksi kapan layanan SQL Server dihentikan.

Responsivitas instans SQL Server

Selama startup SQL Server, layanan WSFC menggunakan DLL sumber daya Mesin Database SQL Server untuk membuat koneksi baru ke pada utas terpisah yang digunakan secara eksklusif untuk memantau status kesehatan. Ini memastikan bahwa di sana instans SQL memiliki sumber daya yang diperlukan untuk melaporkan status kesehatannya saat di bawah beban. Dengan menggunakan koneksi khusus ini, SQL Server menjalankan prosedur tersimpan sistem sp_server_diagnostics (Transact-SQL) dalam mode berulang untuk secara berkala melaporkan status kesehatan komponen SQL Server ke DLL sumber daya.

DLL sumber daya menentukan respons instans SQL menggunakan batas waktu pemeriksaan kesehatan. Properti HealthCheckTimeout menentukan berapa lama DLL sumber daya harus menunggu prosedur tersimpan sp_server_diagnostics sebelum melaporkan instans SQL sebagai tidak responsif terhadap layanan WSFC. Properti ini dapat dikonfigurasi menggunakan T-SQL serta di snap-in Manajer Kluster Failover. Untuk informasi selengkapnya, lihat Mengonfigurasi Pengaturan Properti HealthCheckTimeout. Item berikut ini menjelaskan bagaimana properti ini memengaruhi pengaturan waktu habis dan interval berulang:

  • DLL sumber daya memanggil prosedur tersimpan sp_server_diagnostics dan mengatur interval pengulangan ke sepertiga dari pengaturan HealthCheckTimeout.

  • Jika prosedur sp_server_diagnostics tersimpan lambat atau tidak mengembalikan informasi, DLL sumber daya akan menunggu interval yang ditentukan oleh HealthCheckTimeout sebelum melaporkan ke layanan WSFC bahwa instans SQL tidak responsif.

  • Jika koneksi khusus hilang, DLL sumber daya akan mencoba kembali koneksi ke instans SQL untuk interval yang ditentukan oleh HealthCheckTimeout sebelum melaporkan ke layanan WSFC bahwa instans SQL tidak responsif.

SQL Server diagnostik komponen

Prosedur tersimpan sistem sp_server_diagnostics secara berkala mengumpulkan diagnostik komponen pada instans SQL. Informasi diagnostik yang dikumpulkan muncul sebagai baris untuk setiap komponen berikut dan diteruskan ke utas panggilan.

  1. sistem

  2. sumber daya

  3. proses kueri

  4. io_subsystem

  5. events

Komponen sistem, sumber daya, dan proses kueri digunakan untuk deteksi kegagalan. Komponen io_subsytem dan peristiwa hanya digunakan untuk tujuan diagnostik.

Setiap kumpulan baris informasi juga ditulis ke log diagnostik kluster SQL Server. Untuk informasi selengkapnya, lihat Melihat dan Membaca Log Diagnostik Instans Kluster Failover.

Tip

Meskipun prosedur tersimpan sp_server_diagnostic digunakan oleh teknologi SQL Server Always On, prosedur ini tersedia untuk digunakan dalam instans SQL Server apa pun untuk membantu mendeteksi dan memecahkan masalah.

Menentukan Kegagalan

DLL sumber daya mesin SQL Server Database menentukan apakah status kesehatan yang terdeteksi adalah kondisi kegagalan menggunakan properti FailureConditionLevel. Properti FailureConditionLevel menentukan status kesehatan yang terdeteksi yang menyebabkan restart atau failover. Beberapa tingkat opsi tersedia, mulai dari tidak ada hidupkan ulang atau failover otomatis hingga semua kemungkinan kondisi kegagalan yang mengakibatkan mulai ulang atau failover otomatis. Untuk informasi selengkapnya tentang cara mengonfigurasi properti ini, lihat Mengonfigurasi Pengaturan Properti FailureConditionLevel.

Kondisi kegagalan diatur pada skala yang meningkat. Untuk tingkat 1-5, setiap tingkat mencakup semua kondisi dari tingkat sebelumnya selain kondisinya sendiri. Ini berarti bahwa dengan setiap tingkat, ada peningkatan probabilitas failover atau restart. Tingkat kondisi kegagalan dijelaskan dalam tabel berikut.

Tinjau sp_server_diagnostics (Transact-SQL) karena prosedur tersimpan sistem ini memainkan peran penting dalam tingkat kondisi kegagalan.

Tingkat Kondisi Deskripsi
0 Tidak ada failover otomatis atau mulai ulang Menunjukkan bahwa tidak ada failover atau mulai ulang yang akan dipicu secara otomatis pada kondisi kegagalan apa pun. Tingkat ini hanya untuk tujuan pemeliharaan sistem.
1 Failover atau mulai ulang pada server tidak berfungsi Menunjukkan bahwa hidupkan ulang atau failover server akan dipicu jika kondisi berikut dinaikkan:

layanan SQL Server tidak berfungsi.
2 Failover atau hidupkan ulang di server tidak responsif Menunjukkan bahwa hidupkan ulang atau failover server akan dipicu jika salah satu kondisi berikut dinaikkan:

layanan SQL Server tidak berfungsi.

instans SQL Server tidak responsif (DLL Sumber Daya tidak dapat menerima data dari sp_server_diagnostics dalam pengaturan HealthCheckTimeout).
3* Failover atau mulai ulang pada kesalahan server penting Menunjukkan bahwa hidupkan ulang atau failover server akan dipicu jika salah satu kondisi berikut dinaikkan:

layanan SQL Server tidak berfungsi.

instans SQL Server tidak responsif (DLL Sumber Daya tidak dapat menerima data dari sp_server_diagnostics dalam pengaturan HealthCheckTimeout).

Prosedur tersimpan sistem sp_server_diagnostics mengembalikan 'kesalahan sistem'.
4 Failover atau mulai ulang pada kesalahan server sedang Menunjukkan bahwa hidupkan ulang atau failover server akan dipicu jika salah satu kondisi berikut dinaikkan:

layanan SQL Server tidak berfungsi.

instans SQL Server tidak responsif (DLL Sumber Daya tidak dapat menerima data dari sp_server_diagnostics dalam pengaturan HealthCheckTimeout).

Prosedur tersimpan sistem sp_server_diagnostics mengembalikan 'kesalahan sistem'.

Prosedur tersimpan sistem sp_server_diagnostics mengembalikan 'kesalahan sumber daya'.
5 Failover atau mulai ulang pada kondisi kegagalan yang memenuhi syarat Menunjukkan bahwa hidupkan ulang atau failover server akan dipicu jika salah satu kondisi berikut dinaikkan:

layanan SQL Server tidak berfungsi.

instans SQL Server tidak responsif (DLL Sumber Daya tidak dapat menerima data dari sp_server_diagnostics dalam pengaturan HealthCheckTimeout).

Prosedur tersimpan sistem sp_server_diagnostics mengembalikan 'kesalahan sistem'.

Prosedur tersimpan sistem sp_server_diagnostics mengembalikan 'kesalahan sumber daya'.

Prosedur tersimpan sistem sp_server_diagnostics mengembalikan 'kesalahan query_processing'.

*Nilai Default

Menanggapi Kegagalan

Setelah satu atau beberapa kondisi kegagalan terdeteksi, bagaimana layanan WSFC merespons kegagalan tergantung pada status kuorum WSFC dan pengaturan hidupkan ulang dan failover grup sumber daya FCI. Jika FCI telah kehilangan kuorum WSFC-nya, maka seluruh FCI dibawa offline dan FCI telah kehilangan ketersediaan tingginya. Jika FCI masih mempertahankan kuorum WSFC-nya, maka layanan WSFC dapat merespons dengan terlebih dahulu mencoba memulai ulang simpul yang gagal dan kemudian failover jika upaya hidupkan ulang tidak berhasil. Pengaturan hidupkan ulang dan failover dikonfigurasi di snap-in Manajer Kluster Failover. Untuk informasi selengkapnya tentang pengaturan ini, lihat <Properti Sumber Daya> : Tab Kebijakan.

Untuk informasi selengkapnya tentang menjaga kesehatan kuorum, lihat Mode Kuorum WSFC dan Konfigurasi Pemungutan Suara (SQL Server).

Lihat juga

MENGUBAH KONFIGURASI SERVER (Transact-SQL)