Kebijakan Failover untuk Instans Kluster Failover
Berlaku untuk: SQL Server
Dalam instans kluster failover SQL Server (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 menyediakan kebijakan failover yang fleksibel.
SQL Server FCI 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 penyiapan SQL Server.
Kluster WSFC mempertahankan konfigurasi kuorum, yang memastikan target failover unik dalam failover otomatis. Layanan WSFC menentukan apakah kluster berada dalam kesehatan kuorum yang 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:
Memantau Status Kesehatan
Ada tiga jenis status kesehatan yang dipantau untuk FCI:
Status layanan SQL Server
Layanan WSFC memantau status mulai 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 batas waktu dan mengulangi pengaturan interval:
DLL sumber daya memanggil prosedur tersimpan sp_server_diagnostics dan mengatur interval pengulangan ke sepertiga pengaturan HealthCheckTimeout.
Jika prosedur tersimpan sp_server_diagnostics 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.
Diagnostik komponen SQL Server
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.
sistem
resource
proses kueri
io_subsystem
events
Komponen sistem, sumber daya, dan proses kueri digunakan untuk deteksi kegagalan. Komponen io_subsytem dan peristiwa hanya digunakan untuk tujuan diagnostik.
Setiap kumpulan 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 Database SQL Server 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 mulai 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 mulai ulang atau failover server akan dipicu jika kondisi berikut dinaikkan: Layanan SQL Server tidak berfungsi. |
2 | Failover atau mulai ulang pada server tidak responsif | Menunjukkan bahwa mulai 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 mulai 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 mulai 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 mulai 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 node yang gagal dan kemudian failover jika upaya hidupkan ulang tidak berhasil. Pengaturan mulai ulang dan failover dikonfigurasi dalam snap-in Pengelola 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).