Database SQL Server AlwaysOn terjebak dalam mode Tidak Sinkronisasi / Dalam Pemulihan setelah pemutakhiran. Kesalahan: Tidak dapat membuka database '...' versi 782

10

Saat menguji pemutakhiran dari SQL Server 2014 SP1 (12.0.4422.0) ke SQL Server 2016 CTP 3.2 (13.0.900.73) Saya mengikuti proses pembaruan yang disarankan dan mengalami masalah di mana basis data tidak akan mulai pada primer lama setelah gagal ke sekunder diperbarui. Setup kami adalah replika primer dan replika sekunder tunggal, dan langkah-langkah yang saya selesaikan adalah:

  1. Hapus failover otomatis pada replika sekunder sinkron-komit
  2. Tingkatkan instance server sekunder ke versi baru
  3. Gagal secara manual ke replika sekunder
  4. Verifikasi basis data sedang online dengan replika primer baru
  5. Tingkatkan replika utama-sebelumnya ke versi baru

Pembaruan sekunder dan failover untuk menjadikannya yang utama berfungsi persis seperti yang diharapkan. Tetapi setelah memutakhirkan replika yang sebelumnya primer, saya perhatikan bahwa database di dalamnya terdaftar dalam SSMS sebagai Tidak Sinkronisasi / Pemulihan . Juga mencoba mengaksesnya akan menghasilkan pesan kesalahan:

Basis data ... tidak dapat diakses. (ObjectExplorer)

Memeriksa log SQL Server yang saya lihat

Tidak dapat membuka basis data '...' versi 782. Tingkatkan basis data ke versi terbaru.

Meminta tabel master..sysdatabases menunjukkan bahwa itu memang versi yang lebih lama dan belum diperbarui selama peningkatan:

Versi sysdatabases SSMS

Sayangnya log tidak menunjukkan mengapa itu tidak diperbarui, dan Dasbor Grup Ketersediaan hanya memberikan peringatan umum yang menunjukkan status sinkronisasi data dari beberapa database ketersediaan tidak sehat tanpa alasan mengapa.

Saya mencoba menggunakan TSQL untuk melepaskan basis data atau mengaturnya secara offline untuk "menendang" ke pembaruan, tetapi karena mereka adalah bagian dari SQL AG perintah-perintah itu tidak berfungsi.

Bagaimana saya bisa memutakhirkan database ke versi terbaru ketika itu merupakan bagian dari SQL AG?

Greg Bray
sumber

Jawaban:

10

Setelah mengaduk-aduk SSMS sebentar saya perhatikan bahwa pada replika sekunder ada ikon jeda di sebelah Database Ketersediaan. Primer telah menunjukkan keduanya "hijau", tetapi ada opsi pada sekunder untuk Melanjutkan Gerakan Data . Saya kembali ke database pertama, dan segera pesan status Pemulihan dihapus. Semenit kemudian berubah dari Tidak Sinkronisasi ke Disinkronkan, dan semuanya berfungsi seperti yang diharapkan.

Berikut ini adalah tangkapan layar dari AG Database setelah saya memperbaiki "Patch", tetapi sebelum memperbaiki database pengujian:

Lanjutkan Gerakan Data pada SQL AG

Catatan Anda juga dapat menggunakan TSQL di sekunder untuk melanjutkan replikasi pada beberapa basis data secara bersamaan:

ALTER DATABASE [Patch] SET HADR RESUME;
ALTER DATABASE [test] SET HADR RESUME;
GO
Greg Bray
sumber
1
Apakah Anda tahu apa yang menyebabkan Replikasi berhenti? dan dapatkah saya mencari tahu sejak saat replikasi dijeda?
JohnG