Von: Atif Shehzad | Updated: 2009-06-15 | Kommentare (4) | Verwandt: Mehr > Backup
Problem
Ich habe einen Backup-Plan für meine SQL Server Datenbanken implementiert. Ich mache täglich ein vollständiges Backup, unterstützt durch stündliche differenzielle Backups. Auf der Grundlage dieses Sicherungsplans wird ein Wiederherstellungsplan mit Ort und Zeitpunkt der im Plan genannten Sicherungen dokumentiert. Häufig muss ich den Test- oder Entwicklungsserver mit einer aktuellen Kopie der Produktionsdatenbank aktualisieren. Zu diesem Zweck mache ich eine vollständige Sicherung der benötigten Datenbank. Das Problem ist, dass solche Ad-hoc-Backups meine geplante Wiederherstellungssequenz im Falle einer notwendigen Wiederherstellung unterbrechen. Gibt es eine Möglichkeit, dass meine Ad-hoc-Backups die Sequenz meines Backup-Plans nicht unterbrechen?
Lösung
Glücklicherweise gibt es in SQL Server 2005 und aufwärts eine Backup-Option für eine solche Situation. Diese Backup-Option ist als Copy Only-Backup bekannt. Diese Option ist speziell für die Erstellung einer Ad-hoc-Sicherung gedacht, die die geplante Wiederherstellungssequenz für diese Datenbank nicht stört.
Nur-Kopie-Sicherungen können für die Erstellung einer Vollsicherung oder einer Transaktionsprotokollsicherung verwendet werden. Diese Option ist für differenzielle Backups nicht implementiert. In praktischen Szenarien werden Sie nur selten eine Nur-Kopie-Log-Sicherung erstellen müssen, jedoch kann die Nur-Kopie-Option häufig bei Vollsicherungen verwendet werden.
Obwohl die Nur-Kopie-Option für SQL Server 2005 verfügbar ist, ist es nicht möglich, sie mit SSMS in SQL 2005 zu erstellen. Wenn Sie SSMS 2008 haben, können Sie die GUI verwenden oder Sie müssen eine T-SQL-Anweisung verwenden, um Copy Only-Backups zu erstellen.
Zunächst sehen wir uns an, wie man mit SSMS 2008 ein Copy-Only-Backup erstellen kann
- Gehen Sie zum Fenster „Backup-Datenbank“ wie bei einem normalen Backup
- Unter dem Menü „Backup-Typ finden Sie ein Kontrollkästchen für „Copy OnlyBackup“
- Klicken Sie auf dieses Kontrollkästchen
- Füllen Sie alle anderen Informationen wie bei einer normalen Sicherung aus und klicken Sie auf OK
Hinweis: Das Kontrollkästchen für „Copy Only Backup“ ist auch für differentielle Backups aktiv, hat aber außer der Erstellung eines normalen differentiellen Backups keine weiteren Auswirkungen.
Zum Erstellen einer Nur-Kopie-Sicherung mit T-SQL können Sie den folgenden Befehl eingeben:
-- Create full backup with Copy Only optionBACKUP DATABASE AdventureWorks TO DISK = 'D:\WithoutCopyOnly_AdventureWorks.bak'WITH COPY_ONLYGO
Überprüfen des Konzepts
Bevor wir fortfahren, ist es gut, das Konzept zusammenzufassen, dass eine Vollsicherung mit der Nur-Kopie-Option unabhängig von der Reihenfolge Ihrer anderen normalen Sicherungen ist.Nachdem Sie also eine Sicherung mit der Option „Nur Kopie“ erstellt haben, können Sie mit dem Wiederherstellungsplan auf der Grundlage Ihrer geplanten Sicherungen arbeiten, ohne dass sich dies auf Ihren Wiederherstellungsprozess auswirkt.
Wir werden die LSN-Informationen (Log Sequence Number) verwenden, um die Vollsicherung zu verfolgen, die die Grundlage für die differenziellen Sicherungen ist. Zunächst notieren wir die LSN für die differentielle Basis der AdventureWorks-Datenbank.
--Script # 1: Note current differential base LSNSELECT DB_NAME(database_id) AS ,differential_base_lsn AS 'Note differential base LSN'FROM sys.master_filesWHERE database_id = DB_ID('AdventureWorks')AND type_desc = 'ROWS'GO
Die differentielle_Basis-LSN wirkt sich auf die Reihenfolge aus, in der eine Kombination von Sicherungen bei einer Wiederherstellung wiederhergestellt werden soll. Detaillierte Informationen über dieLSN einer beliebigen Datenbank können Sie auch der Tabelle msdb..backupset entnehmen.
Nun müssen wir bestätigen, dass eine Vollsicherung ohne die Option Copy Only die differential_base_lsn aktualisiert. Zu diesem Zweck geben wir einen Vollsicherungsbefehl ohne die Option „Nur Kopieren“ aus und notieren die Änderung der LSN, um zu beweisen, dass die aktualisierte differentielle Basis-LSN die LSN unserer letzten Vollsicherung ist.
--Script # 2: Create full backup and compare LSN information-- Create full backup -- Run script after changing Backup pathBACKUP DATABASE AdventureWorks TO DISK = 'D:\WithoutCopyOnly_AdventureWorks.bak'GO-- Get differential_base_lsn after full backupSELECT DB_NAME(database_id) AS ,differential_base_lsn AS 'Updated differential base LSN'FROM sys.master_filesWHERE database_id = DB_ID('AdventureWorks')AND type_desc = 'ROWS'GO-- Get LSN of recent full backup for match purposeSELECT database_name, backup_start_date, is_copy_only,first_lsn as 'LSN of full bakup'FROM msdb..backupset WHERE database_name = 'AdventureWorks'ORDER BY backup_start_date DESCGO
In der folgenden Ergebnismenge können wir überprüfen, dass die LSN für die Wiederherstellungsbasis der differentiellen Sicherung geändert wurde und mit der LSN unserer Vollsicherung übereinstimmt. Beide markierten LSNs sind gleich, was bestätigt, dass die letzte Sicherung unsere differentielle Basis ist.
Nun erstellen wir eine Vollsicherung mit der Option „Nur Kopieren“ und es wird bewiesen, dass die Vollsicherung mit der Option „Nur Kopieren“ die LSN der Differentialbase unserer Datenbank nicht beeinflusst. Mit anderen Worten, die Vollsicherung mit der Option „Nur Kopieren“ hat keinen Einfluss auf die Basis-Vollsicherung für die differenziellen Sicherungen.
--Script # 3: Create full backup with copy only option and compare LSN information-- Create full backup with copy only option-- Run script after changing Backup pathBACKUP DATABASE AdventureWorks TO DISK = 'D:\CopyOnly_AdventureWorks.bak'WITH COPY_ONLYGO-- Get differential_base_lsn after full backup with copy only optionSELECT DB_NAME(database_id) AS ,differential_base_lsn AS 'Un changed differential base LSN'FROM sys.master_filesWHERE database_id = DB_ID('AdventureWorks')AND type_desc = 'ROWS'GO-- Get LSN of recent full backup with copy only option for match purposeSELECT database_name, backup_start_date, is_copy_only,first_lsn as 'LSN of last full bakup'FROM msdb..backupset WHERE database_name = 'AdventureWorks'ORDER BY backup_start_date DESCGO
In der folgenden Abbildung können wir sehen, dass nach einer Vollsicherung mit der Option „Nur kopieren“ die differenzielle Basis-LSN unverändert ist und mit der LSN der vorherigen Vollsicherung übereinstimmt (beide sind rot markiert). Beachten Sie auch, dass die letzte Vollsicherung mit der Option „Nur kopieren“ ebenfalls vorhanden ist (grün markiert).
Die folgenden Überlegungen sind bei der Verwendung von Sicherungen mit der Option „Nur kopieren“ hilfreich.
- Die Option „Nur kopieren“ funktioniert auch für Datenbanken der Kompatibilitätsebene 80 in einer SQL Server 2005-Instanz.
- Transaktionsprotokollsicherungen mit der Option „Nur kopieren“ behalten den vorhandenen Protokollarchivierungspunkt bei, so dass die Transaktionsprotokolle der betreffenden Datenbank nicht abgeschnitten werden.
- Beim Wiederherstellen einer mit der Option „Nur kopieren“ erstellten Sicherung sind keine erweiterten Überlegungen erforderlich.
- Eine Vollsicherung mit der Option „Nur Kopieren“ kann nicht als Grundlage für die Wiederherstellung von differentiellen Sicherungen verwendet werden
- Eine Protokollsicherung mit der Option „Nur Kopieren“ kann für Datenbanken mit dem Wiederherstellungsmodell „Voll“ oder „Nur Bulk“ erstellt werden.
- Eine Vollsicherung mit der Option „Nur Kopieren“ kann für Datenbanken mit einem beliebigen Wiederherstellungsmodell erstellt werden.
Weitere Schritte
Wenn Sie eine Sicherung aus Ihrem Sicherungsplan herausnehmen, sollten Sie die Option „Nur Kopieren“ verwenden, um Verwirrung und Störungen Ihres Wiederherstellungsplans zu vermeiden. Denken Sie daran, dass die Nur-Kopie-Backups unabhängig von den normalen Backups sind.
- Wenn Sie also das nächste Mal Ihre Test- oder Entwicklungsumgebungen aktualisieren müssen, sollten Sie die Nur-Kopie-Option in Betracht ziehen, um Ihren Wiederherstellungsprozess nicht zu unterbrechen
- Für Informationen über Datenbank-Wiederherstellungsmodelle klicken Sie hier oder hier
- Hier ist ein verwandter Tipp über Nur-Kopie-Backups
Letzte Aktualisierung: 2009-06-15
Über den Autor
Alle meine Tipps ansehen
- Weitere SQL Server DBA-Tipps…