Teil I von II (musste meine Antwort teilen)
Hier gibt es ein oder zwei Dinge, über die man nachdenken muss. Meiner Meinung nach haben Sie möglicherweise eine Abkürzung im Denkprozess gewählt. Ich werde es erklären, während ich diese Annahme mache ...
Vielleicht möchten Sie einen kurzen Blick auf meine akzeptierte Antwort hier werfen , die in Bezug auf die Frage " Bedarfsvorschlag zur Sicherungsstrategie [geschlossen]" veröffentlicht wurde , um Ihnen einige Ideen zu RTO und RPO zu geben.
Warum? Weil das Einstellen @CleanupTime=0
eine schlechte Idee sein könnte ...
Beantworten Sie zuerst Ihre Frage.
Ist es ein Fehler in Olas Skript? - Nein. Ola hat sein Skript so konzipiert, dass es nach der letzten BACKUP DATABASE...
(vollständigen Sicherung) sucht und dann die Transaktionsprotokollsicherungen ( BACKUP LOG ...
) löscht, die vor dieser Sicherung durchgeführt wurden, und nur dann, wenn die @CleanupTime
niedrigere als bei der vollständigen Sicherung ist.
Dies ist ein ausfallsicherer Mechanismus, der nicht als allgemeine Funktion verwendet werden soll.
Funktioniert wie geplant, da a BACKUP DATABASE ... WITH COPY_ONLY...
immer noch eine vollständige Sicherung ist .
Sicherheit zuerst
Wenn Sie eine Sicherung mit der BACKUP DATABASE ... COPY_ONLY...
Option erstellen und anschließend erstellen BACKUP LOG...
, können Sie die Datenbank mithilfe der vollständigen COPY_ONLY
Sicherung und der verfügbaren Transaktionsprotokollsicherungen weiterhin in einem konsistenten Zustand wiederherstellen .
Ich habe dies mit meiner StackExchange-Datenbank getestet:
- Manuelles Erstellen eines
COPY_ONLY
Backups
- Einige Daten ändern
- Durchführen einer
BACKUP LOG ...
Verwendung von Ola-Skripten
- Datenbank wiederherstellen
Manuelle Sicherung mit COPY_ONLY
---------------------------------------------
BACKUP DATABASE [StackExchange] TO DISK = 'C: \ adhoc \ StackExchange_Full_CopyOnly_20171221_082242.bak'
MIT COPY_ONLY, COMPRESSION, RETAINDAYS = 3, NOFORMAT, NOINIT, NAME = N'StackExchange-Full Backup Sichern ', SKIP, NOREWIND,
NOUNLOAD, STATS = 10, CHECKSUM
---------------------------------------------
10 Prozent verarbeitet.
21 Prozent verarbeitet.
31 Prozent verarbeitet.
40 Prozent verarbeitet.
50 Prozent verarbeitet.
61 Prozent verarbeitet.
70 Prozent verarbeitet.
80 Prozent verarbeitet.
91 Prozent verarbeitet.
376 Seiten für die Datenbank 'StackExchange', Datei 'StackExchange' in Datei 1 verarbeitet.
100 Prozent verarbeitet.
2 Seiten für die Datenbank 'StackExchange', Datei 'StackExchange_log' in Datei 1 verarbeitet.
BACKUP DATABASE hat 378 Seiten in 0,027 Sekunden (109,103 MB / s) erfolgreich verarbeitet.
---------------------------------------------
Fertig
Sicherung des Transaktionsprotokolls mit Olas Skripten
Datum 21.12.2017 08:29:06
Protokollauftragsverlauf (OLA DatabaseBackup - USER_DATABASES - LOG)
Schritt ID 1
Server MYNOTEBOOK
Jobname OLA DatabaseBackup - USER_DATABASES - LOG
Schrittname OLA DatabaseBackup - USER_DATABASES - LOG
Dauer 00:00:01
SQL-Schweregrad 0
SQL-Nachrichten-ID 0
Betreiber per E-Mail
Operator Net gesendet
Betreiber ausgelagert
Wiederholungsversuche 0
Botschaft
Als Benutzer ausgeführt: NT Service \ SQLSERVERAGENT. ... 557.0 Edition: Developer Edition (64-Bit) Vorgehensweise: [msdb]. [Dbo]. [DatabaseBackup] Parameter: @Databases = 'USER_DATABASES', @Directory = 'C: \ SQL \ Backup', @BackupType = 'LOG', @Verify = 'Y', @CleanupTime = 48, @CleanupMode = 'AFTER_BACKUP', @Compress = NULL, @CopyOnly = 'N', @ChangeBackupType = 'N', @BackupSoftware = NULL, @CheckSum = 'Y', @BlockSize = NULL, @BufferCount = NULL, @MaxTransferSize = NULL, @NumberOfFiles = NULL, @CompressionLevel = NULL, @Description = NULL, @Threads = NULL, @Throttle = NULL, @Encrypt = 'N' , @EncryptionAlgorithm = NULL, @ServerCertificate = NULL, @ServerAsymmetricKey = NULL, @EncryptionKey = NULL, @ReadWriteFileGroups = 'N', @OverrideBackupPreference = 'N', @NoRecovery = '
[verkürzt]
... Prozess-Exit-Code 0. Der Schritt war erfolgreich.
Wiederherstellen
USE [master]
-- Restore the COPY_ONLY Backup
RESTORE DATABASE [StackExchange] FROM DISK = N'C:\adhoc\StackExchange_Full_CopyOnly_20171221_082242.bak'
WITH REPLACE, FILE = 1, NORECOVERY, NOUNLOAD, STATS = 5
-- Restore an OLA Transaction Log backup
RESTORE LOG [StackExchange] FROM DISK = N'C:\SQL\Backup\MYNOTEBOOK\StackExchange\LOG\NB31710_StackExchange_LOG_20171221_082906.trn'
WITH FILE = 1, NOUNLOAD, STATS = 5
Möglicherweise beträgt der Unterschied in den Zeitstempeln nicht ca. 7 Minuten.
Ergebnisse
6 Prozent verarbeitet.
10 Prozent verarbeitet.
16 Prozent verarbeitet.
21 Prozent verarbeitet.
25 Prozent verarbeitet.
31 Prozent verarbeitet.
36 Prozent verarbeitet.
40 Prozent verarbeitet.
46 Prozent verarbeitet.
50 Prozent verarbeitet.
55 Prozent verarbeitet.
61 Prozent verarbeitet.
65 Prozent verarbeitet.
70 Prozent verarbeitet.
76 Prozent verarbeitet.
80 Prozent verarbeitet.
86 Prozent verarbeitet.
91 Prozent verarbeitet.
95 Prozent verarbeitet.
100 Prozent verarbeitet.
376 Seiten für die Datenbank 'StackExchange', Datei 'StackExchange' in Datei 1 verarbeitet.
2 Seiten für die Datenbank 'StackExchange', Datei 'StackExchange_log' in Datei 1 verarbeitet.
RESTORE DATABASE hat 378 Seiten in 0,021 Sekunden (140,276 MB / s) erfolgreich verarbeitet.
100 Prozent verarbeitet.
Verarbeitete 0 Seiten für die Datenbank 'StackExchange', Datei 'StackExchange' in Datei 1.
2 Seiten für die Datenbank 'StackExchange', Datei 'StackExchange_log' in Datei 1 verarbeitet.
RESTORE LOG hat 2 Seiten in 0,005 Sekunden (2,441 MB / s) erfolgreich verarbeitet.
Zusammenfassung
Olas Skript funktioniert wie geplant. Wir haben überprüft, dass a BACKUP DATABASE ... WITH COPY_ONLY...
und a zusätzlich BACKUP LOG ...
zusammenarbeiten. Die ausfallsichere Funktion stellt sicher, dass Sie Ihre Datenbank mit der letzten vollständigen Sicherung (COPY_ONLY oder nicht) und den verfügbaren Transaktionsprotokollsicherungen wiederherstellen können.
(Bitte lesen Sie Teil II von II für weitere Antworten)