"Msg 8992" chybové hlásenie a nekonzistentné metaúdaje v katalógoch systému SQL Server

Preklady článku Preklady článku
ID článku: 2787112 - Zobraziť produkty, ktorých sa tento článok týka.
Rozbaliť všetko | Zbaliť všetko

Na tejto stránke

Príznaky

Sa vyskytnúť niektorý z nasledujúcich problémov v Microsoft SQL Server.

Vydanie 1

Predpokladajú vytvoriť nedôslednosť v systémové metadáta manuálne aktualizovať systémové tabuľky v databáze servera SQL Server. Potom pokúsite spustiť príkaz DBCC CHECKDB s cieľom zistiť nezrovnalosti v tabuľkách systému metaúdaje. V tejto situácii, sa vracia k nasledujúcej chybe:
MSG 8992, úroveň 16, štát 1, linka 1
Pozrite katalóg Msg 3853, štát: Atribút (referenced_object_id =Identifikácia objektu>, key_index_id =Identifikácia indexu>) riadka (object_id =Identifikácia objektu>) v sys.foreign_keys nemá zodpovedajúci riadok (object_id =Identifikácia objektu>, index_id =Identifikácia indexu>) v sys.indexes.

Vydanie 2

Keď aktualizujete systémové tabuľky v SQL serveru, dostanete výstražné hlásenie, nasledovnému:
Upozornenie: Systém ID tabuľkyIdentifikácia tabuľky> aktualizovaná priamo v databáze IDIdentifikácia databázy> a cache súdržnosť môže nie sú zachované. Reštartujte SQL Server.
V tejto situácii, ak spustíte príkaz DBCC CHECKDB alebo DBCC CHECKCATALOG upozornenie spolu s dátumu a času, ktoré boli naposledy zmenené systémové katalógy sa vrátia. Okrem toho nasledovné upozorňujúce hlásenie je tiež SQL Server denníka zapíšu:
Upozornenie: Systém Katalóg bol aktualizovaný priamo v databáze IDIdentifikácia databázy>, naposledy vČas denníka>.
Poznámka Táto informácia je uložená v databáze hlavičky a pretrváva po dobu trvania databázy.

Príčina

Tento problém sa vyskytuje, pretože SQL Server nepodporuje manuálna aktualizácia systémových tabuliek. Systémové tabuľky treba aktualizovať iba o databázový stroj SQL Server.

Poznámka Môžete zobraziť údaje v tabuľkách systému pomocou zobrazení katalógu systému.

Riešenie

Ak chcete vyriešiť tento problém, použite jednu z nasledujúcich metód.

Metóda 1

Ak máte čistý zálohovanie databázy, obnovenie databázy zo zálohy.

Poznámka Táto metóda funguje iba vtedy, ak záložný nemá rozpory v metaúdajoch.

Metóda 2

Ak nemôžete obnoviť databázu zo zálohy, export údajov a objektov do novej databázy. Potom preneste obsah manuálne aktualizovať databázy do novej databázy. PoznámkaNezrovnalosti v katalógoch systému nemôže opraviť pomocou možnosti opravy DBCC CHECKDB príkazy. Preto, pretože príkaz nemožno opraviť metadáta korupcie, príkaz neposkytne akejkoľvek úrovni Odporúčaná oprava.

Ďalšie informácie

Ďalšie informácie o System Center poradca pravidlo, ktoré detekuje zmeny, ktoré vykonajú systémové katalógy, po kliknutí na nasledovné číslo článku publikovaného v databáze Microsoft Knowledge Base:
2688307 Udalosť ID 17659 a udalosť ID 3859 odhlásený pri aktualizácii systémových tabuliek v databáze servera SQL Server
Nasledujúca tabuľka obsahuje zoznam chýb, ktoré ukazujú nezrovnalosti v systéme katalógov. Zvyčajne sú generované nasledujúce chyby s kódom chyby "8992".
Zbaliť túto tabuľkuRozbaliť túto tabuľku
ChybaText správy
3851Neplatný riadok (% ls) bol nájdený v systéme tabuľka sys.%ls%ls
3852Riadok (% ls) v sys.%ls%ls nemá zodpovedajúci riadok (% ls) v sys.%ls%ls.
3853Atribút (% ls) riadkov (% ls) v sys.%ls%ls nemá zodpovedajúci riadok (% ls) v sys.%ls%ls.
3854Atribút (% ls) riadkov (% ls) v sys.%ls%ls má zodpovedajúci riadok (% ls) sys.%ls%ls je neplatný.
3855Atribút (% ls) existuje bez riadkov (% ls) v sys.%ls%ls.
3856Atribút (% ls) existuje, ale mali za sebou (% ls) v sys.%ls%ls.
3857Atribút (% ls) je potrebné však chýba za sebou (% ls) v sys.%ls%ls.
3858Atribút (% ls) riadkov (% ls) v sys.%ls%ls má neplatnú hodnotu.
3859Upozornenie: Systém Katalóg bol aktualizovaný priamo v databáze Identifikáciou % d, naposledy v % S_DATE.
Nasledujú príklady z chybových hlásení, ktoré sa môžu zobraziť, keď narazíte na tieto otázky:
Server: Msg 2513, úroveň 16, štát 1, linka 1
Tabuľka chyba: Identifikácia objektuIdentifikácia objektu> (objektu "Identifikácia objektu> ") nezodpovedá medzi"SYSCOLUMNS"a"SYSOBJECTS".

MSG 3853, úroveň 16, štát 1, linka 2
Atribút (object_id =Identifikácia objektu>) riadka (object_id =Identifikácia objektu>, index_id =Identifikácia indexu>) v sys.indexes nemá zodpovedajúci riadok (object_id =Identifikácia objektu>) v sys.objects.

MSG 3855, úroveň 16, štát 1, linka 2
Atribút (data_space_id = 1) existuje bez riadka (object_id =Identifikácia objektu>, index_id =Identifikácia indexu>) v sys.indexes.

MSG 3852, úroveň 16, štát 1, linka 1
Riadok (object_id =Identifikácia objektu>, index_id = 1) vo sys.indexes (typ = U) nemá zodpovedajúci riadok (trieda = 0, objid =Identifikácia objektu>, indexid =Identifikácia indexu>, rowsetnum = 1) vo sys.sysrowsetrefs.

MSG 3852, úroveň 16, štát 1, linka 1
Riadok (object_id =Identifikácia objektu>, index_id = 1) vo sys.indexes (typ = U) nemá zodpovedajúci riadok (trieda = 0, objid =Identifikácia objektu>, indexid =Identifikácia indexu>, rowsetnum = 1) vo sys.sysrowsetrefs.

MSG 3853, úroveň 16, štát 1, linka 1
Atribút (default_object_id =Identifikácia objektu>) riadka (object_id =Identifikácia objektu>, column_id =ID stĺpca>) v sys.columns nemá zodpovedajúci riadok (object_id =Identifikácia objektu>) v sys.objects.

MSG 8992, úroveň 16, štát 1, linka 1
Pozrite katalóg Msg 3853, štát: Atribút (object_id =Identifikácia objektu>) riadka (object_id =Identifikácia objektu>, column_id =ID stĺpca>) v sys.columns nemá zodpovedajúci riadok (object_id =Identifikácia objektu>) v sys.objects.

DBCC dotaz bol dokončený. Ak DBCC potlačené chybové hlásenie, kontaktujte správcu systému.
Navyše dostanete "Msg 211" chybové hlásenie podobné nasledujúce Ak ste kontrolu konzistencie databázy spustením príkazu CHECKDB .
MSG 211, úroveň 23, štát 230, riadok 1
Možné schému korupcie. Spúšťať DBCC CHECKCATALOG.

MSG 0, úroveň 20, štát 0, riadok 0
Na aktuálnom príkaze sa vyskytla závažná chyba. Výsledky, ak treba zlikvidovať
Aj toto chybové hlásenie indikuje, že systém katalógy obsahujú nekonzistentné metaúdajov.

PoznámkaAk ste kontrolu konzistencie databázy, ktorá bola inovovaná zo SQL Server 2000 spustením príkazu CHECKDB , príkaz môže vrátiť "8992" chyba kód a správa nezrovnalosti v systéme katalógoch. Toto správanie sa vyskytuje, pretože príkaz DBCC CHECKDB v SQL Server 2000 neobsahuje funkčnosť príkaz DBCC CHECKCATALOG . Preto vám by rozpoznať tieto problémy v SQL Server 2000 pokiaľ ste spustili príkaz DBCC CHECKCATALOG .

Ďalšie informácie o používaní príkazu DBCC CHECKDB , nájdete na nasledujúcej webovej lokalite spoločnosti Microsoft:
Všeobecné informácie o príkazu DBCC CHECKDB

Odkazy

Ďalšie informácie o problémoch, ktoré môžu nastať pri tabuľky systému SQL Server manuálne, kliknite na číslo článku publikovaného v databáze Microsoft Knowledge Base:

2688307 Udalosť ID 17659 a udalosť ID 3859 odhlásený pri aktualizácii systémových tabuliek v databáze servera SQL Server


Vlastnosti

ID článku: 2787112 - Posledná kontrola: 4. februára 2013 - Revízia: 3.0
Informácie v tomto článku sa týkajú nasledujúcich produktov:
  • 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 2005 Server Enterprise
  • Microsoft SQL Server 2005 Express Edition
  • Microsoft SQL Server 2005 Standard Edition
  • Microsoft SQL 2005 Server Workgroup
  • 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
Kľúčové slová: 
kbsurveynew kbtshoot kbexpertiseadvanced kbmt KB2787112 KbMtsk
Strojovo preložené
DÔLEŽITÉ: Tento článok bol preložený pomocou softvéru na strojový preklad od spoločnosti Microsoft, nie prekladateľom. Spoločnosť Microsoft ponúka články preložené prekladateľmi aj strojovo preložené články, vďaka čomu máte možnosť prístupu ku všetkým článkom databázy Knowledge Base vo svojom jazyku. Strojovo preložený článok však nie je vždy perfektný. Môže obsahovať chyby týkajúce sa slovnej zásoby, syntaxe alebo gramatiky, podobne ako cudzinec môže robiť chyby, keď rozpráva vašim jazykom. Spoločnosť Microsoft nenesie zodpovednosť za akékoľvek nepresnosti, chyby alebo škody spôsobené akýmkoľvek nepresným prekladom obsahu alebo jeho použitím zo strany zákazníkov. Spoločnosť Microsoft softvér na strojový preklad pravidelne aktualizuje.
Pokiaľ chcete vidieť anglickú verziu článku, kliknite sem: 2787112

Odošlite odozvu

 

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