"Msg 8992" pesan kesalahan dan tidak konsisten metadata dalam SQL Server sistem Katalog

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

Pada Halaman ini

Gejala

Anda mengalami salah satu masalah berikut di Microsoft SQL Server.

Edisi 1

Asumsikan bahwa Anda membuat suatu inkonsistensi di metadata sistem ketika Anda secara manual memperbarui sistem Daftar Tabel dalam database SQL Server. Kemudian, Anda mencoba untuk menjalankan perintah DBCC CHECKDB untuk mengidentifikasi inkonsistensi dalam sistem metadata Daftar Tabel. Dalam situasi ini, pesan galat berikut adalah kembali:
MSG 8992, tingkat 16, negara bagian 1, baris 1
Lihat Katalog Msg 3853, negara bagian 1: Atribut (referenced_object_id =ID objekmengatakan, key_index_id =Indeks ID>) baris (object_id =ID objek>) di sys.foreign_keys tidak memiliki baris pencocokan (object_id =ID objekmengatakan, index_id =Indeks ID>) di sys.indexes.

Edisi 2

Ketika Anda memperbarui Daftar Tabel sistem di SQL server, Anda menerima pesan peringatan yang menyerupai berikut ini:
Peringatan: Sistem Daftar Tabel IDID Daftar Tabelmengatakan telah diperbarui secara langsung dalam database IDDatabase IDmengatakan dan koherensi cache mungkin tidak telah dipertahankan. SQL Server harus direstart.
Dalam situasi ini, jika Anda menjalankan perintah DBCC CHECKDB atau DBCC CHECKCATALOG , pesan peringatan bersama dengan tanggal dan waktu yang sistem Katalog terakhir berubah akan dikembalikan. Selain itu, pesan peringatan berikut juga dicatat dalam log SQL Server:
Peringatan: Katalog sistem telah diupdate secara langsung dalam database IDDatabase IDmengatakan, baru-baru ini diCatat waktu>.
Catatan Informasi ini disimpan dalam database header dan berlangsung selama seumur hidup dari database.

Penyebab

Masalah ini terjadi karena SQL Server tidak mendukung manual update ke sistem tabel atak. Sistem Daftar Tabel harus diperbarui hanya oleh mesin database SQL Server.

Catatan Anda dapat melihat data dalam Daftar Tabel sistem dengan menggunakan sistem Katalog pandangan.

Pemecahan masalah

Untuk mengatasi masalah ini, gunakan salah satu metode berikut.

Metode 1

Jika Anda memiliki cadangan bersih dari database, gulung balik database dari backup.

Catatan Metode ini bekerja hanya jika cadangan tidak memiliki inkonsistensi di metadata.

Metode 2

Jika Anda tidak dapat gulung balik database dari backup, ekspor data dan benda-benda ke database baru. Kemudian, transfer isi dari database diperbarui secara manual ke dalam database baru. CatatanAnda tidak dapat memperbaiki inkonsistensi dalam sistem Katalog dengan menggunakan opsi perbaikan dalam perintah DBCC CHECKDB . Oleh karena itu, karena perintah tidak dapat memperbaiki metadata korupsi, perintah tidak memberikan tingkat perbaikan fitur apapun.

Informasi lebih lanjut

Untuk informasi lebih lanjut tentang aturan sistem pusat penasihat yang dapat mendeteksi modifikasi yang dibuat untuk sistem Katalog, klik nomor artikel berikut ini untuk melihat artikel di dalam Pangkalan Pengetahuan Microsoft:
2688307 ID peristiwa 17659 dan event ID 3859 akan dicatat ketika Anda memperbarui sistem Daftar Tabel dalam database SQL Server
Daftar Tabel berikut mencantumkan kesalahan yang menunjukkan inkonsistensi dalam sistem Katalog. Biasanya, kesalahan berikut dihasilkan bersama-sama dengan kode galat "8992".
Perkecil tabel iniPerbesar tabel ini
Kesalahanperpesanan teks
3851Baris tidak valid (% ls) ditemukan di sistem tabel atak sys.%ls%ls
3852Baris (% ls) di sys.%ls%ls tidak memiliki baris pencocokan (% ls) di sys.%ls%ls.
3853Atribut (% ls) baris (% ls) di sys.%ls%ls tidak memiliki baris pencocokan (% ls) di sys.%ls%ls.
3854Atribut (% ls) baris (% ls) di sys.%ls%ls memiliki baris pencocokan (% ls) di sys.%ls%ls yang tidak valid.
3855Atribut (% ls) ada tanpa baris (% ls) di sys.%ls%ls.
3856Atribut (% ls) ada tetapi harus tidak untuk baris (% ls) di sys.%ls%ls.
3857Atribut (% ls) diperlukan tetapi hilang untuk baris (% ls) di sys.%ls%ls.
3858Atribut (% ls) baris (% ls) di sys.%ls%ls memiliki nilai yang tidak valid.
3859Peringatan: Katalog sistem diperbarui secara langsung dalam database ID % d, baru-baru ini di % S_DATE.
Berikut adalah contoh pesan galat yang mungkin Anda terima ketika Anda mengalami masalah ini:
Server: Msg 2513, tingkat 16, negara bagian 1, baris 1
tabel atak kesalahan: ID objekID objekmengatakan (objek 'ID objekmengatakan ') tidak cocok antara 'SYSCOLUMNS' dan 'SYSOBJECTS'.

MSG 3853, tingkat 16, negara bagian 1, baris 2
Atribut (object_id =ID objek>) baris (object_id =ID objekmengatakan, index_id =Indeks ID>) di sys.indexes tidak memiliki baris pencocokan (object_id =ID objek>) di sys.objects.

MSG 3855, tingkat 16, negara bagian 1, baris 2
Atribut (data_space_id = 1) ada tanpa berturut-turut (object_id =ID objekmengatakan, index_id =Indeks ID>) di sys.indexes.

MSG 3852, tingkat 16, negara bagian 1, baris 1
Baris (object_id =ID objekmengatakan, index_id = 1) di sys.indexes (type = U) tidak memiliki baris pencocokan (kelas = 0, objid =ID objekmengatakan, indexid =Indeks IDmengatakan, rowsetnum = 1) di sys.sysrowsetrefs.

MSG 3852, tingkat 16, negara bagian 1, baris 1
Baris (object_id =ID objekmengatakan, index_id = 1) di sys.indexes (type = U) tidak memiliki baris pencocokan (kelas = 0, objid =ID objekmengatakan, indexid =Indeks IDmengatakan, rowsetnum = 1) di sys.sysrowsetrefs.

MSG 3853, tingkat 16, negara bagian 1, baris 1
Atribut (default_object_id =ID objekmengatakan) baris (object_id =ID objekmengatakan, column_id =Kolom ID>) di sys.columns tidak memiliki baris pencocokan (object_id =ID objek>) di sys.objects.

MSG 8992, tingkat 16, negara bagian 1, baris 1
Lihat Katalog Msg 3853, negara bagian 1: Atribut (object_id =ID objek>) baris (object_id =ID objekmengatakan, column_id =Kolom ID>) di sys.columns tidak memiliki baris pencocokan (object_id =ID objek>) di sys.objects.

Eksekusi DBCC selesai. Jika DBCC dicetak pesan kesalahan, hubungi administrator sistem Anda.
Selain itu, Anda mungkin menerima "Msg 211" pesan galat yang menyerupai berikut jika Anda memeriksa konsistensi database dengan menjalankan perintah CHECKDB .
MSG 211, Level 23, negara 230, garis jatuh berseri 1
Mungkin skema korupsi. Menjalankan DBCC CHECKCATALOG.

MSG 0, tingkat 20, negara 0, baris 0
Kesalahan yang parah terjadi pada perintah saat ini. Hasil, jika ada, harus dibuang
Pesan kesalahan ini juga menunjukkan bahwa sistem Katalog berisi metadata tidak konsisten.

CatatanJika Anda memeriksa konsistensi dari database yang ditingkatkan dari SQL Server 2000 dengan menjalankan perintah CHECKDB , perintah dapat kembali kesalahan "8992" inkonsistensi kode dan laporan dalam sistem Katalog. Perilaku ini terjadi karena perintah DBCC CHECKDB di SQL Server 2000 tidak termasuk fungsi perintah DBCC CHECKCATALOG . Oleh karena itu, Anda tidak akan mendeteksi masalah ini di SQL Server 2000 kecuali jika Anda menjalankan perintah DBCC CHECKCATALOG .

Untuk informasi lebih lanjut tentang cara menggunakan perintah DBCC CHECKDB , kunjungi website Microsoft berikut:
Informasi umum tentang perintah DBCC CHECKDB

Referensi

Untuk informasi lebih lanjut tentang isu-isu yang dapat terjadi ketika Daftar Tabel sistem SQL Server secara manual diperbarui, klik nomor artikel untuk melihat artikel di dalam Pangkalan Pengetahuan Microsoft:

2688307 ID peristiwa 17659 dan event ID 3859 akan dicatat ketika Anda memperbarui sistem Daftar Tabel dalam database SQL Server


Properti

ID Artikel: 2787112 - Kajian Terakhir: 04 Februari 2013 - Revisi: 3.0
Berlaku bagi:
  • Microsoft SQL Server 2000 Enterprise Edition
  • Microsoft SQL Server 2000 Developer Edition
  • Microsoft SQL Server 2000 Standard Edition
  • Microsoft SQL Server 2000 Workgroup Edition
  • Microsoft SQL Server 2005 Enterprise Edition
  • Microsoft SQL Server 2005 Developer Edition
  • Microsoft SQL Server 2005 Standard Edition
  • Microsoft SQL Server 2005 Workgroup Edition
  • Microsoft SQL Server 2008 Enterprise
  • Microsoft SQL Server 2008 Developer
  • Microsoft SQL Server 2008 Standard
  • Microsoft SQL Server 2008 Workgroup
  • Microsoft SQL Server 2008 R2 Datacenter
  • Microsoft SQL Server 2008 R2 Enterprise
  • Microsoft SQL Server 2008 R2 Developer
  • Microsoft SQL Server 2008 R2 Standard
  • Microsoft SQL Server 2008 R2 Workgroup
  • Microsoft SQL Server 2012 Enterprise
  • Microsoft SQL Server 2012 Developer
  • Microsoft SQL Server 2012 Standard
Kata kunci: 
kbsurveynew kbtshoot kbexpertiseadvanced kbmt KB2787112 KbMtid
Penerjemahan Mesin
PENTING: Artikel ini diterjemahkan menggunakan perangkat lunak mesin penerjemah Microsoft dan bukan oleh seorang penerjemah. Microsoft menawarkan artikel yang diterjemahkan oleh seorang penerjemah maupun artikel yang diterjemahkan menggunakan mesin sehingga Anda akan memiliki akses ke seluruh artikel baru yang diterbitkan di Pangkalan Pengetahuan (Knowledge Base) dalam bahasa yang Anda gunakan. Namun, artikel yang diterjemahkan menggunakan mesin tidak selalu sempurna. Artikel tersebut mungkin memiliki kesalahan kosa kata, sintaksis, atau tata bahasa, hampir sama seperti orang asing yang berbicara dalam bahasa Anda. Microsoft tidak bertanggung jawab terhadap akurasi, kesalahan atau kerusakan yang disebabkan karena kesalahan penerjemahan konten atau penggunaannya oleh para pelanggan. Microsoft juga sering memperbarui perangkat lunak mesin penerjemah.
Klik disini untuk melihat versi Inggris dari artikel ini: 2787112

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