Meningkatkan replika grup ketersediaan

Berlaku untuk:SQL Server

Saat meningkatkan instans SQL Server yang menghosting grup ketersediaan AlwaysOn (AG) ke versi SQL Server baru, ke paket layanan SQL Server baru atau pembaruan kumulatif, atau saat menginstal ke paket layanan Windows baru atau pembaruan kumulatif, Anda dapat mengurangi waktu henti untuk replika utama hanya untuk satu failover manual dengan melakukan peningkatan bergulir (atau dua failover manual jika gagal kembali ke primer asli).

Selama proses peningkatan, replika sekunder tidak akan tersedia untuk failover atau untuk operasi baca-saja, dan setelah peningkatan, mungkin perlu beberapa waktu bagi replika sekunder untuk mengejar ketinggalan dengan simpul replika utama tergantung pada volume aktivitas pada simpul replika utama (jadi harapkan lalu lintas jaringan tinggi).

Perlu diketahui juga bahwa setelah failover awal ke replika sekunder yang menjalankan versi SQL Server yang lebih baru, database di AG tersebut akan berjalan melalui proses peningkatan untuk membawanya ke versi terbaru. Selama waktu ini, tidak akan ada replika yang dapat dibaca untuk salah satu database ini. Waktu henti setelah failover awal akan bergantung pada jumlah database di AG. Jika Anda berencana untuk gagal kembali ke primer asli, langkah ini tidak akan diulang saat Anda gagal kembali.

Catatan

Artikel ini membatasi diskusi untuk peningkatan SQL Server itu sendiri. Ini tidak mencakup peningkatan sistem operasi yang berisi Kluster Failover Windows Server (WSFC). Meningkatkan sistem operasi Windows yang menghosting kluster failover tidak didukung untuk sistem operasi sebelum Windows Server 2012 R2. Untuk meningkatkan node kluster yang berjalan di Windows Server 2012 R2, lihat Peningkatan Bergulir Sistem Operasi Kluster.

Prasyarat

Sebelum memulai, tinjau informasi penting berikut:

Catatan

Mencampur versi instans SQL Server dalam AG yang sama tidak didukung di luar peningkatan bergulir dan tidak boleh ada dalam status tersebut untuk jangka waktu yang lama karena peningkatan harus berlangsung dengan cepat. Opsi lain untuk meningkatkan SQL Server 2016 (13.x) dan versi yang lebih baru adalah melalui penggunaan grup ketersediaan terdistribusi.

Dasar-dasar peningkatan bergulir untuk grup ketersediaan

Amati panduan berikut saat melakukan peningkatan atau pembaruan server untuk meminimalkan waktu henti dan kehilangan data untuk AG Anda:

  • Sebelum Anda memulai peningkatan bergulir:

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

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

    • Jalankan DBCC CHECKDB pada setiap database ketersediaan

  • Selalu tingkatkan instans replika sekunder jarak jauh terlebih dahulu, lalu instans replika sekunder lokal berikutnya, dan instans 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. Selama peningkatan versi, tidak ada replika yang dapat dibaca atau tersedia untuk cadangan. Selama peningkatan non-versi, Anda dapat mengonfigurasi pencadangan otomatis untuk berjalan pada replika sekunder sebelum meningkatkan replika utama.

  • Selama peningkatan versi, sekunder yang dapat dibaca tidak dapat dibaca setelah peningkatan sekunder yang dapat dibaca dan sebelum replika utama gagal ke sekunder yang ditingkatkan, atau replika utama ditingkatkan.

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

  • Jangan tingkatkan instans replika utama sebelum mengalihkan AG ke instans yang ditingkatkan dengan replika sekunder terlebih dahulu. Jika tidak, aplikasi klien mungkin mengalami waktu henti yang diperpanjang selama peningkatan pada instans replika utama.

  • Selalu failover AG ke instans replika sekunder synchronous-commit. Jika Anda melakukan failover ke instans replika sekunder penerapan asinkron, database rentan terhadap kehilangan data, dan pergerakan data secara otomatis ditangguhkan sampai Anda melanjutkan pergerakan data secara manual.

  • Jangan tingkatkan instans replika utama sebelum meningkatkan atau memperbarui instans replika sekunder lainnya. Replika utama yang ditingkatkan tidak dapat lagi mengirim log ke replika sekunder yang instans SQL Server 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. Ini juga berlaku selama peningkatan bergulir di mana Anda melakukan failover secara manual dari primer lama ke primer baru. Dengan demikian, setelah meningkatkan primer lama, Anda mungkin perlu melanjutkan sinkronisasi.

  • Sebelum mengalihkan AG, verifikasi bahwa status sinkronisasi target failover adalah SYNCHRONIZED.

    Peringatan

    Menginstal instans baru atau versi baru SQL Server ke server yang memiliki versi SQL Server yang lebih lama terinstal secara tidak sengaja dapat menyebabkan pemadaman untuk grup ketersediaan apa pun yang dihosting oleh versi SQL Server yang lebih lama. Ini karena selama penginstalan instans atau versi SQL Server, modul ketersediaan tinggi SQL Server (RHS.EXE) akan ditingkatkan. Ini menghasilkan gangguan sementara dari grup ketersediaan Anda yang ada dalam peran utama di server. Oleh karena itu, sangat disarankan agar Anda melakukan salah satu hal berikut saat menginstal versi SQL Server yang lebih baru ke sistem yang sudah menghosting versi SQL Server yang lebih lama dengan grup ketersediaan:

    • Instal versi baru SQL Server selama jendela pemeliharaan.

    • Failover grup ketersediaan ke replika sekunder sehingga tidak utama selama penginstalan instans SQL Server baru.

Proses peningkatan bergulir

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

Diagram Peningkatan AG dalam Skenario HADR.

  1. Menghapus failover otomatis pada semua replika penerapan sinkron
  2. Tingkatkan semua instans replika sekunder penerapan asinkron.
  3. Tingkatkan semua instans replika sekunder penerapan sinkron jarak jauh.
  4. Tingkatkan semua instans replika sekunder penerapan sinkron lokal.
  5. Failover AG secara manual ke replika sekunder penerapan sinkron lokal (baru ditingkatkan).
  6. Tingkatkan atau perbarui instans replika lokal yang sebelumnya menghosting replika utama.
  7. Konfigurasikan mitra failover otomatis sesuai keinginan.

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

Catatan

Meningkatkan replika penerapan sinkron dan membuatnya offline tidak akan menunda transaksi pada primer. Setelah replika sekunder terputus, transaksi dilakukan pada primer tanpa menunggu log mengeras pada replika sekunder.

Jika REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT diatur ke atau 12, replika Utama mungkin tidak tersedia untuk baca/tulis ketika jumlah replika sekunder sinkronisasi yang sesuai tidak tersedia selama proses pembaruan.

Catatan

Ketika Anda melakukan peningkatan replika sekunder di tempat ke versi SQL Server yang lebih baru, database di dalam grup ketersediaan tetap berada dalam status Sinkronisasi / Dalam pemulihan atau Disinkronkan / Dalam Pemulihan hingga grup ketersediaan gagal secara manual, yang menyelesaikan pemulihan dan meningkatkan database. Replika utama yang ditingkatkan tidak dapat lagi mengirim log ke replika sekunder versi yang lebih rendah dan pergerakan data berhenti dan tidak ada failover otomatis yang dapat terjadi untuk replika tersebut, dan database ketersediaan Anda rentan terhadap kehilangan data. Setelah memutakhirkan primer lama, Anda mungkin perlu melanjutkan sinkronisasi. Disarankan untuk meningkatkan semua replika sekunder sebelum melakukan failover ke replika dengan versi baru. Dengan begitu Anda memiliki opsi untuk melakukan failover setelah database ditingkatkan ke format baru.

AG dengan satu replika sekunder jarak jauh

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

Diagram Peningkatan AG dalam Skenario DR.

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

  1. Memutakhirkan instans replika sekunder di situs jarak jauh
  2. Mengubah mode penerapan menjadi penerapan sinkron
  3. Tunggu hingga status sinkronisasi SYNCHRONIZED
  4. Failover AG ke replika sekunder di situs jarak jauh
  5. Memutakhirkan atau memperbarui instans replika lokal (situs utama)
  6. Failover AG kembali ke situs utama
  7. Mengubah mode penerapan menjadi penerapan asinkron

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

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

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

AG dengan node instans kluster failover

Jika AG berisi node instans kluster failover (FCI), Anda harus meningkatkan simpul yang tidak aktif sebelum meningkatkan simpul aktif. Gambar berikut mengilustrasikan skenario AG umum dengan FCI untuk ketersediaan tinggi lokal dan penerapan asinkron antara FCI untuk pemulihan bencana jarak jauh, dan urutan peningkatan.

Diagram Peningkatan AG dengan FCI.

  1. Memutakhirkan atau memperbarui REMOTE2
  2. Failover FCI2 ke REMOTE2
  3. Memutakhirkan atau memperbarui REMOTE1
  4. Memutakhirkan atau memperbarui PRIMARY2
  5. Failover FCI1 ke PRIMARY2
  6. Memutakhirkan atau memperbarui PRIMARY1

Meningkatkan atau memperbarui instans SQL Server dengan beberapa AG

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

AG Node1 Node2 Node3
AG1 Primer
AG2 Primer
AG3 Primer

Mungkin sesuai dalam situasi Anda untuk melakukan peningkatan bergulir dengan beban seimbang dalam urutan berikut:

  1. Failover AG2 ke Node3 (untuk membebaskan Node2)
  2. Memutakhirkan atau memperbarui Node2
  3. Failover AG1 ke Node2 (untuk membebaskan Node1)
  4. Memutakhirkan atau memperbarui Node1
  5. Failover AG2 dan AG3 ke Node1 (untuk membebaskan Node3)
  6. Memutakhirkan atau memperbarui Node3
  7. Failover AG3 ke Node3

Urutan peningkatan ini memiliki waktu henti rata-rata kurang dari dua failover per AG. Konfigurasi yang dihasilkan diperlihatkan dalam tabel berikut.

AG Node1 Node2 Node3
AG1 Primer
AG2 Primer
AG3 Primer

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

Catatan

Dalam banyak kasus, setelah peningkatan bergulir selesai, Anda akan gagal kembali ke replika utama asli.

Peningkatan bergulir dari grup ketersediaan terdistribusi

Untuk melakukan peningkatan bergulir grup ketersediaan terdistribusi, pertama-tama tingkatkan semua replika sekunder. Selanjutnya, failover penerus, dan tingkatkan instans terakhir yang tersisa dari grup ketersediaan kedua. Setelah semua replika lainnya ditingkatkan, failover primer global, dan tingkatkan instans terakhir yang tersisa dari grup ketersediaan pertama. Diagram terperinci dengan langkah-langkah disediakan di bawah ini.

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

Catatan

Dalam banyak kasus, setelah peningkatan bergulir selesai, Anda akan gagal kembali ke replika utama asli.

Langkah-langkah umum untuk meningkatkan grup ketersediaan terdistribusi

  1. Cadangkan semua database, termasuk database sistem, dan database yang berpartisipasi dalam grup ketersediaan.
  2. Tingkatkan dan mulai ulang semua replika sekunder dari grup ketersediaan kedua (hilir).
  3. Tingkatkan dan mulai ulang semua replika sekunder dari grup ketersediaan pertama (upstram).
  4. Gagal atas primer penerus ke replika sekunder yang ditingkatkan dari grup ketersediaan sekunder.
  5. Tunggu sinkronisasi data. Database harus ditampilkan sebagai disinkronkan pada semua replika penerapan sinkron, dan primer global harus disinkronkan dengan penerus.
  6. Tingkatkan dan mulai ulang instans terakhir yang tersisa dari grup ketersediaan sekunder.
  7. Gagal atas primer global ke sekunder yang ditingkatkan dari grup ketersediaan pertama.
  8. Tingkatkan instans terakhir yang tersisa dari grup ketersediaan utama.
  9. Mulai ulang server yang baru dimutakhirkan.
  10. (opsional) Gagalkan kedua grup ketersediaan kembali ke replika utama aslinya.

Penting

Verifikasi sinkronisasi di antara setiap langkah. Sebelum melanjutkan ke langkah berikutnya, konfirmasikan bahwa replika penerapan sinkron Anda disinkronkan dalam grup ketersediaan, dan bahwa primer global Anda disinkronkan dengan penerus di AG terdistribusi.

Rekomendasi: Setiap kali Anda memverifikasi sinkronisasi, refresh simpul database dan simpul AG terdistribusi di SQL Server Management Studio. Setelah semuanya disinkronkan, simpan cuplikan layar status setiap replika. Ini akan membantu Anda melacak langkah apa yang Anda jalankan, memberikan bukti bahwa semuanya berfungsi dengan benar sebelum langkah berikutnya, dan membantu Anda memecahkan masalah jika ada yang salah.

Contoh diagram untuk peningkatan bergulir grup ketersediaan terdistribusi

Grup ketersediaan Replika utama Replika Sekunder
AG1 NODE1\SQLAG NODE2\SQLAG
AG2 NODE3\SQLAG NODE4\SQLAG
DistributedAG AG1 (global) AG2 (penerus)

Diagram untuk AG terdistribusi.

Langkah-langkah untuk meningkatkan instans dalam diagram ini:

  1. Cadangkan semua database, termasuk database sistem, dan database yang berpartisipasi dalam grup ketersediaan.
  2. Tingkatkan NODE4\SQLAG (sekunder AG2) dan mulai ulang server.
  3. Tingkatkan NODE2\SQLAG (sekunder AG1) dan mulai ulang server.
  4. Fail AG2 dari NODE3\SQLAG ke NODE4\SQLAG.
  5. Tingkatkan NODE3\SQLAG dan mulai ulang server.
  6. Gagal AG1 dari NODE1\SQLAG ke NODE2\SQLAG.
  7. Tingkatkan NODE1\SQLAG dan mulai ulang server.
  8. (opsional) Gagal kembali ke replika utama asli.
    1. Gagal AG2 dari NODE4\SQLAG belakang ke NODE3\SQLAG.
    2. Gagalkan AG1 dari NODE2\SQLAG belakang ke NODE1\SQLAG.

Jika replika ketiga ada di setiap grup ketersediaan, replika tersebut akan ditingkatkan sebelum NODE3\SQLAG dan NODE1\SQLAG.

Penting

Verifikasi sinkronisasi di antara setiap langkah. Sebelum melanjutkan ke langkah berikutnya, konfirmasikan bahwa replika penerapan sinkron Anda disinkronkan dalam grup ketersediaan, dan bahwa primer global Anda disinkronkan dengan penerus di AG terdistribusi.

Rekomendasi: Setiap kali Anda memverifikasi sinkronisasi, refresh simpul database dan simpul AG Terdistribusi di SQL Server Management Studio. Jika Setelah semuanya disinkronkan, ambil cuplikan layar dan simpan. Ini akan membantu Anda melacak langkah apa yang Anda jalankan, memberikan bukti bahwa semuanya berfungsi dengan benar sebelum langkah berikutnya, dan membantu Anda memecahkan masalah jika ada yang salah.

Langkah khusus untuk mengubah tangkapan atau replikasi data

Bergantung pada pembaruan yang diterapkan, langkah-langkah tambahan mungkin diperlukan untuk database replika AG yang diaktifkan untuk mengubah tangkapan atau replikasi data. Lihat catatan rilis untuk pembaruan guna menentukan apakah langkah-langkah berikut diperlukan:

  1. Tingkatkan setiap replika sekunder.

  2. Setelah semua replika sekunder ditingkatkan, failover AG ke instans yang ditingkatkan.

  3. Jalankan Transact-SQL berikut pada instans yang menghosting replika utama:

    EXECUTE [master].[sys].[sp_vupgrade_replication];
    

    Catatan

    Perintah ini mungkin memerlukan waktu beberapa menit untuk dijalankan. Lewati langkah ini jika Anda menggunakan SQL Server 2019 CU1 atau yang lebih baru. Untuk mempelajari lebih lanjut, tinjau KB4530283

  4. Tingkatkan instans yang awalnya merupakan replika utama.

Untuk informasi latar belakang, lihat fungsionalitas CDC mungkin putus setelah meningkatkan ke CU terbaru.

Lihat juga