Memperkirakan Gangguan Layanan Selama Pengalihan Peran (Pencerminan Database)

Berlaku untuk:SQL Server

Selama pengalihan peran, jumlah waktu pencerminan database akan kehabisan layanan tergantung pada jenis pengalihan peran dan penyebab pengalihan peran.

  • Untuk failover otomatis, dua faktor yang berkontribusi pada layanan waktu terganggu: waktu yang diperlukan server cermin untuk mengenali bahwa instans server utama telah gagal, yaitu deteksi kesalahan, ditambah waktu yang diperlukan untuk gagal melalui database, yaitu waktu failover.

  • Untuk operasi layanan paksa, meskipun kegagalan telah terjadi, mendeteksi dan merespons kegagalan tergantung pada responsivitas manusia. Namun, memperkirakan potensi gangguan layanan terbatas pada memperkirakan waktu bagi server cermin untuk beralih peran setelah perintah layanan paksa dikeluarkan.

    Catatan

    Untuk mengurangi waktu yang diperlukan untuk mendeteksi kondisi tertentu seperti beberapa jenis kesalahan, Anda dapat menentukan pemberitahuan untuk kondisi tersebut.

  • Untuk failover manual, hanya waktu yang diperlukan untuk melakukan failover pada database setelah perintah failover dikeluarkan.

Deteksi kesalahan

Waktu bagi sistem untuk melihat kesalahan tergantung pada jenis kesalahan; misalnya, kesalahan jaringan terlihat hampir seketika, sambil memperhatikan server yang tidak merespons membutuhkan waktu 10 detik (dengan batas waktu default).

Untuk informasi tentang kesalahan yang dapat menyebabkan kegagalan selama sesi pencerminan database dan deteksi waktu habis dalam mode keamanan tinggi dengan failover otomatis, lihat Kemungkinan Kegagalan Selama Pencerminan Database).

Waktu failover

Waktu failover terutama terdiri dari waktu yang diperlukan server cermin sebelumnya untuk meneruskan log apa pun yang tersisa dalam antrean pengulangannya, ditambah waktu tambahan yang singkat (untuk informasi selengkapnya tentang bagaimana server cermin memproses rekaman log, lihat Pencerminan Database (SQL Server)). Untuk informasi tentang memperkirakan waktu failover, lihat Memperkirakan Tingkat Pengulangan Failover Anda, nanti dalam topik ini.

Penting

Jika failover terjadi selama transaksi di mana indeks atau tabel dibuat lalu diubah, failover mungkin memakan waktu lebih lama dari biasanya. Misalnya, failover selama rangkaian operasi berikut dapat meningkatkan waktu failover: BEGIN TRANSACTION, CREATE INDEX pada tabel, dan SELECT INTO tabel. Kemungkinan peningkatan waktu failover selama transaksi tersebut tetap ada sampai selesai dengan pernyataan TRANSAKSI COMMIT TRANSACTION atau ROLLBACK.

Antrean Ulang

Rolling forward database melibatkan penerapan rekaman log apa pun yang saat ini berada dalam antrean pengulangan di server cermin. Antrean pengulangan terdiri dari catatan log yang telah ditulis ke disk di server cermin tetapi belum digulirkan ke depan pada database cermin.

Waktu failover untuk database tergantung pada seberapa cepat server cermin dapat meneruskan log dalam antrean pengulangan, yang, pada gilirannya, ditentukan terutama oleh perangkat keras sistem dan beban kerja saat ini. Berpotensi, database utama dapat menjadi sangat sibuk sehingga server utama mengirim log ke server cermin jauh lebih cepat daripada yang dapat menggulung log ke depannya. Dalam situasi ini, failover mungkin membutuhkan waktu yang signifikan saat server cermin meneruskan log dalam antrean pengulangan. Untuk mempelajari ukuran antrean pengulangan saat ini, gunakan penghitung Ulangi Antrean di objek performa pencerminan database. Untuk informasi selengkapnya, lihat SQL Server, Objek Pencerminan Database.

Memperkirakan Tingkat Pengulangan Failover

Anda dapat mengukur jumlah waktu yang diperlukan untuk meneruskan rekaman log-laju pengulangan dengan menggunakan salinan pengujian database produksi.

Metode untuk memperkirakan waktu roll forward selama failover tergantung pada jumlah utas yang digunakan server cermin selama fase pengulangan. Jumlah utas tergantung pada hal berikut:

  • Dalam edisi Standar SQL Server, server cermin selalu menggunakan satu utas untuk meneruskan database.

  • Dalam edisi SQL Server Enterprise, server cermin di komputer dengan kurang dari lima CPU juga hanya menggunakan satu utas. Dengan lima CPU atau lebih, server cermin mendistribusikan operasi roll forward-nya di antara beberapa utas selama failover (ini dikenal sebagai pengulangan paralel). Pengulangan paralel dioptimalkan untuk menggunakan satu utas untuk setiap empat CPU.

Memperkirakan Laju Pengulangan Berulir Tunggal

Untuk pengulangan utas tunggal, roll forward database cermin selama failover membutuhkan waktu yang kira-kira sama dengan pemulihan cadangan log yang diperlukan untuk meneruskan jumlah log yang sama. Untuk memperkirakan waktu failover, buat database pengujian di lingkungan tempat Anda ingin menjalankan pencerminan. Kemudian ambil cadangan log dari database produksi. Untuk mengukur laju pengulangan untuk cadangan log tersebut, waktu yang dibutuhkan Anda untuk memulihkan cadangan log DENGAN NORECOVERY ke database pengujian.

Setelah Anda mengetahui tingkat pengulangan server cermin Anda, Anda dapat memperkirakan waktu untuk melakukan failover pada database pada titik waktu tertentu dengan membalik jumlah log saat ini yang akan direbus pada cermin (sebagaimana diukur oleh penghitung kinerja Ulang Antrean ) dengan laju pengulangan. Dalam kondisi normal, jika server cermin dapat mengikuti beban dari prinsipal, Antrean Pengulangan kecil atau mendekati nol, dan failover hanya membutuhkan waktu beberapa detik.

Memperkirakan Laju Pengulangan Paralel

Dalam edisi SQL Server Enterprise, pengulangan paralel dioptimalkan untuk menggunakan satu utas untuk setiap empat CPU. Untuk memperkirakan waktu roll forward untuk pengulangan paralel, lebih akurat untuk mengakses sistem pengujian yang sedang berjalan daripada database pengujian. Saat memantau antrean pengulangan di server cermin, tingkatkan beban pada server utama. Dalam operasi normal, antrean pengulangan mendekati nol. Tingkatkan beban di server utama sampai Antrean Ulang mulai tumbuh terus; sistem kemudian pada tingkat pengulangan maksimumnya, dan penghitung kinerja Redo Bytes/detik pada titik ini mewakili laju pengulangan maksimum. Untuk informasi selengkapnya, lihat SQL Server, Objek Pencerminan Database.

Memperkirakan Gangguan Layanan Selama Failover Otomatis

Gambar berikut menggambarkan bagaimana deteksi kesalahan dan waktu failover berkontribusi pada waktu keseluruhan yang diperlukan agar failover otomatis selesai pada Partner_B. Failover memerlukan waktu untuk meneruskan database (fase pengulangan) ditambah sedikit waktu untuk membuat database online. Fase pembatalan, yang melibatkan rollback setiap transaksi yang tidak dilakukan, terjadi setelah database utama baru online dan berlanjut setelah failover. Database tersedia selama fase batalkan.

Error detection and failover time

Lihat Juga

Mode Operasi Mirroring Database
Pengalihan Peran Selama Sesi Pencerminan Database (SQL Server)
Memantau Pencerminan Database (SQL Server)