Hier ist mein Problem. Ich versuche, eine Datenbank über eine vollständige Wiederherstellung auf einen neuen Server zu verschieben und dann mit einer schnellen differenziellen Sicherung / Wiederherstellung zu wechseln. Ich kann problemlos eine vollständige Wiederherstellung durchführen, aber beim Wiederherstellen der differenziellen Sicherung wird die folgende Warnung angezeigt:
Meldung 3127, Ebene 16, Status 1, Zeile 1 Die Datei 'Database_Log2' der wiederhergestellten Datenbank 'DatabaseName' bleibt im nicht mehr gültigen Status, da die Datenbank das einfache Wiederherstellungsmodell verwendet und die Datei für den Lese- / Schreibzugriff markiert ist. Daher können nur schreibgeschützte Dateien durch stückweise Wiederherstellung wiederhergestellt werden.
Die Datenbank wird wiederhergestellt und als online betrachtet, aber jeder Sicherungsvorgang schlägt aufgrund dieser DEFUNCT-Datei mit dem folgenden Fehler fehl:
Nachricht 3636, Ebene 16, Status 2, Zeile 1 Bei der Verarbeitung der Metadaten 'BackupMetadata' für die Datenbank-ID 10, Datei-ID 6, ist ein Fehler aufgetreten. Nachricht 3046, Ebene 16, Status 2, Zeile 1 Es wurden inkonsistente Metadaten festgestellt. Die einzig mögliche Sicherungsoperation ist eine Endprotokollsicherung mit der Option WITH CONTINUE_AFTER_ERROR oder NO_TRUNCATE. Meldung 3013, Ebene 16, Status 1, Zeile 1 Die Sicherungsdatenbank wird abnormal beendet.
Wenn ich FILELISTONLY RESTORE für das vollständige und das Differential durchführe, erhalte ich dieselbe Ausgabe, die mit dem übereinstimmt, was ich in sys.database_files in der Quellendatenbank sehe. Server ist SQL2012 SP1 in der Developer Edition.
Ich kann eine vollständige Sicherung durchführen und unmittelbar danach ein Differential erstellen und diese Dateien in einer anderen Datenbank auf demselben Server wiederherstellen und genau das gleiche Problem feststellen. Es liegt also etwas daran, wie das Differential erstellt wird, das dies verursacht. Wenn ich die vollständige Sicherung mit Wiederherstellung wiederherstelle, gibt es kein Problem. Ich weiß nicht, ob diese Datei in dieser Datenbank vorhanden war, aber es ist durchaus möglich, dass diese Datei früher vorhanden war und vor langer Zeit gelöscht wurde. Wenn ich sys.database_files in der wiederhergestellten Datenbank abfrage, hat die DEFUNCT-Datei einen Wert für drop_lsn, was dies zu bestätigen scheint. Derzeit gibt es in der Quellendatenbank nur eine Dateigruppe (PRIMARY), 4 Datendateien und eine Protokolldatei.
Irgendwelche Ideen?