Momentálne ste offline a čaká sa, kým sa znova pripojíte na internet

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

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
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".
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:
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


Upozornenie: Tento článok bol preložený automaticky.

Vlastnosti

ID článku: 2787112 – Posledná kontrola: 02/04/2013 20:29:00 – Revízia: 3.0

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

  • kbsurveynew kbtshoot kbexpertiseadvanced kbmt KB2787112 KbMtsk
Pripomienky