MSSQLSERVER_8992
Gilt für: SQL Server
Details
Element | Wert |
---|---|
Produktname | SQL Server |
Ereignis-ID | 8992 |
Ereignisquelle | MSSQLSERVER |
Komponente | SQLEngine |
Symbolischer Name | DBCC3_CHECK_CATALOG |
Meldungstext | Meldung ERROR zum Prüfen des Katalogs, Ebene LEVEL, Status STATE: MESSAGE. |
Hinweis
Die Fehlermeldung 8992 verweist auf eine spezifische andere Fehlermeldung (zwischen 3851 und 3858) zur tatsächlichen Inkonsistenz.
Erklärung
DBCC CHECKCATALOG oder DBCC CHECKDB hat in den Systemmetadatentabellen eine Inkonsistenz für das angegebene Objekt festgestellt. Es handelt sich um eine Inkonsistenz zwischen der aufgezeichneten Objekt-ID und dem in der Fehlermeldung angegebenen Objekt.
Dieser Fehler kann auftreten, wenn eine oder mehrere Systemtabellen manuell auf eine Weise aktualisiert wurden, die in den Systemmetadaten eine Inkonsistenz verursacht. Zum Beispiel hat ein Benutzer möglicherweise manuell ein Objekt aus der Tabelle sysobjects gelöscht, ohne die zugeordneten Zeilen in anderen Tabellen, z.B. sysindexes und syscolumns, zu entfernen.
Dieser Fehler kann beim Ausführen von DBCC CHECKDB für eine Datenbank auftreten, die von SQL Server 2000 auf SQL Server 2005 oder höher aktualisiert wurde. In SQL Server 2000 enthält DBCC CHECKDB die DBCC CHECKCATALOG-Funktion nicht. Deshalb wird der Fehler nicht vor dem Upgrade abgefangen, es sei denn, DBCC CHECKCATALOG wurde ausdrücklich für die Datenbank in SQL Server 2000 ausgeführt.
In Verbindung mit Fehler 8992 werden möglicherweise folgende Fehler angezeigt:
Meldungs-ID | Fehlertext |
---|---|
3851 | Eine ungültige Zeile (%ls) wurde in der sys.%ls%ls-Systemtabelle gefunden. |
3852 | Für die Zeile (%ls) in sys.%ls%ls ist keine entsprechende Zeile (%ls) in sys.%ls%ls vorhanden. |
3853 | Für das Attribut (%ls) der Zeile (%ls) in sys.%ls%ls ist keine entsprechende Zeile (%ls) in sys.%ls%ls vorhanden. |
3854 | Für das Attribut (%ls) der Zeile (%ls) in sys.%ls%ls ist eine entsprechende Zeile (%ls) in sys.%ls%ls vorhanden, sie ist jedoch ungültig. |
3855 | Das Attribut (%ls) ist ohne eine Zeile (%ls) in sys.%ls%ls vorhanden. |
3856 | Das Attribut (%ls) ist fälschlicherweise für die Zeile (%ls) in sys.%ls%ls vorhanden. |
3857 | Das Attribut (%ls) ist für die Zeile (%ls) in sys.%ls%ls erforderlich, fehlt jedoch. |
3858 | Das Attribut (%ls) der Zeile (%ls) in sys.%ls%ls weist einen ungültigen Wert auf. |
Benutzeraktion
Löschen und Neuerstellen des angegebenen Objekts
Wenn möglich, löschen Sie das angegebene Objekt, und erstellen Sie es erneut. Wenn das Objekt z. B. eine gespeicherte Prozedur oder ein benutzerdefinierter Typ ist, behebt die Neuerstellung des Objekts möglicherweise das Problem.
Sicherungswiederherstellung
Stellen Sie die Datenbank aus der Sicherung wieder her, wenn das Problem nicht hardwarebezogen ist und eine bekannte intakte Sicherungskopie vorhanden ist. Diese Aktion ist nur anwendbar, wenn die Sicherung den Metadatenfehler nicht enthält.
Exportieren der Daten in eine neue Datenbank
Wenn die Metadateninkonsistenz auch in der Sicherung enthalten ist, müssen Sie eine neue Datenbank erstellen und den Inhalt der vorhandenen Datenbank in die neue Datenbank exportieren.
Dieser Fehler kann durch DBCC CHECKDB nicht repariert werden
Dieser Fehler kann nicht repariert werden. Wenn Sie die Datenbank nicht mithilfe einer Sicherung wiederherstellen können, wenden Sie sich an den Kundenservice und -support von Microsoft.
Systemtabellen dürfen nicht manuell aktualisiert werden
Nehmen Sie keine manuellen Updates an den Systemtabellen vor. SQL Server unterstützt keine manuellen Änderungen an den Systemdatenbanken. Wenn Sie eine Systemtabelle in SQL Server-Datenbank aktualisieren, werden die folgenden Ereignisse protokolliert:
Wenn eine Systemtabelle manuell aktualisiert wird
Msg 17659: Warnung: Die ID-ID <> der Systemtabelle wurde direkt in der Datenbank-ID <> aktualisiert, und die Cachekohärenz wurde möglicherweise nicht beibehalten. SQL Server sollte neu gestartet werden.
Beim Starten einer Datenbank mit einer manuell aktualisierten Systemtabelle
Msg 3859: Warnung: Der Systemkatalog wurde direkt in der Datenbank-ID <>aktualisiert, zuletzt bei date_time
Beim Ausführen des Befehls DBCC_CHECKDB, nachdem eine Systemtabelle manuell aktualisiert wurde
Msg 3859: Warnung: Der Systemkatalog wurde direkt in der Datenbank-ID <>aktualisiert, zuletzt bei date_time.