it-swarm.com.de

SQL Server zeigt die Datenbank in der Wiederherstellung an

Heute, nach einem Stromausfall, zeigt eine Datenbank (mit Wiederherstellung: voll) "In Wiederherstellung" in SSMS. Damit:

myDatabase (In Wiederherstellung) (Datenbankstatus: Wiederherstellung, Herunterfahren)

Nach Abschluss des "Wiederherstellungsprozesses" zeigt die Datenbank den Namen myDatabase ohne "(In Wiederherstellung)" an. Ich dachte, dass das Problem gelöst war, aber es war nicht.

Wenn ich die Anwendung gestartet habe, die diese Datenbank verwendet, wird der zusätzliche Text "(In Wiederherstellung)" erneut neben dem Namen meiner Datenbank angezeigt.

Ich habe gewartet, bis der "Wiederherstellungsprozess" abgeschlossen ist, und dann die Datenbank offline geschaltet und wieder online geschaltet.

Ich habe den Server neu gestartet, den Computer neu gestartet und als meine Anwendung ausgeführt wurde, wird der zusätzliche Text erneut angezeigt. In den SQL Server-Protokollen wird mehrmals die Meldung "Datenbank 'myDatabase' starten" angezeigt. Es scheint, dass die Datenbank funktioniert, weil ich Daten einfügen kann, aber der Status zeigt, dass etwas passiert.

Das Serverprotokoll zeigt nichts Interessantes an. Die einzige ungewöhnliche Sache ist, dass ich 30 Einträge von "Starten der Datenbank 'myDatabase'" habe.

Ich weiß, dass beim Starten des Servers jede Datenbank wiederhergestellt wird, bevor sie einsatzbereit ist. In meinem Fall wird die Datenbank jedoch online geschaltet und zeigt dann "myDatabase (In Recovery)" an. Wenn ich die Anwendung schließe, wechselt die Datenbank in den Status: Normal. Das macht mich verrückt.

Ich habe sogar eine neue Instanz von SQL Server installiert und die alte Datenbank "myDatabase" darauf abgelegt. Das Problem tritt immer noch auf.

Wenn ich diese Abfrage ausführe:

SELECT databasepropertyex('nyDatabase', 'STATUS')

Es zeigt die Wiederherstellung, online, verdächtig und zurück zu online und dann die Wiederherstellung und so weiter.

23
Andres

Community-Wiki-Antwort ursprünglich als Bearbeitung der Frage durch den Autor hinterlassen:

Das Problem war, dass die Datenbankeigenschaft AutoClose aktiviert war.

Die Lösung bestand darin, AutoClose auf false zu setzen.

2
user126897

Ich bin mir nicht sicher, ob dies zur Lösung des Problems beitragen würde, aber Sie können es versuchen.

Lauf:

RESTORE DATABASE YourDatabase WITH RECOVERY

Überprüfen Sie, ob das oben Gesagte die Datenbank aus dem Wiederherstellungsmodus bringt. Wenn dies nicht der Fall ist, liegt das Problem möglicherweise an etwas anderem.

Können Sie den folgenden Befehl ausführen und feststellen, ob die Datenbank beschädigt ist?

DBCC CHECKDB ('YourDBname') WITH NO_INFOMSGS, ALL_ERRORMSGS

Wenn eine Beschädigung festgestellt wird, möchten Sie die Datenbank möglicherweise mit DBCC CHECKDB Reparieren.

16
RK Kuppala

Wenn Sie eine Datenbank online schalten, wird sie wiederhergestellt. Ich bin allerdings etwas verwirrt über Ihre Formulierung des Problems. Wird die Datenbank zu einem anderen Zeitpunkt wiederhergestellt, als wenn die Datenbank offline geschaltet wird (entweder aufgrund Ihres ursprünglichen Stromausfalls oder weil Sie sie offline und dann wieder online geschaltet haben)? In diesem Fall wird die Datenbank aus einem anderen Grund offline geschaltet. Überprüfen Sie am besten die SQL Server-Protokolle, um festzustellen, was los ist.

Sie sollten auch das Windows-Ereignisprotokoll auf einen Festplattenfehler überprüfen. Die Datenbank sollte während des normalen Betriebs nicht gestartet und wiederhergestellt werden.

6
Ben Thul