Kuorum: Bagaimana bukti memengaruhi ketersediaan database (pencerminan database)

Berlaku untuk:SQL Server

Setiap kali saksi diatur untuk sesi pencerminan database, kuorum diperlukan. Kuorum adalah hubungan yang ada ketika dua atau beberapa instans server dalam sesi pencerminan database terhubung satu sama lain. Biasanya, kuorum melibatkan tiga instans server yang saling terhubung. Ketika saksi diatur, kuorum diperlukan untuk membuat database tersedia. Dirancang untuk mode keamanan tinggi dengan failover otomatis, kuorum memastikan bahwa database hanya dimiliki oleh satu mitra pada satu waktu.

Jika instans server tertentu terputus dari sesi pencerminan, instans tersebut kehilangan kuorum. Jika tidak ada instans server yang tersambung, sesi akan kehilangan kuorum dan database menjadi tidak tersedia. Tiga jenis kuorum dimungkinkan:

  • Kuorum penuh mencakup mitra dan saksi.

  • Kuorum saksi-ke-mitra terdiri dari saksi dan salah satu mitra.

  • Kuorum mitra-ke-mitra terdiri dari dua mitra.

Gambar berikut menunjukkan jenis kuorum ini.

Kuorum: penuh; saksi dan mitra; kedua mitra

Selama server utama saat ini memiliki kuorum, server ini memiliki peran utama dan terus melayani database, kecuali pemilik database melakukan failover manual. Jika server utama kehilangan kuorum, server tersebut akan berhenti melayani database. Failover otomatis hanya dapat terjadi jika database utama telah kehilangan kuorum, yang menjamin bahwa database tersebut tidak lagi melayani database.

Instans server yang terputus menyimpan peran terbarunya dalam sesi. Biasanya, instans server yang terputus terhubung kembali ke sesi saat dimulai ulang dan mendapatkan kembali kuorum.

Penting

Saksi harus diatur hanya ketika Anda berniat untuk menggunakan mode keselamatan tinggi dengan failover otomatis. Dalam mode berkinerja tinggi, di mana saksi tidak pernah diperlukan, kami sangat menyarankan untuk mengatur properti WITNESS ke NONAKTIF. Untuk informasi tentang dampak saksi pada mode performa tinggi, lihat Mode Operasi Pencerminan Database.

Kuorum dalam Sesi Mode High-Safety

Dalam mode keamanan tinggi, kuorum memungkinkan failover otomatis dengan menyediakan konteks di mana instans server dengan arbitrase kuorum mitra mana yang memiliki peran utama. Server utama melayani database jika memiliki kuorum. Jika server utama kehilangan kuorum ketika server cermin yang disinkronkan dan bukti mempertahankan kuorum, failover otomatis terjadi.

Skenario kuorum untuk mode keamanan tinggi adalah sebagai berikut:

  • Kuorum penuh yang terdiri dari mitra dan saksi.

    Biasanya, ketiga instans server berpartisipasi dalam kuorum tiga arah, yang disebut kuorum penuh. Dengan kuorum penuh, server utama dan cermin terus melakukan peran masing-masing (kecuali terjadi failover manual).

  • Kuorum saksi-ke-mitra yang terdiri dari saksi dan salah satu mitra.

    Jika koneksi jaringan antara mitra hilang karena salah satu mitra telah hilang, kasus berikut dimungkinkan:

    • Server cermin hilang, dan server utama dan saksi mempertahankan kuorum.

      Dalam hal ini, prinsipal mengatur databasenya ke TERPUTUS dan berjalan dengan pencerminan dalam status SUSPENDED. (Ini disebut sebagai berjalan terekspos, karena database saat ini tidak dicerminkan.) Ketika server cermin bergabung kembali dengan sesi, server mendapatkan kembali kuorum sebagai cermin dan mulai menyinkronkan ulang salinan databasenya.

    • Server utama hilang, dan saksi dan server cermin mempertahankan kuorum.

      Dalam hal ini, failover otomatis terjadi. Untuk informasi selengkapnya, lihat Mode Operasi Pencerminan Database.

    • Semua instans server kehilangan kuorum, tetapi kemudian cermin dan saksi terhubung kembali. Database tidak akan dilayani dalam kasus ini.

    Jarang, koneksi jaringan antara mitra failover hilang sementara kedua mitra tetap terhubung ke saksi. Dalam peristiwa ini, ada dua, kuorum saksi-ke-mitra terpisah, dengan saksi sebagai penghubung. Saksi menginformasikan server cermin bahwa server utama masih terhubung. Oleh karena itu, failover otomatis tidak terjadi. Sebaliknya, server cermin mempertahankan peran cermin dan menunggu untuk terhubung kembali ke prinsipal. Jika antrean fase pengulangan berisi rekaman log pada saat ini, server cermin terus meneruskan database cermin. Saat menyambungkan kembali, server cermin akan menyinkronkan ulang database cermin.

  • Kuorum mitra-ke-mitra yang terdiri dari dua mitra.

    Selama mitra mempertahankan kuorum, database berlanjut dalam status DISINKRONKAN, dan failover manual tetap dimungkinkan. Tanpa saksi, failover otomatis tidak dimungkinkan; tetapi ketika saksi mendapatkan kembali kuorum, sesi melanjutkan operasi reguler, dan failover otomatis didukung lagi.

  • Sesi kehilangan kuorum.

    Jika semua instans server terputus satu sama lain, sesi tersebut dikatakan telah kehilangan kuorum. Saat instans server terhubung kembali satu sama lain, mereka mendapatkan kembali kuorum satu sama lain.

    • Jika server utama terhubung kembali dengan salah satu instans server lainnya, database akan tersedia.

    • Jika server utama tetap terputus, tetapi cermin dan saksi terhubung kembali satu sama lain, failover otomatis tidak dapat terjadi karena kehilangan data mungkin terjadi. Oleh karena itu, database tetap tidak tersedia, sampai server utama bergabung kembali dengan sesi.

    • Ketika ketiga instans server telah terhubung kembali, kuorum penuh diperoleh kembali, dan sesi melanjutkan operasi regulernya.

Penting

Ketika sesi memiliki kuorum mitra-ke-mitra, jika salah satu mitra kehilangan kuorum, sesi akan kehilangan kuorum. Oleh karena itu, jika Anda mengharapkan saksi tetap terputus untuk banyak waktu, kami sarankan Anda menghapus saksi untuk sementara waktu dari sesi. Menghapus saksi menghapus persyaratan untuk kuorum. Kemudian, jika server cermin terputus, server utama dapat terus melayani database. Untuk informasi tentang cara menambahkan atau menghapus saksi, lihat Bukti Pencerminan Database.

Bagaimana Kuorum Memengaruhi Ketersediaan Database

Ilustrasi berikut menunjukkan bagaimana saksi dan mitra bekerja sama untuk memastikan bahwa, pada waktu tertentu, hanya satu mitra yang memiliki peran utama dan hanya server utama saat ini yang dapat membawa database-nya online. Kedua skenario dimulai dengan kuorum penuh, dan Partner_A dalam peran utama dan Partner_B dalam peran cermin.

Bagaimana saksi dan mitra bekerja sama

Skenario 1 menunjukkan bagaimana setelah server utama asli (Partner_A) gagal, saksi dan cermin setuju bahwa prinsipal, Partner_A, tidak tersedia lagi dan kuorum formulir. Cermin, Partner_B kemudian mengambil peran utama. Failover otomatis terjadi, dan Partner_B, membawa salinan database online. Kemudian Partner_B turun, dan database offline. Kemudian, server utama sebelumnya, Partner_A, terhubung kembali ke kuorum saksi, tetapi saat berkomunikasi dengan saksi, Partner_A mengetahui bahwa ia tidak dapat membawa salinan database secara online, karena Partner_B sekarang memiliki peran utama. Ketika Partner_B bergabung kembali dengan sesi, itu membuat database kembali online.

Dalam Skenario 2, saksi kehilangan kuorum, sementara mitra, Partner_A dan Partner_B, mempertahankan kuorum satu sama lain, dan database tetap online. Kemudian mitra kehilangan kuorum mereka juga, dan database offline. Kemudian, server utama, Partner_A, terhubung kembali ke kuorum saksi mendapatkan kembali. Saksi mengonfirmasi bahwa Partner_A masih memiliki peran utama, dan Partner_A membuat database kembali online.

Lihat juga

Mode Operasi Mirroring Database
Pengalihan Peran Selama Sesi Pencerminan Database (SQL Server)
Bukti Pencerminan Database
Kemungkinan Kegagalan Selama Pencerminan Database
Status Pencerminan (SQL Server)