Warum TO DISK = N’NUL’
?
Ich verstehe nicht, warum Sie verwenden TO DISK = N’NUL’
:
BACKUP
DATABASE [test0916aj8CJ] TO DISK = N’NUL’
Wenn Sie dies tun, wird die Sicherung in NUL
(dh = nirgendwo / nichts) gespeichert und kann nicht verwendet werden, da ihre Datei nicht vorhanden ist.
Während NUL
kann auch als Ziel für Log - Sicherungen verwendet wird, sollte es auch nicht verwendet werden, vor allem auf Prod - Servern , weil LOGs verloren gehen und die Backup - Kette unterbrochen wird. (~ ähnlich wie a SHRINKFILE
)
LOG-Sicherung
Bevor Sie der Gruppe eine Datenbank hinzufügen, müssen Sie diese vorbereiten. Wenn Sie eine sekundäre Datenbank vorbereiten möchten, muss mindestens 1 Transaktionsprotokollsicherung erstellt und wiederhergestellt werden. Der Spiegel verwendet es, um herauszufinden, welche Transaktionen bereits in der sekundären Datenbank synchronisiert wurden und welche Transaktionen noch nicht mit der primären Datenbank synchronisiert sind.
Daher müssen Sie die Transaktionsprotokolle in der primären Datenbank sichern:
BACKUP LOG [test0916aj8CJ] TO DISK = N'....bak'
WITH COPY_ONLY, FORMAT, INIT, NAME = N'test0916aj8CJ-Transaction Log Backup', STATS = 10
Die COPY_ONLY
Option muss verwendet werden. Es stellt sicher, dass die Protokolle am Ende der LOG-Sicherung nicht abgeschnitten werden.
Primäre DB-Sicherungskette
Sie können eine Protokollsicherung jedoch nicht alleine wiederherstellen, dh ohne Sicherungskette (siehe auch Kin-Antwort). Dies bedeutet, dass die Transaktionsprotokollsicherung durchgeführt werden muss, nachdem eine vollständige Datenbanksicherung (+ ein optionales Differential, falls erforderlich) durchgeführt wurde.
Da die COPY_ONLY
Option die Sicherungskette nicht unterbricht, wird auch keine Sicherungskette erstellt. Die COPY_ONLY
Option kann nicht für die Datenbanksicherung verwendet werden.
Backups in der Reihenfolge:
- VOLLSTÄNDIGE Datenbanksicherung ohne die
COPY_ONLY
Option
- Optionale differenzielle Sicherung
- 1 LOG Backup mit
COPY_ONLY
Option
- ein weiteres (oder mehr) LOG-Backup, falls erforderlich ...
Stellen Sie die sekundäre Datenbank wieder her
Dann muss die Datenbanksicherung auf der Sekundärseite wiederhergestellt werden (+ Differential).
Es muss mit der NORECOVERY
Option wiederhergestellt werden, da Sie auch die LOG-Sicherung (en) wiederherstellen möchten, sobald die vollständige Sicherung wiederhergestellt wurde.
Schließlich stellen Sie die LOG-Sicherung wieder her. Sie müssen die NORECOVERY
Option weiterhin verwenden, da der Spiegel weiterhin Transaktionen wiederherstellt, sobald diese vorhanden sind.
- Stellen Sie die vollständige Sicherung mit der
NORECOVERY
Option wieder her
- Stellen Sie die DIFF-Sicherung mit der
NORECOVERY
Option wieder her
- Stellen Sie alle LOG-Sicherungen der Reihe nach mit der
NORECOVERY
Option wieder her
Lassen Sie uns alles zusammenfügen (passen Sie es an Ihre Umgebung an)
Auf dem Primärserver ausführen:
USE master
Go
BACKUP DATABASE [test0916aj8CJ] TO DISK = N'....bak'
WITH FORMAT, INIT, NAME = N'test0916aj8CJ-Full Database Backup', STATS = 10
GO
BACKUP LOG [test0916aj8CJ] TO DISK = N'....bak'
WITH COPY_ONLY, FORMAT, INIT, NAME = N'test0916aj8CJ-Transaction Log Backup', STATS = 10
GO
Führen Sie auf dem sekundären Server Folgendes aus:
USE master
Go
RESTORE DATABASE [test0916aj8CJ] FROM DISK = N'....bak'
WITH FILE = 1, NORECOVERY, NOUNLOAD, REPLACE, STATS = 10
GO
RESTORE LOG [test0916aj8CJ] FROM DISK = N'....bak'
WITH FILE = 1, NORECOVERY, NOUNLOAD, STATS = 10
Anschließend können Sie die neue sekundäre Datenbank zur Verfügbarkeitsgruppe hinzufügen ...
Optionale Aktionen
- Es ist besser, die DISK-Option auf einen freigegebenen Ordner festzulegen, der sowohl vom primären als auch vom sekundären Server verfügbar ist.
- Es ist auch besser, DB-Dateien auf einer ähnlichen Festplatte und einem ähnlichen Speicherort sowohl auf dem primären als auch auf dem sekundären Server zu speichern.