Stellen Sie sicher, dass eine neuere Version der LDF-Datei mit einer älteren Version der MDF-Datei funktioniert

7

Ist es möglich, eine "neuere Version" der LDF-Datei mit einer älteren Version der MDF-Datei zu kombinieren und Änderungen in der LDF protokolliert zu halten? Nehmen wir an, dass es in der Zwischenzeit keine Protokollsicherungen gegeben hat, da dies meiner Meinung nach dies wirklich unmöglich machen würde.

Schritte:

  1. Datenbank im vollständigen Wiederherstellungsmodus
  2. Erstellen Sie eine vollständige Sicherung
  3. Nehmen Sie einige Änderungen vor
  4. Datenbank trennen
  5. Machen Sie eine Dateikopie der LDF-Datei
  6. In Schritt 2 von der vollständigen Sicherung wiederherstellen
  7. Datenbank trennen
  8. Machen Sie eine Dateikopie der MDF-Datei
  9. Werfen Sie das Backup weg (wichtiger Schritt)
  10. Löschen Sie die Datenbank
  11. Lassen Sie MDF und LDF irgendwie zusammen mit der in Schritt 3 vorgenommenen Änderung spielen.

Das Anhängen von MDF und LDF führt zu einem Fehler:

Die an die Protokollscandatenbank 'mic' übergebene Protokollscannummer (38: 195: 41) ist ungültig.

Ich habe auch eine Sequenz von versucht

  1. Datenbank erstellen
  2. Datenbank offline schalten
  3. Ersetzen Sie die MDF- und LDF-Dateien
  4. Online bringen
  5. Führen Sie eine Protokollsicherung durch
  6. Datenbank löschen
  7. Erstellen Sie eine Datenbank nur mit angehängter MDF-Datei
  8. Machen Sie eine vollständige Sicherung
  9. Vollständige Sicherung wiederherstellen (Norecovery)
  10. Stellen Sie die Protokollsicherung aus Schritt 5 wieder her

Ich habe eine lebendige Erinnerung daran, dass dies eine Weile gut funktioniert hat, aber dann hat es nicht mehr funktioniert.

Das Protokoll in diesem Sicherungssatz endet bei LSN 38000000021300001, was zu früh ist, um auf die Datenbank angewendet zu werden. Eine neuere Protokollsicherung mit LSN 39000000006500001 kann wiederhergestellt werden.

Mikael Eriksson
quelle

Antworten:

3

Ist es möglich, eine "neuere Version" der LDF-Datei mit einer älteren Version der MDF-Datei zu kombinieren und Änderungen in der LDF protokolliert zu halten?

Angenommen, Sie möchten, dass die Datenbank transaktionskonsistent ist, nein.

Das Anhängen von MDF und LDF führt zu einem Fehler

In diesem Fall liegt es daran, dass die Protokollnummer aus irgendeinem Grund aufgrund der Metadaten der Datenbankdatei nicht gültig ist. Dies ist ein Symptom für den genauen Prozess, den Sie beschrieben haben. In diesem Fall ist es einfach besser, create databasedas Protokoll (oder die DBCC-Befehle) neu zu generieren, da die Datenbank in beiden Fällen nicht konsistent ist, was mit den oben beschriebenen Schritten bereits nicht möglich wäre. Sechs von einem, ein halbes Dutzend von dem anderen.

Gavin Belson
quelle