SSMS
 sql >> Datenbank >  >> Database Tools >> SSMS

SQL Server:Wie kann ich eine getrennte/beschädigte Datenbank anhängen/reparieren?

Sie können eine Problemumgehung versuchen. Kurz:

  1. Erstellen Sie eine Dummy-DB mit demselben Namen (möglicherweise müssen Sie zuerst die echte DB entfernen, die Originaldateien speichern oder dann umbenennen).
  2. Dummy offline nehmen (trennen und (offline setzen oder den SQL-Dienst stoppen)).
  3. Dummy-Dateien löschen, dann durch die echten DB-Dateien ersetzen.
  4. Versuchen Sie, de DB erneut anzuhängen

Bearbeiten

Wie im OP-Kommentarhinweis angegeben, müssen Sie möglicherweise auch das Protokoll neu erstellen (wenn Sie Transaktionen verloren haben)

  1. ALTER DATABASE [MyDatabase ] REBUILD LOG ON (NAME=’MyDatabaseLog’,FILENAME=’D:\Microsoft SQL Server\YourDataPath\Data\Logfile.ldf’)

    und stellen Sie die DB in das Protokoll mehrerer Benutzer (das Entfernen der DB kann erfordern, dass Sie sie in den Einzelnutzungsmodus versetzen)

  2. ALTER DATABASE [nomdb] SET MULTI_USER

Alle Gore-Details finden Sie im Artikel von Paul Randal

(Beachten Sie, dass der Autor in diesem Artikel den EMERGENCY MODE verwendet, um das Transaktionsprotokoll zu reparieren (zu versuchen))

Ich habe es bereits erfolgreich eingesetzt, aber je nach Ausmaß des Schadens oder anderen Details kann es eine unmögliche Aufgabe sein. Erwägen Sie, ein Backup wiederherzustellen.

Beachten Sie, dass diese Stunts auf einem Entwicklungsserver in Ordnung sind, aber Sie müssen die Notfallwiederherstellung auf einem Produktionsserver wirklich planen (und üben).