Bagaimana memecahkan masalah kesalahan konsistensi database yang dilaporkan oleh DBCC CHECKB

Terjemahan Artikel Terjemahan Artikel
ID Artikel: 2015748 - Melihat produk di mana artikel ini berlaku.
Perbesar semua | Perkecil semua

GEJALA

Ketika dijalankan DBCC CHECKDB (atau perintah lain sama seperti CHECKTABLE), pesan seperti berikut ditulis untuk SQL Server ERRORLOG:

2010-03-31 22:07:06.34 spid53 DBCC CHECKDB (mydb) dilaksanakan oleh MYDOMAIN\theuser 15 kesalahan ditemukan dan diperbaiki kesalahan 0. Waktu berlalu: 0 jam 0 menit 0 detik. Internal database snapshot telah memisahkan titik LSN = 00000026:0000089 d: LSN 0001 dan pertama = 00000026:0000089 c: 0001. Ini adalah informasi pesan hanya. Tidak ada pengguna tindakan diperlukan.

Pesan ini menunjukkan berapa banyak database konsistensi kesalahan yang ditemukan dan berapa banyak yang diperbaiki (jika opsi perbaikan digunakan dengan perintah). Pesan ini juga ditulis untuk Log peristiwa Windows aplikasi sebagai pesan informasi tingkat dengan EventID = 8957 (bahkan jika kesalahan yang dilaporkan pesan ini adalah pesan tingkat informasi).

Informasi dalam pesan dimulai dengan "internal database snapshot..." hanya muncul jika DBCC CHECKDB dijalankan secara online, yang adalah jika database tidak dalam modus SINGLE_USER. Hal ini karena untuk online DBCC CHECKDB, snapshot internal database digunakan untuk menyajikan data untuk memeriksa konsisten.

Artikel ini akan membahas bagaimana untuk memecahkan setiap kesalahan tertentu yang dilaporkan oleh DBCC CHECKDB tapi agak pendekatan umum jika kesalahan yang dilaporkan. Setiap referensi untuk CHECKDB dalam artikel ini juga berlaku untuk DBCC CHECKTABLE dan CHECKFILEGROUP kecuali secara khusus dinyatakan.

PENYEBAB

DBCC CHECKDB pemeriksaan fisik dan logis konsistensi database halaman, baris, alokasi halaman, indeks hubungan, systerm tabel referensial integritas dan cek struktur lainnya. Jika salah satu pemeriksaan gagal (tergantung pada pilihan Anda telah memilih), kesalahan akan dilaporkan sebagai bagian dari perintah.

Penyebab masalah ini dapat bervariasi dari sistem berkas korupsi, sistem hardware isu-isu yang mendasari, sopir masalah, rusak halaman dalam memori, atau masalah dengan mesin Server SQL. Membaca bagian resolusi untuk informasi lebih lanjut tentang bagaimana untuk menemukan penyebab kesalahan yang dilaporkan.

PEMECAHAN MASALAH

Pertama, terbaik solusi jika DBCC CHECKDB laporan kesalahan konsistensi adalah untuk memulihkan dari cadangan baik dikenal. Namun, jika Anda tidak dapat memulihkan dari cadangan, maka CHECKDB menyediakan fitur untuk memperbaiki kesalahan. Jika masalah tingkat sistem seperti sistem file atau perangkat keras dapat menyebabkan masalah ini, sebaiknya Anda benar ini terlebih dahulu sebelum memulihkan atau menjalankan perbaikan.

Ketika Anda menjalankan DBCC CHECKDB rekomendasi disediakan untuk menunjukkan apa opsi perbaikan minimal yang diperlukan untuk memperbaiki semua kesalahan. Pesan ini mungkin terlihat seperti berikut:

CHECKDB ditemukan 0 alokasi kesalahan dan 15 konsistensi kesalahan dalam database 'mydb'.
repair_allow_data_loss adalah tingkat minimum perbaikan kesalahan yang ditemukan oleh DBCC CHECKDB (mydb

Rekomendasi perbaikan adalah tingkat minimum perbaikan untuk mencoba memecahkan semua kesalahan dari CHECKDB. Ini tidak berarti bahwa opsi perbaikan ini akan benar-benar memperbaiki semua kesalahan. Selain itu, tidak semua kesalahan yang dilaporkan mungkin memerlukan tingkat perbaikan untuk mengatasi galat. Ini berarti bahwa tidak semua kesalahan yang dilaporkan oleh CHECKDB ketika repair_allow_data_loss dianjurkan akan mengakibatkan kehilangan data. Perbaikan harus dijalankan untuk menentukan jika resolusi untuk kesalahan akan mengakibatkan kehilangan data. Salah satu teknik untuk membantu mempersempit apa yang akan menjadi tingkat perbaikan untuk setiap tabel adalah dengan menggunakan DBCC CHECKTABLE untuk setiap tabel yang melaporkan kesalahan. Ini akan memperlihatkan apa tingkat minimum perbaikan untuk meja tertentu.

Untuk menemukan penyebab mengapa database konsistensi kesalahan terjadi, mempertimbangkan metode ini:

  • Periksa Log peristiwa sistem Windows untuk tingkat sistem, driver, atau disk terkait kesalahan
  • Memeriksa integritas sistem file dengan chkdsk perintah.
  • Menjalankan setiap diagnostik yang disediakan oleh produsen perangkat keras Anda untuk komputer dan/atau sistem disk.
  • Bekerja dengan vendor perangkat keras atau perangkat produsen untuk memastikan:
    • Perangkat keras dan konfigurasi menegaskan kebutuhan I/O SQL Server
    • Device driver dan komponen perangkat lunak pendukung lainnya dari semua perangkat dalam jalur I/O Diperbarui
  • Mempertimbangkan untuk menggunakan utilitas seperti SQLIOSim pada drive yang sama sebagai database yang telah melaporkan kesalahan konsistensi. SQLIOSim adalah alat independen dari mesin Server SQL untuk menguji integritas I/O untuk sistem disk. Perhatikan bahwa SQLIOSim kapal dengan SQL Server 2008 dan apakah tidak reuiqre download yang terpisah.
  • Periksa kesalahan lain yang dilaporkan oleh SQL Server seperti pelanggaran akses. Masalah jenis ini dapat mengakibatkan korupsi database jadi pastikan untuk mengatasi kesalahan ini pertama.
  • Memastikan database Anda menggunakan opsi PAGE_VERIFY CHECKSUM. Jika kesalahan checksum yang dilaporkan, ini adalah indikator yang konsistensi kesalahan terjadi setelah SQL Server telah menulis halaman ke disk sehingga sistem disk Anda harus benar-benar diperiksa. Lihat cara memecahkan masalah Msg 824 di SQL Server untuk informasi selengkapnya tentang kesalahan checksum.
  • Mencari kesalahan Msg 832 di ERRORLOG. Ini adalah indikator yang halaman Mei rusak sementara mereka berada dalam cache sebelum ditulis ke disk. Lihat cara memecahkan masalah Msg 832 di SQL Server untuk informasi lebih lanjut.
  • Mencoba untuk mengembalikan sebuah backup database Anda tahu itu adalah "bersih" (tidak ada kesalahan dari CHECKDB) dan transaksi log backup Anda tahu rentang waktu Kapan kesalahan ditemukan. Jika Anda dapat "replay" masalah ini dengan mengembalikan cadangan "bersih" database dan transaksi log maka Hubungi dukungan teknis Microsoft untuk bantuan.
  • Kesalahan kemurnian data dapat menjadi masalah dengan aplikasi menyisipkan atau mengupdate data tidak valid ke meja SQL Server. Untuk selengkapnya tentang memecahkan masalah Data kemurnian kesalahan lihat artikel berikut: pemecahan masalah DBCC kesalahan 2570 di SQL server 2005

INFORMASI LEBIH LANJUT

Untuk informasi rinci tentang sintaks DBCC CHECKDB dan informasi/pilihan tentang bagaimana untuk mengeksekusi perintah, membaca topik SQL Server buku Online DBCC CHECKDB perintah.

Jika kesalahan ditemukan oleh CHECKDB, pesan tambahan seperti berikut dilaporkan di ERRORLOG untuk tujuan pelaporan kesalahan:

2010-03-31 22:07:06.34 spid53 menggunakan 'dbghelp.dll' versi '4.0.5'
2010-03-31 22:07:06.35 spid53 ** Dump thread - spid = 0, EC = 0x00000000855F5EB0
2010-03-31 22:07:06.35 spid53 *** Stack Dump dikirim ke C:\Program program SQL Server\MSSQL10.SQL2008\MSSQL\LOG\SQLDump0012.txt
2010-03-31 22:07:06.35 spid53      * *******************************************************************************
2010-03-31 22:07:06.35 spid53 *
2010-03-31 22:07:06.35 spid53 * mulai STACK DUMP:
2010-03-31 22:07:06.35 spid53 * 03/31/10 22:07:06 spid 53
2010-03-31 22:07:06.35 spid53 *
2010-03-31 22:07:06.35 spid53 * DBCC korupsi database
2010-03-31 22:07:06.35 spid53 *
2010-03-31 22:07:06.35 spid53 * byte masukan Buffer 84 -
2010-03-31 22:07:06.35 spid53 * dbcc checkdb(mydb)
2010-03-31 22:07:06.35 spid53 *
2010-03-31 22:07:06.35 spid53      * *******************************************************************************
2010-03-31 22:07:06.35 spid53      * -------------------------------------------------------------------------------
2010-03-31 22:07:06.35 spid53 * pendek Stack Dump
2010-03-31 22:07:06.38 spid53 tumpukan tanda tangan untuk dump adalah 0x00000000000001E8
2010-03-31 22:07:07.42 spid53 eksternal dump proses kembali kode 0x20002001.
Kesalahan informasi telah diserahkan ke Watson kesalahan pelaporan.

File yang digunakan untuk pelaporan kesalahan termasuk SQLDump < nnn > .txt file. File ini dapat berguna untuk tujuan historis karena berisi daftar kesalahan yang ditemukan dari CHECKDB dalam XML format.

Untuk mengetahui kapan terakhir kali DBCC CHECKDB dijalankan tanpa kesalahan terdeteksi untuk database (terakhir dikenal bersih CHECKDB), periksa ERRORLOG Server SQL untuk pesan seperti berikut untuk database Anda atau sistem database (pesan itu tertulis sebagai pesan informasi tingkat di Log peristiwa Windows aplikasi dengan EventID = 17573):

2010-04-01 10:13:59.80 spid7s CHECKDB untuk database 'master' selesai tanpa kesalahan pada 2010-03-31 22:11:11.417 (waktu setempat). Ini adalah informasi pesan saja; tidak perlu melakukan tindakan pengguna

Catatan Ini merupakan artikel "FAST PUBLISH" dibuat langsung dari organisasi pendukung Microsoft. Informasi yang termuat di dalamnya disediakan apa adanya sebagai respons atas masalah yang muncul. Sebagai akibat dari pembuatan informasi yang cepat ini, mungkin terdapat kesalahan ketik dan dapat direvisi setiap saat tanpa pemberitahuan. Lihat Syarat Penggunaan untuk pertimbangan lainnya.

Properti

ID Artikel: 2015748 - Kajian Terakhir: 07 Mei 2014 - Revisi: 1.0
Berlaku bagi:
  • Microsoft SQL Server 2005 Developer Edition
  • Microsoft SQL Server 2005 Enterprise Edition
  • Microsoft SQL Server 2005 Express Edition
  • Microsoft SQL Server 2005 Standard Edition
  • Microsoft SQL Server 2005 Workgroup Edition
  • Microsoft SQL Server 2008 Developer
  • Microsoft SQL Server 2008 Enterprise
  • Microsoft SQL Server 2008 Express
  • Microsoft SQL Server 2008 Express with Advanced Services
  • Microsoft SQL Server 2008 R2 Developer
  • Microsoft SQL Server 2008 R2 Enterprise
  • Microsoft SQL Server 2008 R2 Standard
  • Microsoft SQL Server 2008 R2 Web
  • Microsoft SQL Server 2008 R2 Workgroup
  • Microsoft SQL Server 2012 Developer
  • Microsoft SQL Server 2012 Enterprise
  • Microsoft SQL Server 2012 Express
  • Microsoft SQL Server 2012 Standard
  • Microsoft SQL Server 2012 Web
  • Microsoft SQL Server 2014 Developer
  • Microsoft SQL Server 2014 Enterprise
  • Microsoft SQL Server 2014 Express
  • Microsoft SQL Server 2014 Standard
  • Microsoft SQL Server 2014 Web
Kata kunci: 
kbmt KB2015748 KbMtid
Penerjemahan Mesin
PENTING: Artikel ini diterjemahkan oleh perangkat lunak penerjemahan mesin Microsoft, dan mungkin telah diedit oleh Masyarakat Microsoft melalui teknologi CTF dan bukan oleh seorang penerjemah profesional. Microsoft menawarkan baik artikel yang diterjemahkan oleh manusia maupun artikel hasil editan terjemahan oleh mesin/komunitas, sehingga Anda dapat mengakses semua artikel di Sentra Pengetahuan yang kami miliki dalam berbagai bahasa. Namun artikel hasil editan mesin atau bahkan komunitas tidak selalu sempurna. Artikel ini dapat mengandung kesalahan dalam hal kosa kata, sintaksis atau tatabahasa, sangat mirip dengan penutur asing yang membuat kekeliruan ketika berbicara dalam bahasa Anda. Microsoft tidak bertanggung jawab atas ketidakakuratan, kesalahan atau kerugian apa pun akibat dari kekeliruan dalam penerjemahan isi atau penggunaannya oleh pelanggan kami. Microsoft juga akan senantiasa memperbarui perangkat lunak penerjemahan mesin dan alat untuk menyempurnakan Editan Hasil Penerjemahan Mesin.
Klik disini untuk melihat versi Inggris dari artikel ini: 2015748

Berikan Masukan

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com