none
Datenbank Fehlerhaft dbcc funktioniert nicht RRS feed

  • Frage

  • Guten Tag!

    Ich habe eine Datenbank die durch einen Stromausfall fehlerhaft ist. Ein großteil der Datenbank funktionierte aber danach noch, deshalb hat der Kunde weitergearbeitet und ich kann deshalb keine Sicherung zurückspielen aus der Zeit wo noch kein Fehler bestanden hat.

    DBCC Checkdb liefert mir folgendes Ergebnis:

    1> DBCC CheckDB ('MandantMagnus ', REPAIR_ALLOW_DATA_LOSS) WITH NO_INFOMSGS, ALL
    _ERRORMSGS
    2> go
    Meldung '259', Ebene '16', Status '1', Server 'PROG03\SECONDLIFE', Zeile 1
    'Ad hoc updates to system catalogs are not allowed.'
    Meldung '608', Ebene '16', Status '1', Server 'PROG03\SECONDLIFE', Zeile 1
    'No catalog entry found for partition ID 562949957025792 in database 6. The meta
    data is inconsistent. Run DBCC CHECKDB to check for a metadata corruption.'
    Meldung '259', Ebene '16', Status '1', Server 'PROG03\SECONDLIFE', Zeile 1
    'Ad hoc updates to system catalogs are not allowed.'
    Meldung '608', Ebene '16', Status '1', Server 'PROG03\SECONDLIFE', Zeile 1
    'No catalog entry found for partition ID 562949957025792 in database 6. The meta
    data is inconsistent. Run DBCC CHECKDB to check for a metadata corruption.'
    Meldung '259', Ebene '16', Status '1', Server 'PROG03\SECONDLIFE', Zeile 1
    'Ad hoc updates to system catalogs are not allowed.'
    Meldung '608', Ebene '16', Status '1', Server 'PROG03\SECONDLIFE', Zeile 1
    'No catalog entry found for partition ID 562949957025792 in database 6. The meta
    data is inconsistent. Run DBCC CHECKDB to check for a metadata corruption.'
    Meldung '259', Ebene '16', Status '1', Server 'PROG03\SECONDLIFE', Zeile 1
    'Ad hoc updates to system catalogs are not allowed.'
    Meldung '608', Ebene '16', Status '1', Server 'PROG03\SECONDLIFE', Zeile 1
    'No catalog entry found for partition ID 562949957025792 in database 6. The meta
    data is inconsistent. Run DBCC CHECKDB to check for a metadata corruption.'
    Meldung '259', Ebene '16', Status '1', Server 'PROG03\SECONDLIFE', Zeile 1
    'Ad hoc updates to system catalogs are not allowed.'
    Meldung '608', Ebene '16', Status '1', Server 'PROG03\SECONDLIFE', Zeile 1
    'No catalog entry found for partition ID 562949957025792 in database 6. The meta
    data is inconsistent. Run DBCC CHECKDB to check for a metadata corruption.'
    Meldung '259', Ebene '16', Status '1', Server 'PROG03\SECONDLIFE', Zeile 1
    'Ad hoc updates to system catalogs are not allowed.'
    Meldung '608', Ebene '16', Status '1', Server 'PROG03\SECONDLIFE', Zeile 1
    'No catalog entry found for partition ID 562949957025792 in database 6. The meta
    data is inconsistent. Run DBCC CHECKDB to check for a metadata corruption.'
    Meldung '259', Ebene '16', Status '1', Server 'PROG03\SECONDLIFE', Zeile 1
    'Ad hoc updates to system catalogs are not allowed.'
    Meldung '608', Ebene '16', Status '1', Server 'PROG03\SECONDLIFE', Zeile 1
    'No catalog entry found for partition ID 562949957025792 in database 6. The meta
    data is inconsistent. Run DBCC CHECKDB to check for a metadata corruption.'
    Meldung '259', Ebene '16', Status '1', Server 'PROG03\SECONDLIFE', Zeile 1
    'Ad hoc updates to system catalogs are not allowed.'
    Meldung '608', Ebene '16', Status '1', Server 'PROG03\SECONDLIFE', Zeile 1
    'No catalog entry found for partition ID 562949957025792 in database 6. The meta
    data is inconsistent. Run DBCC CHECKDB to check for a metadata corruption.'
    Meldung '259', Ebene '16', Status '1', Server 'PROG03\SECONDLIFE', Zeile 1
    'Ad hoc updates to system catalogs are not allowed.'
    Meldung '608', Ebene '16', Status '1', Server 'PROG03\SECONDLIFE', Zeile 1
    'No catalog entry found for partition ID 562949957025792 in database 6. The meta
    data is inconsistent. Run DBCC CHECKDB to check for a metadata corruption.'
    Meldung '259', Ebene '16', Status '1', Server 'PROG03\SECONDLIFE', Zeile 1
    'Ad hoc updates to system catalogs are not allowed.'
    Meldung '608', Ebene '16', Status '1', Server 'PROG03\SECONDLIFE', Zeile 1
    'No catalog entry found for partition ID 562949957025792 in database 6. The meta
    data is inconsistent. Run DBCC CHECKDB to check for a metadata corruption.'
    Meldung '259', Ebene '16', Status '1', Server 'PROG03\SECONDLIFE', Zeile 1
    'Ad hoc updates to system catalogs are not allowed.'
    Meldung '608', Ebene '16', Status '1', Server 'PROG03\SECONDLIFE', Zeile 1
    'No catalog entry found for partition ID 562949957025792 in database 6. The meta
    data is inconsistent. Run DBCC CHECKDB to check for a metadata corruption.'
    Meldung '259', Ebene '16', Status '1', Server 'PROG03\SECONDLIFE', Zeile 1
    'Ad hoc updates to system catalogs are not allowed.'
    Meldung '608', Ebene '16', Status '1', Server 'PROG03\SECONDLIFE', Zeile 1
    'No catalog entry found for partition ID 562949957025792 in database 6. The meta
    data is inconsistent. Run DBCC CHECKDB to check for a metadata corruption.'
    Meldung '259', Ebene '16', Status '1', Server 'PROG03\SECONDLIFE', Zeile 1
    'Ad hoc updates to system catalogs are not allowed.'
    Meldung '608', Ebene '16', Status '1', Server 'PROG03\SECONDLIFE', Zeile 1
    'No catalog entry found for partition ID 562949957025792 in database 6. The meta
    data is inconsistent. Run DBCC CHECKDB to check for a metadata corruption.'
    Meldung '259', Ebene '16', Status '1', Server 'PROG03\SECONDLIFE', Zeile 1
    'Ad hoc updates to system catalogs are not allowed.'
    Meldung '608', Ebene '16', Status '1', Server 'PROG03\SECONDLIFE', Zeile 1
    'No catalog entry found for partition ID 562949957025792 in database 6. The meta
    data is inconsistent. Run DBCC CHECKDB to check for a metadata corruption.'
    Meldung '8951', Ebene '16', Status '1', Server 'PROG03\SECONDLIFE', Zeile 1
    'Table error: table 'sys.sysiscols' (ID 55). Data row does not have a matching i
    ndex row in the index 'nc1' (ID 2). Possible missing or invalid keys for the ind
    ex row matching:'
    Meldung '8955', Ebene '16', Status '1', Server 'PROG03\SECONDLIFE', Zeile 1
    'Data row (1:263:158) identified by (idmajor = 105207575 and subid = 1 and idmin
    or = 1) with index values 'idmajor = 105207575 and intprop = 1 and subid = 1 and
     idminor = 1'.'
    Meldung '8951', Ebene '16', Status '1', Server 'PROG03\SECONDLIFE', Zeile 1
    'Table error: table 'sys.sysiscols' (ID 55). Data row does not have a matching i
    ndex row in the index 'nc1' (ID 2). Possible missing or invalid keys for the ind
    ex row matching:'
    Meldung '8955', Ebene '16', Status '1', Server 'PROG03\SECONDLIFE', Zeile 1
    'Data row (1:263:159) identified by (idmajor = 105207575 and subid = 2 and idmin
    or = 1) with index values 'idmajor = 105207575 and intprop = 2 and subid = 2 and
     idminor = 1'.'
    Meldung '8951', Ebene '16', Status '1', Server 'PROG03\SECONDLIFE', Zeile 1
    'Table error: table 'sys.sysiscols' (ID 55). Data row does not have a matching i
    ndex row in the index 'nc1' (ID 2). Possible missing or invalid keys for the ind
    ex row matching:'
    Meldung '8955', Ebene '16', Status '1', Server 'PROG03\SECONDLIFE', Zeile 1
    'Data row (1:263:160) identified by (idmajor = 105207575 and subid = 3 and idmin
    or = 1) with index values 'idmajor = 105207575 and intprop = 3 and subid = 3 and
     idminor = 1'.'
    Meldung '8951', Ebene '16', Status '1', Server 'PROG03\SECONDLIFE', Zeile 1
    'Table error: table 'sys.sysiscols' (ID 55). Data row does not have a matching i
    ndex row in the index 'nc1' (ID 2). Possible missing or invalid keys for the ind
    ex row matching:'
    Meldung '8955', Ebene '16', Status '1', Server 'PROG03\SECONDLIFE', Zeile 1
    'Data row (1:263:161) identified by (idmajor = 105207575 and subid = 4 and idmin
    or = 1) with index values 'idmajor = 105207575 and intprop = 4 and subid = 4 and
     idminor = 1'.'
    Meldung '8951', Ebene '16', Status '1', Server 'PROG03\SECONDLIFE', Zeile 1
    'Table error: table 'sys.sysiscols' (ID 55). Data row does not have a matching i
    ndex row in the index 'nc1' (ID 2). Possible missing or invalid keys for the ind
    ex row matching:'
    Meldung '8955', Ebene '16', Status '1', Server 'PROG03\SECONDLIFE', Zeile 1
    'Data row (1:263:162) identified by (idmajor = 105207575 and subid = 5 and idmin
    or = 1) with index values 'idmajor = 105207575 and intprop = 5 and subid = 5 and
     idminor = 1'.'
    Meldung '8951', Ebene '16', Status '1', Server 'PROG03\SECONDLIFE', Zeile 1
    'Table error: table 'sys.sysiscols' (ID 55). Data row does not have a matching i
    ndex row in the index 'nc1' (ID 2). Possible missing or invalid keys for the ind
    ex row matching:'
    Meldung '8955', Ebene '16', Status '1', Server 'PROG03\SECONDLIFE', Zeile 1
    'Data row (1:263:163) identified by (idmajor = 105207575 and subid = 1 and idmin
    or = 2) with index values 'idmajor = 105207575 and intprop = 1 and subid = 1 and
     idminor = 2'.'
    Meldung '8951', Ebene '16', Status '1', Server 'PROG03\SECONDLIFE', Zeile 1
    'Table error: table 'sys.sysiscols' (ID 55). Data row does not have a matching i
    ndex row in the index 'nc1' (ID 2). Possible missing or invalid keys for the ind
    ex row matching:'
    Meldung '8955', Ebene '16', Status '1', Server 'PROG03\SECONDLIFE', Zeile 1
    'Data row (1:263:164) identified by (idmajor = 105207575 and subid = 2 and idmin
    or = 2) with index values 'idmajor = 105207575 and intprop = 2 and subid = 2 and
     idminor = 2'.'
    Meldung '8951', Ebene '16', Status '1', Server 'PROG03\SECONDLIFE', Zeile 1
    'Table error: table 'sys.sysiscols' (ID 55). Data row does not have a matching i
    ndex row in the index 'nc1' (ID 2). Possible missing or invalid keys for the ind
    ex row matching:'
    Meldung '8955', Ebene '16', Status '1', Server 'PROG03\SECONDLIFE', Zeile 1
    'Data row (1:263:165) identified by (idmajor = 105207575 and subid = 3 and idmin
    or = 2) with index values 'idmajor = 105207575 and intprop = 3 and subid = 3 and
     idminor = 2'.'
    Meldung '8951', Ebene '16', Status '1', Server 'PROG03\SECONDLIFE', Zeile 1
    'Table error: table 'sys.sysiscols' (ID 55). Data row does not have a matching i
    ndex row in the index 'nc1' (ID 2). Possible missing or invalid keys for the ind
    ex row matching:'
    Meldung '8955', Ebene '16', Status '1', Server 'PROG03\SECONDLIFE', Zeile 1
    'Data row (1:263:166) identified by (idmajor = 105207575 and subid = 4 and idmin
    or = 2) with index values 'idmajor = 105207575 and intprop = 4 and subid = 4 and
     idminor = 2'.'
    Meldung '8951', Ebene '16', Status '1', Server 'PROG03\SECONDLIFE', Zeile 1
    'Table error: table 'sys.sysiscols' (ID 55). Data row does not have a matching i
    ndex row in the index 'nc1' (ID 2). Possible missing or invalid keys for the ind
    ex row matching:'
    Meldung '8955', Ebene '16', Status '1', Server 'PROG03\SECONDLIFE', Zeile 1
    'Data row (1:263:167) identified by (idmajor = 105207575 and subid = 5 and idmin
    or = 2) with index values 'idmajor = 105207575 and intprop = 5 and subid = 5 and
     idminor = 2'.'
    Meldung '8951', Ebene '16', Status '1', Server 'PROG03\SECONDLIFE', Zeile 1
    'Table error: table 'sys.sysiscols' (ID 55). Data row does not have a matching i
    ndex row in the index 'nc1' (ID 2). Possible missing or invalid keys for the ind
    ex row matching:'
    Meldung '8955', Ebene '16', Status '1', Server 'PROG03\SECONDLIFE', Zeile 1
    'Data row (1:263:168) identified by (idmajor = 105207575 and subid = 6 and idmin
    or = 2) with index values 'idmajor = 105207575 and intprop = 9 and subid = 6 and
     idminor = 2'.'
    Meldung '8951', Ebene '16', Status '1', Server 'PROG03\SECONDLIFE', Zeile 1
    'Table error: table 'sys.sysiscols' (ID 55). Data row does not have a matching i
    ndex row in the index 'nc1' (ID 2). Possible missing or invalid keys for the ind
    ex row matching:'
    Meldung '8955', Ebene '16', Status '1', Server 'PROG03\SECONDLIFE', Zeile 1
    'Data row (1:263:169) identified by (idmajor = 105207575 and subid = 1 and idmin
    or = 3) with index values 'idmajor = 105207575 and intprop = 9 and subid = 1 and
     idminor = 3'.'
    Meldung '8951', Ebene '16', Status '1', Server 'PROG03\SECONDLIFE', Zeile 1
    'Table error: table 'sys.sysiscols' (ID 55). Data row does not have a matching i
    ndex row in the index 'nc1' (ID 2). Possible missing or invalid keys for the ind
    ex row matching:'
    Meldung '8955', Ebene '16', Status '1', Server 'PROG03\SECONDLIFE', Zeile 1
    'Data row (1:263:170) identified by (idmajor = 105207575 and subid = 1 and idmin
    or = 4) with index values 'idmajor = 105207575 and intprop = 8 and subid = 1 and
     idminor = 4'.'
    Meldung '8951', Ebene '16', Status '1', Server 'PROG03\SECONDLIFE', Zeile 1
    'Table error: table 'sys.sysiscols' (ID 55). Data row does not have a matching i
    ndex row in the index 'nc1' (ID 2). Possible missing or invalid keys for the ind
    ex row matching:'
    Meldung '8955', Ebene '16', Status '1', Server 'PROG03\SECONDLIFE', Zeile 1
    'Data row (1:263:171) identified by (idmajor = 105207575 and subid = 1 and idmin
    or = 5) with index values 'idmajor = 105207575 and intprop = 4 and subid = 1 and
     idminor = 5'.'
            Could not repair this error.
            Could not repair this error.
            Could not repair this error.
            Could not repair this error.
            Could not repair this error.
            Could not repair this error.
            Could not repair this error.
            Could not repair this error.
            Could not repair this error.
            Could not repair this error.
            Could not repair this error.
            Could not repair this error.
            Could not repair this error.
            Could not repair this error.
    CHECKDB found 0 allocation errors and 14 consistency errors in table 'sys.sysisc
    ols' (object ID 55).
    CHECKDB found 0 allocation errors and 14 consistency errors in database 'Mandant
    Magnus'.
    repair_rebuild is the minimum repair level for the errors found by DBCC CHECKDB
    (MandantMagnus, repair_allow_data_loss).

    Wie bekomm ich diese Datenbank wieder rund zum laufen?

    Dienstag, 17. Mai 2016 15:32

Antworten

  • Guten Abend

    Zunächst einmal: zum GLÜCK scheint die „Reparatur“ nicht funktioniert zu haben, denn das Kommando „REPAIR_ALLOW_DATA_LOSS“ kann zu permanentem Datenverlust führen.

    Bevor man derartig radikale Kommandos ausführt, sollte man unbedingt eine Sicherung anlegen.

    So, da nun „vermutlich“ (ich konnte beim Überfliegen der Meldungen nichts gegenteiliges entdecken) nichts passiert ist, wäre der nächste Schritt:

    1. Sicherung erstellen

    Anschließend:

    1. Feststellen und Einkreisen des exakten Korruptionsgrades
    2. Reparieren, der Objekte, soweit OHNE Datenverlust möglich
    3. Abwägen der Kosten von möglichem Datenverlust (daher Punkt 1: um welche Daten handelt es sich?)
    4. -> Datenrettungsmaßnahmen einleiten (Manuell lässt sich eigentlich immer noch mehr retten als die Automatismen es können) oder Datenverlust hinnehmen und im Anschluss Beispielsweise für Neu-Eingaben sorgen
    5. Datenbank von korrupten Daten säubern, ggfl. Neu erstellen

    Das ist eine grobe Vorgehensweise, mit der ich persönlich zunächst ansetzen würde.

    Dazu kommt, dass es sich vermutlich um einen SQL Server 2000-Datenbank handelt (ich vermute das aufgrund einiger typische SQL 2000-Fehlermeldungen)? Das macht das Vorgehen nicht einfacher. Wenn dem so ist, würde ich hier den Punkt Migration auf eine supportete Version mit hinzufügen, um in Zukunft besser aufgestellt zu sein.


    Andreas Wolter (Blog | Twitter)
    MCSM: Microsoft Certified Solutions Master Data Platform/SQL Server 2012
    MCM SQL Server 2008
    MVP Data Platform
    www.SarpedonQualityLab.com | www.andreas-wolter.com


    Dienstag, 17. Mai 2016 18:44
  • Zusätzlich zu den Infos von Andreas könntest Du ja mal versuchen herauszufinden, welches Objekt betroffen ist.

    Vermutlich ist es eine Objekt-Id in der Fehlermeldung:

    Select object_name(105207575);

    Dann könnte man versuchen diese Tabelle oder die Indizes neu zu erstellen.

    Aber nichts ohne vorher eine Sicherung anzufertigen. Evtl. kannst du ja auch die Tabelle droppen und aus einer alten Sicherung wieder einspielen. Je nachdem, was da so an Daten drin war.


    Einen schönen Tag noch, Christoph -- Data Platform MVP - http://www.insidesql.org/blogs/cmu

    Donnerstag, 19. Mai 2016 12:02

Alle Antworten

  • Guten Abend

    Zunächst einmal: zum GLÜCK scheint die „Reparatur“ nicht funktioniert zu haben, denn das Kommando „REPAIR_ALLOW_DATA_LOSS“ kann zu permanentem Datenverlust führen.

    Bevor man derartig radikale Kommandos ausführt, sollte man unbedingt eine Sicherung anlegen.

    So, da nun „vermutlich“ (ich konnte beim Überfliegen der Meldungen nichts gegenteiliges entdecken) nichts passiert ist, wäre der nächste Schritt:

    1. Sicherung erstellen

    Anschließend:

    1. Feststellen und Einkreisen des exakten Korruptionsgrades
    2. Reparieren, der Objekte, soweit OHNE Datenverlust möglich
    3. Abwägen der Kosten von möglichem Datenverlust (daher Punkt 1: um welche Daten handelt es sich?)
    4. -> Datenrettungsmaßnahmen einleiten (Manuell lässt sich eigentlich immer noch mehr retten als die Automatismen es können) oder Datenverlust hinnehmen und im Anschluss Beispielsweise für Neu-Eingaben sorgen
    5. Datenbank von korrupten Daten säubern, ggfl. Neu erstellen

    Das ist eine grobe Vorgehensweise, mit der ich persönlich zunächst ansetzen würde.

    Dazu kommt, dass es sich vermutlich um einen SQL Server 2000-Datenbank handelt (ich vermute das aufgrund einiger typische SQL 2000-Fehlermeldungen)? Das macht das Vorgehen nicht einfacher. Wenn dem so ist, würde ich hier den Punkt Migration auf eine supportete Version mit hinzufügen, um in Zukunft besser aufgestellt zu sein.


    Andreas Wolter (Blog | Twitter)
    MCSM: Microsoft Certified Solutions Master Data Platform/SQL Server 2012
    MCM SQL Server 2008
    MVP Data Platform
    www.SarpedonQualityLab.com | www.andreas-wolter.com


    Dienstag, 17. Mai 2016 18:44
  • Zusätzlich zu den Infos von Andreas könntest Du ja mal versuchen herauszufinden, welches Objekt betroffen ist.

    Vermutlich ist es eine Objekt-Id in der Fehlermeldung:

    Select object_name(105207575);

    Dann könnte man versuchen diese Tabelle oder die Indizes neu zu erstellen.

    Aber nichts ohne vorher eine Sicherung anzufertigen. Evtl. kannst du ja auch die Tabelle droppen und aus einer alten Sicherung wieder einspielen. Je nachdem, was da so an Daten drin war.


    Einen schönen Tag noch, Christoph -- Data Platform MVP - http://www.insidesql.org/blogs/cmu

    Donnerstag, 19. Mai 2016 12:02