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:
- Hapus failover otomatis pada replika sekunder sinkron-komit
- Tingkatkan instance server sekunder ke versi baru
- Gagal secara manual ke replika sekunder
- Verifikasi basis data sedang online dengan replika primer baru
- 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:
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?