Pertanyaan ini diminta oleh posting sebelumnya dan saya memiliki database yang diajukan untuk penyelidikan di masa depan yang dipulihkan berikut:
BACKUP 'BrokenDatabase' detected an error on page (1:123456) in file ’BrokenDatabase.mdf'.
Error: 3043, Severity: 16, State: 1.
Dalam pertanyaan terkait dan cadangan yang saya siapkan untuk investigasi PAGE DBCC, DBCC CHECKDB lulus tanpa kesalahan tetapi korupsi jelas ada.
Jenis korupsi apa yang dapat terjadi di mana CHECKDB akan lulus tetapi CADANGAN DENGAN CHECKSUM akan gagal?
sql-server-2008
sql-server-2005
dbcc
corruption
Mark Storey-Smith
sumber
sumber
Jawaban:
Berikut ini adalah kompilasi hasil yang saya baca. Anda akan menemukan lebih banyak informasi di blog dan dokumen yang ditautkan.
Pertama, itu bisa terjadi yang
DBCC CHECKDB
tidak akan mendeteksi inkonsistensi jika Anda mematikan verifikasi checksum atau torn_page. Kutipan dari Paul Randal dalam posting ini :Situasi di atas dapat mengenai Anda, jika Anda memutakhirkan database dari SQL Server 2000 atau sebelum ke 2005 atau lebih baru. Anda kemudian perlu mengaktifkan checksum halaman secara manual dengan ALTER DATABASE untuk mengaktifkannya. Tetapi kemudian paragraf ke-2 dari kutipan di atas menendang dan mungkin mengganggu Anda.
BACKUP WITH CHECKSUM
akan mendeteksi ketidakkonsistenan checksum, tetapi hanya jika halaman tersebut sudah memiliki checksum yang ditulis untuknya, ketika sedang didukung BiasanyaDBCC CHECKDB
juga mendeteksi kesalahan ini, jadi itu bukan ide yang baik untuk menggunakan CADANGAN DENGAN CHECKSUM untuk menggantikan DBCC CHECKDB .Sekarang ada kemungkinan kedua untuk
DBCC CHECKDB
tidak menunjukkan ketidakkonsistenan, bahkan jika ada beberapa. Untuk ini saya hanya mengutip lagi Paul Randal dalam Kesalahpahaman tentang korupsi: dapatkah mereka menghilang? :Saya tidak memiliki jawaban akhir untuk pertanyaan Anda, tetapi karena
DBCC CHECKDB
hanya memeriksa halaman yang dialokasikan itu tidak akan menunjukkan ketidakkonsistenan dalam halaman yang tidak dialokasikan. Satu-satunya situasi yang dapat saya bayangkan sekarang adalah bahwa CADANGAN juga membuat cadangan halaman yang tidak dialokasikan yang menunjukkan potensi kesalahan checksum yang dilewatiDBCC CHECKDB
.sumber