Gejala
Pertimbangkan skenario berikut:
-
Anda menggunakan Microsoft SQL Server 2016, 2014, atau 2012.
-
Anda memiliki database yang merupakan bagian dari grup ketersediaan AlwaysOn.
-
Pada replika utama, Anda menciutkan file database untuk mengurangi ukurannya.
-
Replika utama mengirim semua perubahan yang direkam dalam log transaksi ke replika sekunder.
-
Pada replika sekunder, untaian ulangi menerapkan perubahan dari log transaksi ke database yang merupakan bagian dari grup ketersediaan.
Dalam skenario ini, replika ditangguhkan. Selain itu, Anda mungkin menerima pesan kesalahan yang menyerupai berikut ini:
<stempel waktu> spid41s kesalahan: 3456, keparahan: 21, status: 1. <stempel waktu> spid41s tidak dapat mengulangi catatan log (#), untuk ID transaksi (#), pada halaman (#), database ' <dbname> ' (ID database #). Halaman: LSN = (#), Allocation unit = #, type = #. Log: OpCode = #, Context #, menang Pagelsn: (#). Pulihkan dari cadangan database, atau Perbaiki database. <stempel waktu> spid41s grup ketersediaan AlwaysOn gerakan data untuk database ' <dbname> ' telah ditangguhkan karena alasan berikut: "sistem" (ID sumber 2; String sumber: ' SUSPEND_FROM_REDO '). Untuk melanjutkan gerakan data di database, Anda perlu melanjutkan database secara manual. Untuk informasi tentang cara untuk melanjutkan database ketersediaan, lihat buku daring SQL Server. <stempel waktu> kesalahan spid41s: 3313, tingkat keparahan: 21, status: 2. <stempel waktu> spid41s selama pembuatan kembali operasi log dalam database ' <dbname> ', kesalahan terjadi pada log ID rekaman (#). Biasanya, kegagalan tertentu sebelumnya dicatat sebagai kesalahan dalam Layanan log kejadian Windows. Pulihkan database dari cadangan lengkap, atau Perbaiki database.
Penyebab
Masalah ini terjadi ketika perubahan diterapkan selama proses mengulang jika mesin database mengalami LSNs yang tidak dipesan di Halaman sistem (GAM, PFS).
Pemecahan Masalah
Masalah ini pertama kali diperbaiki dalam pembaruan kumulatif SQL Server berikut ini:
Setiap pembaruan kumulatif baru untuk SQL Server berisi semua hotfix dan semua perbaikan keamanan yang disertakan dengan pembaruan kumulatif sebelumnya. Kami menyarankan Anda mengunduh dan menginstal pembaruan kumulatif terbaru untuk SQL Server:
Pembaruan mencegah terjadinya masalah ini. Jika masalah telah terjadi, ikuti langkah-langkah ini untuk bergabung kembali ke grup ketersediaan AlwaysOn:
-
Hapus replika sekunder AlwaysOn yang sudah ada.
-
Jalankan perintah berikut pada file data yang terpengaruh untuk menghapus ruang yang tidak terisi dari database:
DBCC SHRINKFILE(<file_id>, TRUNCATEONLY)
-
Mencadangkan database dan file log.
-
Pulihkan database dan log pada replika sekunder AlwaysOn.
-
Bergabung dalam grup ketersediaan AlwaysOn.
Status
Microsoft telah mengonfirmasi bahwa ini adalah masalah pada produk Microsoft yang tercantum di bagian "Berlaku untuk".
Referensi
Pelajari tentang terminologi yang digunakan Microsoft untuk menjelaskan pembaruan perangkat lunak.