So löschen Sie die wiederherstellende Datenbank

14

Ich verwende den Protokollversand mit SQL Server 2008 R2.

Ich habe eine Situation, in der das sekundäre Datenbanklaufwerk keinen Speicherplatz mehr hat und keine Protokollversand-Transaktionsprotokolle anwendete.

Ich möchte dies beheben, indem ich die Datenbanken auf der sekundären Ebene lösche und den Protokollversand von Grund auf neu konfiguriere.

Das Problem, das ich jetzt habe, ist, dass sich meine sekundären Datenbanken im Wiederherstellungsstatus befinden und ich sie nicht löschen kann. Wie kann ich vorgehen?

Wenn ich zum Beispiel versuche, sie offline zu schalten, erhalte ich den Fehler:

ALTER DATABASE is not permitted while the database is in the Restoring state.
Peter
quelle
Sie können keinen Änderungsbefehl für eine wiederherstellende Datenbank ausgeben. Sie müssen einen Drop ausführen.
Jason Cumberland

Antworten:

25
RESTORE DATABASE dbname 
FROM DISK = 'dbname .bak'
WITH REPLACE, RECOVERY --force restore 

oder nur

RESTORE DATABASE dbname WITH RECOVERY

das REPLACEÜberschreiben der vorhandenen Datenbank, tun es nur , wenn Sie sicher , dass Sie Ihre vorhandene Datenbank außer Kraft setzen möchten , wie Sie erwähnten Sie sich nicht interessieren, sie löschen

WIEDERHERSTELLEN MIT WIEDERHERSTELLUNG ist das Standardverhalten, bei dem die Datenbank durch Zurücksetzen der nicht festgeschriebenen Transaktionen einsatzbereit bleibt. Zusätzliche Transaktionsprotokolle können nicht wiederhergestellt werden.

Das sollte die Datenbank online bringen. Dann können Sie es löschen und erneut versuchen.

AmmarR
quelle
Ich glaube, was Sie sagen, hätte funktionieren sollen. Meine Lösung bestand jedoch darin, den SQL-Dienst neu zu starten und anschließend die Datenbanken zu löschen.
Peter
true, wenn der Dienst deaktiviert ist und die Transaktionsprotokolle gelöscht werden, wird immer ein neues erstellt. Alles Gute
AmmarR
3

Am besten schreibe ich diesen Befehl 'drop database [database name]' und erstelle dann einen neuen mit demselben Namen und stelle dann die Datenbank aus einer anderen .bak-Datei wieder her, da die .bak-Datei beschädigt oder fehlerhaft ist.

Ashar
quelle
In der Frage nach beschädigten Sicherungen wird nichts erwähnt.
Ypercubeᵀᴹ