Inhaltsverzeichnis
    SQL-Datenbank-Reparatur

    DBCC CHECKDB REPAIR_REBUILD mit Beispiel


    Inhaltsverzeichnis

      Zusammenfassung: In diesem Blog werden die Schritte zur Durchführung einer SQL-Datenbankreparatur durch Ausführen von DBCC CHECKDB mit dem Befehl REPAIR_REBUILD erläutert. Es werden auch die möglichen Gründe für die Beschädigung der Datenbank und die Möglichkeiten zur Behebung der Probleme vor der Reparatur der Datenbank beschrieben. Der Blog erklärt die Ausführung von "DBCC CHECKDB REPAIR_REBUILD mit einem Beispiel" anhand einer schrittweisen Anleitung. Außerdem wird ein SQL-Reparaturtool als Alternative zu den DBCC CHECKDB-Reparaturoptionen vorgeschlagen.

      Als Datenbankadministratoren müssen Sie den Befehl DBCC CHECKDB ausführen, um die physische und logische Konsistenz Ihrer SQL-Datenbank zu überprüfen. Diese Prüfungen können aufgrund einer Beschädigung der Datenbank fehlschlagen. Wenn DBCC CHECKDB Konsistenzfehler meldet, müssen Sie die Ursache für die Beschädigung der Datenbank ermitteln, um die bestmögliche Lösung zur Behebung der Fehler zu finden.

      Mögliche Gründe für die Beschädigung der SQL-Datenbank

      Es folgen die häufigsten Gründe, die zur Beschädigung der SQL Server-Datenbank führen:

      • Defekte Hardware: Prüfen Sie, ob Festplattencontroller, Gerätetreiber oder andere Hardwarekomponenten defekt sind. Wenn die Konsistenzfehler durch Hardwareprobleme verursacht werden, stellen Sie sicher, dass die Konfiguration des Hardwaregeräts den Anforderungen der Microsoft SQL Server Database Engine Input/Output entspricht. Andernfalls wenden Sie sich an Ihren Hardwareanbieter oder Gerätehersteller, um die zugrunde liegenden Hardwareprobleme zu beheben.
      • Fehler in der SQL-Software: Wenn Sie kein Problem mit der zugrundeliegenden Hardware finden können, suchen Sie nach Softwarefehlern, da Microsoft dafür bekannt ist, dass Indexbeschädigungen oder Datenverluste bei der Ausführung eines Online-Indexwiederaufbaus in SQL Server 2012/2014 auftreten können. 
      • Virus- oder Malware-Angriff: Die SQL-Datenbankdateien können durch einen Virus- oder Malware-Angriff beschädigt werden, wodurch die Dateien unzugänglich werden.

      Wenn keine Hardware- oder Software-Probleme erkannt werden, ist die beste Lösung zur Behebung der Beschädigung die Wiederherstellung der Datenbank von der letzten Sicherung. Wenn es keine gute Sicherung gibt, können Sie die Fehler beheben, indem Sie den Befehl DBCC CHECKDB mit einer Reparaturoption ausführen, die zur Behebung bestimmter Fehler erforderlich ist. Im folgenden Abschnitt wird erörtert, wie die Datenbankbeschädigung behoben werden kann, wenn “REPAIR_REBUILD” als Mindestreparaturstufe empfohlen wird, um alle von DBCC CHECKDB gemeldeten Fehler zu beheben.

      Wie repariert man eine beschädigte SQL-Datenbank mit ‘DBCC CHECKDB mit REPAIR_REBUILD’?

      Der Befehl REPAIR_REBUILD hilft, beschädigte Seiten wiederherzustellen oder fehlende Zeilen in nicht geclusterten Indizes zu reparieren. Sie können damit eine Datenbankreparatur “ohne die Möglichkeit eines Datenverlustes” durchführen.

      Bevor Sie den Befehl ‘DBCC CHECKDB REPAIR_REBUILD’ ausführen, stellen Sie sicher, dass Sie die Datenbank in den SINGLE_USER-Modus versetzen, indem Sie den folgenden Befehl ausführen:

      ALTER DATABASE ihr_dbname SET SINGLE_USER

      Dies ist wichtig, weil das Reparieren einer SQL-Datenbank und die Ausführung eines DBCC CHECKDB-Befehls zwei getrennte Vorgänge sind. Außerdem befindet sich eine Datenbank im MULTI-USER-Modus. Um sie zu reparieren, müssen Sie sie in den SINGLE_USER-Modus bringen, damit keine Fehler auftreten.

      Sobald die Datenbank in den SINGLE_USER-Modus versetzt wurde, führen Sie den folgenden Befehl aus, um die Datenbank zu reparieren:

      DBCC CHECKDB(‘ihr_dbname’, REPAIR_REBUILD)

      Sobald die Datenbank repariert ist, setzen Sie die Datenbank wieder in den MULTI_USER-Modus:

      ALTER DATABASE ihr_dbname SET MULTI_USER

      DBCC CHECKDB mit REPAIR_REBUILD Beispiel

      Das folgende Beispiel zeigt eine Fehlermeldung, in der empfohlen wird, “repair_rebuild als minimale Reparaturstufe” für die VLDB-Datenbank auszuführen.

      REPAIR REBUILD

      Gehen Sie folgendermaßen vor, um den Tabellenfehler zu beheben:

      Schritt 1: Öffnen Sie SQL Server Management Studio (SSMS) und führen Sie diesen Befehl aus:

      ALTER DATABASE VLDB SET SINGLE_USER WITH ROLLBACK IMMEDIATE;

      Schritt 2: Sobald sich die Datenbank im SINGLE_USER-Modus befindet, klicken Sie mit der rechten Maustaste auf Datenbanken und dann auf Aktualisieren.

      Schritt 3: Erweitern Sie nun Datenbanken, indem Sie auf das “+”-Symbol klicken. Sie können sehen, dass “VLDB” im SINGLE_USER-Modus ist.

      Schritt 4: Führen Sie nun den folgenden Befehl DBCC CHECKDB repair rebuild aus:

      Wenn es keine Fehler gibt, wird die Abfrage erfolgreich ausgeführt. Wenn ja, bringen Sie die Datenbank in den MULTI_USER-Modus.

      Was passiert, wenn ‘DBCC CHECKDB REPAIR_REBUILD’ fehlschlägt?

      Die Option REPAIR_REBUILD kann nur kleinere Korruptionsfehler beheben. Daher kann es sein, dass sie nicht alle von CHECKDB gemeldeten Fehler beheben kann und zu einem Fehler führt, der “REPAIR_ALLOW_DATA_LOSS als minimale Reparaturebene” empfiehlt, wie Sie in der Abbildung unten sehen können.

      DBCC CHECKDB REPAIR

      Führen Sie den Befehl “DBCC CHECKDB with REPAIR_ALLOW_DATA_LOSS” als letzten Ausweg aus, um die Datenbank zu reparieren, da er das Risiko eines Datenverlusts birgt. Eine bessere Alternative ist die Verwendung eines professionellen SQL-Reparaturtools.

      Kostenloser Download für Windows

      Stellar Repair for MS SQL Software kann helfen, alle Arten von SQL-Datenbank Korruption Fehler zu beheben. Es repariert die MDF-Datei der Datenbank und stellt alle Objekte wieder her und hilft Ihnen so, die Datenbank in ihrer ursprünglichen Form ohne Datenverlust wiederherzustellen. 

      Schlussfolgerung

      Wenn bei der Ausführung des Befehls DBCC CHECKDB Konsistenzfehler auftreten, kann die Option REPAIR_REBUILD helfen, die Fehler ohne Datenverlust zu beheben. Es kann jedoch sein, dass damit nicht alle Konsistenzfehler behoben werden können. Möglicherweise müssen Sie DBCC CHECKDB mit REPAIR_ALLOW_DATA_LOSS ausführen, um die Datenbankbeschädigung zu beheben, aber denken Sie daran, dass dies zu Datenverlusten führen kann. Mit Stellar Repair for MS SQL Software können Sie eine stark beschädigte Datenbank zu beheben und wiederherstellen, ohne Änderungen an seiner ursprünglichen Form.

      Was this article helpful?

      No NO

      Über den Autor

      Himanshu Shakya

      Himanshu is a Tech Enthusiast & Blogger at Stellar and having knowledge of Japanese Language. And apart from this in his spare time he likes playing Chess.

      Leave a comment

      Your email address will not be published. Required fields are marked *

      Image Captcha
      Refresh Image Captcha

      Enter Captcha Here :

      Verwandter Beitrag

      WARUM STELLAR® WELTWEIT FÜHREND IST

      Warum Stellar wählen?

      • 0M+

        Kunden

      • 0+

        Jahre der Exzellenz

      • 0+

        F&E-Ingenieure

      • 0+

        Länder

      • 0+

        PARTNER

      • 0+

        Erhaltene Auszeichnungen