Gejala
Misalnya Anda menggunakan fitur grup ketersediaan AlwaysOn di Microsoft SQL Server 2012. Saat Anda mengubah akses koneksi replika sekunder dari "terbaca" menjadi "tidak terbaca," kerusakan terjadi pada halaman yang menggunakan kompresi halaman dalam replika yang diberikan.Ketersediaan database yang mengalami masalah ini di replika sekunder tidak bisa pulih karena kesalahan selama fase mengulang sinkronisasi. Replika sekunder tidak akan disinkronkan dengan replika utama, dan laporan ini menyatakan status sinkronisasi "SUSPEND_FROM_REDO." Selain itu, Anda menerima pesan kesalahan berikut dalam log kesalahan SQL Server sebagai inang replika sekunder:
<tanggal> <waktu> spid<id kesalahan>:17066, tingkat keparahan: 16, status: 1. <tanggal> <waktu> spid> <0 id> pernyataan SQL Server: file: <Page. CPP>, baris = 3898 failed Assertion = '! pagefull '. Kesalahan ini mungkin terkait dengan waktu. Jika kesalahan tetap ada setelah menjalankan kembali pernyataan, gunakan DBCC CHECKDB untuk memeriksa integritas struktural database, atau mulai ulang server untuk memastikan bahwa struktur data dalam memori tidak rusak. <tanggal> <waktu> spid<id kesalahan>:3624, tingkat keparahan: 20, status: 1. <tanggal> <waktu> SPID> <0 id> pemeriksaan pernyataan sistem telah gagal. Periksa log kesalahan SQL Server untuk detailnya. Biasanya, kegagalan pernyataan disebabkan oleh bug perangkat lunak atau kerusakan data. Untuk memeriksa kerusakan database, pertimbangkan untuk menjalankan DBCC CHECKDB. Jika Anda setuju untuk mengirim timbunan ke Microsoft selama penyetelan, dump mini akan dikirim ke Microsoft. Pembaruan mungkin tersedia dari Microsoft dalam paket layanan terbaru atau di QFE dari dukungan teknis. <tanggal> <waktu> SPID<id> grup ketersediaan AlwaysOn gerakan data untuk database ' <nama database> ' telah ditangguhkan karena alasan berikut: "sistem" (sumber id 2; String sumber: ' SUSPEND_FROM_REDO '). Untuk melanjutkan gerakan data di database, Anda perlu melanjutkan database secara manual. Untuk informasi tentang cara melanjutkan database ketersediaan, lihat buku daring SQL Server. <tanggal> <waktu> spid<id kesalahan>:3313, keparahan: 21, status: 2. <tanggal> <waktu> SPID> <0 id> selama pembuatan ulang operasi log di database ' <nama database> ', terjadi galat pada log Catatan ID (1786:4978584:74). Biasanya, kegagalan tertentu sebelumnya dicatat sebagai kesalahan dalam Layanan log kejadian Windows. Pulihkan database dari cadangan lengkap, atau Perbaiki database. <tanggal> <> SPID<id> Alter DB Param Option: resume<Date> <time> SPID> <0 id> grup ketersediaan AlwaysOn perpindahan data untuk database ' <nama database> ' telah dilanjutkan. Ini adalah pesan informasi saja. Tidak ada tindakan pengguna yang diperlukan. Date <tanggal > <> SPID<id> transaksi yang tidak memenuhi syarat sedang digulung kembali dalam database <nama database> untuk perubahan status grup ketersediaan AlwaysOn. Perkiraan penyelesaian rollback: 100%. Ini adalah pesan informasi saja. Tidak ada tindakan pengguna yang diperlukan. Date <tanggal > <> SPID<id> koneksi grup ketersediaan AlwaysOn dengan database utama diakhiri untuk database sekunder ' <database nama> ' pada replika ketersediaan dengan replika id: {bbdedecb-f26b-47e9-9e7d-7c22f99edb23}. Ini adalah pesan informasi saja. Tidak ada tindakan pengguna yang diperlukan. Date <tanggal > <> SPID<ID> memulai database ' <nama database> '. <tanggal> <waktu> SPID> <2 id> pemulihan database ' <database Name> ' (13) adalah 0% selesai (sekitar 781 detik tetap). Tahap 1 dari 3. Ini adalah pesan informasi saja. Tidak ada tindakan pengguna yang diperlukan.......
Pemecahan Masalah
Masalah ini pertama kali diperbaiki dalam pembaruan kumulatif SQL Server berikut ini.
Pembaruan kumulatif 6 untuk SQL server 2012 SP2pembaruan kumulatif 16 untuk SQL Server 2012 SP1
Setiap pembaruan kumulatif baru untuk SQL Server berisi semua hotfix dan semua perbaikan keamanan yang disertakan dengan pembaruan kumulatif sebelumnya. Lihat pembaruan kumulatif terbaru untuk SQL Server:
Informasi Selengkapnya
Masalah sebelumnya mungkin terjadi ketika akses Baca diubah untuk replika sekunder. Anda dapat mengatur database ketersediaan Baca akses pada replika sekunder dengan menggunakan dua metode berikut ini:
-
Mengatur akses baca dengan menggunakan perintah Ubah grup ketersediaan:
ALTER AVAILABILITY GROUP [AGName]MODIFY REPLICA ON N'<SRV>' WITH (SECONDARY_ROLE(ALLOW_CONNECTIONS = NO))
-
Mengatur akses baca dengan mengubah pengaturan dalam object Explorer dari SQL Server Management Studio (SSMS):
-
Sambungkan ke server, lalu buka folder ketersediaan AlwaysOn.
-
Buka folder grup ketersediaan.
-
Klik kanan grup ketersediaan, dan pilih properti.
-
Mengubah properti sekunder yang dapat dibaca untuk replika sekunder ke tidak, lalu klik OK.
-
Status
Microsoft telah mengonfirmasi bahwa ini adalah masalah pada produk Microsoft yang tercantum di bagian "Berlaku untuk".