Bagikan melalui


Peningkatan dan Pembaruan Server Grup Ketersediaan dengan Waktu Henti Minimal dan Kehilangan Data

Saat memperbarui atau meningkatkan instans server dari SQL Server 2012 ke paket layanan atau versi yang lebih baru, Anda dapat mengurangi waktu henti untuk grup ketersediaan menjadi hanya satu failover manual dengan melakukan pembaruan atau peningkatan berurutan. Untuk meningkatkan versi SQL Server, ini dikenal sebagai peningkatan bergulir; untuk memperbarui versi SQL Server saat ini dengan perbaikan atau paket layanan, ini dikenal sebagai pembaruan bergulir.

Topik ini membatasi diskusi hanya untuk SQL Server peningkatan/pembaruan. Untuk peningkatan/pembaruan terkait sistem operasi yang dijalankan instans SQL Server dengan ketersediaan tinggi, lihat Migrasi Lintas Kluster Grup Ketersediaan AlwaysOn untuk Peningkatan Sistem Operasi

Peningkatan Bergulir/Perbarui Praktik Terbaik untuk Grup Ketersediaan AlwaysOn

Praktik terbaik berikut harus diamati saat melakukan peningkatan/pembaruan server untuk meminimalkan waktu henti dan kehilangan data untuk grup ketersediaan Anda:

  • Sebelum memulai peningkatan/pembaruan bergulir,

    • Lakukan praktik failover manual pada setidaknya salah satu replika penerapan sinkron Anda

    • Lindungi data Anda dengan melakukan pencadangan database lengkap pada setiap database ketersediaan

    • Menjalankan DBCC CHECKDB pada setiap database ketersediaan

  • Selalu tingkatkan/perbarui simpul replika sekunder jarak jauh terlebih dahulu, lalu simpul replika sekunder lokal berikutnya, dan simpul replika utama terakhir.

  • Pencadangan tidak dapat terjadi pada database yang sedang dalam proses dimutakhirkan. Sebelum meningkatkan replika sekunder, konfigurasikan preferensi pencadangan otomatis untuk menjalankan pencadangan hanya pada replika utama. Sebelum memutakhirkan replika utama, ubah pengaturan ini untuk menjalankan pencadangan hanya pada replika sekunder.

  • Untuk mencegah grup ketersediaan dari failover yang tidak diinginkan selama proses peningkatan/pembaruan, hapus failover ketersediaan dari semua replika penerapan sinkron sebelum Anda mulai.

  • Jangan tingkatkan node replika utama sebelum melakukan failover pada grup ketersediaan ke node yang ditingkatkan dengan replika sekunder terlebih dahulu. Jika tidak, aplikasi klien dapat mengalami waktu henti yang diperpanjang selama peningkatan/pembaruan pada replika utama.

  • Selalu gagal atas grup ketersediaan ke simpul replika sekunder synchronous-commit. Jika Anda gagal ke replika sekunder penerapan asinkron, database akan mengalami kehilangan data, dan pergerakan data secara otomatis ditangguhkan sampai Anda melanjutkan pergerakan data secara manual.

  • Jangan meningkatkan/memperbarui simpul replika utama sebelum meningkatkan/memperbarui simpul replika sekunder lainnya. Replika utama yang ditingkatkan tidak dapat lagi mengirim log ke replika sekunder apa pun yang belum ditingkatkan ke versi yang sama. Ketika pergerakan data ke replika sekunder ditangguhkan, tidak ada failover otomatis yang dapat terjadi untuk replika tersebut, dan database ketersediaan Anda rentan terhadap kehilangan data.

  • Sebelum mengalihkan grup ketersediaan, verifikasi bahwa status sinkronisasi target failover DISINKRONKAN.

Proses Peningkatan/Pembaruan Bergulir

Dalam praktiknya, proses yang tepat akan bergantung pada faktor-faktor seperti topologi penyebaran grup ketersediaan Anda dan mode penerapan setiap replika. Tetapi dalam skenario paling sederhana, peningkatan/pembaruan bergulir adalah proses multi-tahap yang dalam bentuk paling sederhana melibatkan langkah-langkah berikut:

Peningkatan Grup Ketersediaan dalam Skenario HADR

  1. Menghapus failover otomatis pada semua replika penerapan sinkron

  2. Meningkatkan/memperbarui semua instans server jarak jauh yang menjalankan replika sekunder penerapan asinkron

  3. Meningkatkan/memperbarui semua instans server lokal yang saat ini tidak menjalankan replika utama

  4. Failover grup ketersediaan secara manual ke replika sekunder synchronous-commit

  5. Meningkatkan/memperbarui instans server yang sebelumnya menghosting replika utama

  6. Mengonfigurasi mitra failover otomatis sesuai keinginan

Jika perlu, Anda dapat melakukan failover manual tambahan untuk mengembalikan grup ketersediaan ke konfigurasi aslinya.

Grup Ketersediaan dengan Satu Replika Sekunder Jarak Jauh

Jika Anda telah menyebarkan grup ketersediaan hanya untuk pemulihan bencana, Anda mungkin perlu mengalihkan grup ketersediaan ke replika sekunder penerapan asinkron. Konfigurasi tersebut diilustrasikan oleh gambar berikut:

Peningkatan Grup Ketersediaan dalam Skenario DR

Dalam situasi ini, Anda harus mengalihkan grup ketersediaan ke replika sekunder penerapan asinkron selama peningkatan/pembaruan bergulir. Untuk mencegah kehilangan data, ubah mode penerapan menjadi penerapan sinkron dan tunggu replika sekunder disinkronkan sebelum Anda melakukan failover pada grup ketersediaan. Oleh karena itu, proses peningkatan/pembaruan bergulir mungkin terlihat sebagai berikut:

  1. Meningkatkan/memperbarui server jarak jauh

  2. Mengubah mode penerapan menjadi penerapan sinkron

  3. Tunggu hingga status sinkronisasi DISINKRONKAN

  4. Gagal atas grup ketersediaan ke situs jarak jauh

  5. Memutakhirkan/memperbarui server lokal (situs utama)

  6. Gagal atas grup ketersediaan ke situs utama

  7. Mengubah mode penerapan menjadi penerapan asinkron

Karena mode penerapan sinkron bukanlah pengaturan yang disarankan untuk sinkronisasi data ke situs jarak jauh, aplikasi klien mungkin melihat peningkatan latensi database segera setelah pengaturan berubah. Selain itu, melakukan failover akan menyebabkan semua pesan log yang tidak diakui dibuang. Jumlah pesan log yang dibuang bisa sangat besar karena tingginya latensi jaringan antara kedua situs, menyebabkan klien mengalami volume kegagalan transaksi yang tinggi. Anda dapat meminimalkan dampak pada aplikasi klien dengan melakukan hal berikut:

  • Pilih jendela pemeliharaan dengan hati-hati selama lalu lintas klien rendah

  • Saat memutakhirkan/memperbarui SQL Server di situs utama, ubah kembali mode ketersediaan ke penerapan asinkron, lalu kembali ke penerapan sinkron ketika Anda siap untuk melakukan failover ke situs utama lagi

Grup Ketersediaan dengan Node Instans Kluster Failover

Jika grup ketersediaan berisi node instans kluster failover (FCI), Anda harus meningkatkan/memperbarui simpul yang tidak aktif sebelum meningkatkan/memperbarui simpul aktif. Gambar di bawah ini menggambarkan skenario grup ketersediaan umum dengan FCI untuk ketersediaan tinggi lokal dan penerapan asinkron antara FCI untuk pemulihan bencana jarak jauh, dan urutan peningkatan.

Peningkatan Grup Ketersediaan dengan

  1. Meningkatkan/memperbarui REMOTE2

  2. Failover FCI2 ke REMOTE2

  3. Meningkatkan/memperbarui REMOTE1

  4. Meningkatkan/memperbarui PRIMARY2

  5. Failover FCI1 ke PRIMARY2

  6. Meningkatkan/memperbarui PRIMARY1

Meningkatkan/Memperbarui Instans SQL Server dengan Beberapa Grup Ketersediaan

Jika Anda menjalankan beberapa grup ketersediaan dengan replika utama pada simpul server terpisah (konfigurasi Aktif/Aktif), jalur peningkatan/pembaruan melibatkan lebih banyak langkah failover untuk mempertahankan ketersediaan tinggi dalam prosesnya. Misalkan Anda menjalankan tiga grup ketersediaan pada tiga simpul server seperti yang ditunjukkan dalam tabel berikut, dan semua replika sekunder berjalan dalam mode penerapan sinkron.

Grup Ketersediaan Node1 Node2 Node3
AG1 Primer
AG2 Primer
AG3 Primer

Mungkin sesuai dalam situasi Anda untuk melakukan peningkatan/pembaruan bergulir yang seimbang dalam urutan berikut:

  1. Failover AG2 ke Node3 (untuk membebaskan Node2)

  2. Meningkatkan/memperbarui Node2

  3. Failover AG1 ke Node2 (untuk membebaskan Node1)

  4. Meningkatkan/memperbarui Node1

  5. Failover AG2 dan AG3 ke Node1 (untuk membebaskan Node3)

  6. Meningkatkan/memperbarui Node3

  7. Failover AG3 ke Node3

Urutan peningkatan/pembaruan ini memiliki waktu henti rata-rata kurang dari dua failover per grup ketersediaan. Konfigurasi yang dihasilkan ditampilkan dalam tabel di bawah ini.

Grup Ketersediaan Node1 Node2 Node3
AG1 Primer
AG2 Primer
AG3 Primer

Berdasarkan implementasi spesifik Anda, jalur peningkatan/pembaruan Anda dapat bervariasi, dan waktu henti yang dialami aplikasi klien juga dapat bervariasi.