Saya telah menguji fitur Grup Ketersediaan di SQL Server 2012 dan saya menemukan bahwa ada sekitar 15 detik down time ketika server utama gagal ke server sekunder. Semua query SQL yang dieksekusi selama waktu ini gagal sampai transisi failover selesai.
Apakah ada cara untuk mendapatkan ini hingga 0 detik dan mencegah permintaan gagal selama transisi failover?
Dengan kata lain, apakah ada cara untuk menjalankan kueri saat gagal diarahkan ke server utama alih-alih gagal ... dan apakah ada cara untuk mendapatkan koneksi db baru untuk segera terhubung ke server sekunder alih-alih gagal terhubung selama transisi failover?
Saat ini saya memiliki 2 server yang diatur di Grup Ketersediaan.
Jawaban:
Tidak, tidak ada cara untuk melakukan zero-downtime failover dengan AlwaysOn (atau dalam SQL Server secara umum, sejauh yang saya ketahui). Untuk melakukan itu, SQL Server yang terhubung dengan Anda harus melakukan transfer status ke node lain di pertengahan kueri, dan karena banyak kegagalan tidak terduga, itu tidak mungkin.
Namun, Anda dapat mengaktifkan "read-only secondaries" di AlwaysOn, dan kemudian pembaca Anda akan memiliki nol-downtime ketika server utama gagal - karena mereka terhubung ke salinan sekunder untuk melakukan permintaan SELECT mereka, mereka tidak akan bahkan memperhatikan failover. Masih akan ada gangguan bagi pengguna dengan koneksi "Tulis" terbuka, tetapi setidaknya beberapa bagian dari basis pengguna Anda tidak akan terganggu.
sumber