Oracle Backup und Recovery Einfach, schnell und sicher Johannes Ahrends Technical Director Quest Software GmbH DOAG Beirat für Hochschul Community 2010 Quest Software, Inc. ALL RIGHTS RESERVED
Die innovativen Lösungen von Quest unterstützen Unternehmen bei den größten Herausforderungen des IT- Managements, verbessern die Effizienz der IT-Abläufe und helfen, Zeit und Kosten zu sparen. 2
Was bedeutet das für Backup & Recovery? Oracle Datenbanken einfach sichern Verschlüsselung von Backups Schnelles Restore und Recovery Backup Reporter 3
Fragen Frage 1: Wer von Ihnen weiß genau, wie lange das Backup der gesamten Datenbank dauert? Frage 2: Wer von Ihnen weiß genau, wie lange das Restore und Recovery der gesamten Datenbank dauert? Frage 3: Wer von Ihnen musste schon mal einen einzelnen Tablespace, Datafile oder gar Block wieder herstellen? Frage 4: Wer von Ihnen musste schon einmal eine Datenbank wieder herstellen? und musste sonst noch etwas wieder hergestellt werden? 4
Demo Sichern einer Oracle Datenbank 2010 Quest Software, Inc. ALL RIGHTS RESERVED
Online oder Offline Backup? Offline Backup Shutdown der Datenbank (Normal, immediate, transactional) Backup der Datenbankdateien (außer Redolog) Best Practice: mounten der Instanz und lesen der Informationen aus den Controlfiles (z.b. v$datafile, v$controlfile, ) Online Backup Nur im Archivelog Modus Ohne RMAN: Switch in Backup mode (ALTER BEGIN BACKUP) Full Block Logging Copy der Datendateien Beenden des Backup Modes (ALTER END BACKUP) Mit RMAN: Einfache Sicherung der Datendateien 6
RMAN Backup Default: Online Backup (im Archivelog Modus) Offline Backup mit Instanz im Mount Mode RMAN sichert nur relevante Daten Kein Backup des TEMP-Tablespaces Keine Sicherung von unbenutzten Blöcken Informationen über Backup Controlfile Alternativ: RMAN Katalog in separater Datenbank Backup Methoden Full Backup Incremental / Differential Backup Database Clone 7
RMAN Benutzung Kompliziert: rman target / RMAN> run { 2> # backup the database to disk 3> allocate channel d1 type disk; 4> backup 5> full 6> tag full_db 7> format '/backups/db_%t_%s_p%p' 8> (database); 9> release channel d1; 10> } Oder einfach: rman target / RMAN> backup database; 8
Einfache RMAN Einrichtung rman target / RMAN> show all; using target database control file instead of recovery catalog RMAN configuration parameters for database with db_unique_name JARAC11G are: CONFIGURE RETENTION POLICY TO REDUNDANCY 1; # default CONFIGURE BACKUP OPTIMIZATION OFF; # default CONFIGURE DEFAULT DEVICE TYPE TO DISK; # default CONFIGURE CONTROLFILE AUTOBACKUP OFF; # default CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '%F'; # default CONFIGURE DEVICE TYPE DISK PARALLELISM 1 BACKUP TYPE TO BACKUPSET; # default CONFIGURE SNAPSHOT CONTROLFILE NAME TO '/u01/app/oracle/product/11.1.0/db_1/dbs/snapcf_jarac11g2.f'; # default RMAN> CONFIGURE CONTROLFILE AUTOBACKUP ON; RMAN> CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '/u02/orabackup/%d/%f.bck'; RMAN> CONFIGURE CHANNEL DEVICE TYPE DISK FORMAT '/u02/orabackup/%d/%d-%y-%m-%d-%p-%s.bck'; 9
Warum Controlfile Autobackup? Im Controlfile steht die Konfiguration der Datenbank Ab Oracle 11g wird das Controlfile automatisch gesichert, wenn sich die Konfiguration der Datenbank ändert Im Controlfile stehen die Informationen über die Backups Nur über das Auslesen des Controlfiles kann die Datenbank wieder hergestellt werden (Ausnahme: Sicherung mit Backup Catalog) Mit dem Controlfile Autobackup werden auch die Serverparameter gesichert (spfile) 10
Erstellen von Backups Best Practice Backup Überprüfen der Archivelogs (Crosscheck) Sicherung der Datenbank Sicherung aller Archivelogs, die noch nicht zweimal gesichert worden sind Löschen aller Archivelogs, die älter als 5 Tage sind Löschen aller Backups, die nicht mehr benötigt werden rman target / RMAN > CROSSCHECK ARCHIVELOG ALL; BACKUP DATABASE; BACKUP ARCHIVELOG ALL NOT BACKED UP 2 TIMES; DELETE ARCHIVELOG ALL COMPLETED BEFORE 'SYSDATE - 5'; DELETE EXPIRED BACKUP; 11
RMAN Backup mit dem Oracle Scheduler Shell-Skript unter Unix: #!/bin/sh PATH=/usr/local/bin:/bin:/usr/bin export PATH if [ $# -ne 1 ] then echo "Usage: $0 [ORACLE_SID]" exit fi ORACLE_SID=$1 ORAENV_ASK=NO. oraenv unset ORAENV_ASK shift rman target / <<EOF CROSSCHECK ARCHIVELOG ALL; BACKUP DATABASE; BACKUP ARCHIVELOG ALL NOT BACKED UP 2 TIMES; DELETE ARCHIVELOG ALL COMPLETED BEFORE'SYSDATE - 5'; EOF 12
Scheduler Program 13
Fast Recovery Area*) (FRA) OS-Bereich für die Verwaltung von: Flashback Logs Archivierte Redologs Backups der Datenbank Backups der Kontrolldateien Block-Change-Tracking-Dateien Serverparameter: db_recovery_file_dest db_recovery_file_dest_size Variable USE_DB_RECOVERY_FILE_DEST Default für alle Backups und archive_log_dest_1 Reclaimable Space wird automatisch freigegeben (von dem Prozess, der den Platz benötigt) *) in älteren Dokumenten auch Flash Recovery Area 14
Sicherung auf Tape Einbinden einer Mediamanagement Library: libobk.so Einrichten des Namens der Backup-Dateien Channel Device Type SBT_TAPE (System Backup To) Änderung der Default Backup Strategie Default Device Type = SBT_TAPE rman target / RMAN> CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE 'SBT_TAPE' TO '/u02/orabackup/%d/%f.tbck'; RMAN> CONFIGURE CHANNEL DEVICE TYPE 'SBT_TAPE' FORMAT '/u02/orabackup/%d/%d-%y-%m-%d-%p-%s.tbck'; RMAN> CONFIGURE DEFAULT DEVICE TYPE TO 'SBT_TAPE'; 15
Sicherung auf Tape Problem: Tape ist ein Streaming Device DLT1 => 3 MB/s DLT-S4 => 60 MB/s Was passiert, wenn die Datenrate zu gering ist? Tape hält an! write br rew write br rew write br 16
Backup Herausforderungen Datenbanken werden immer größer Backups werden größer Backups dauern länger Backup Fenster werden immer kleiner Anzahl Datenbanken nimmt zu Tape Devices werden immer schneller 17
Komprimierung von Backups Einsparung von Diskspace bzw. Tapes Schnelleres Backup durch weniger Schreibzugriffe und geringerer Netzwerkbandbreite GEFAHR: längere Restore Zeiten => LiteSpeed Engine for Oracle Backup RMAN Restore DB Restore TS Backup Size Normal 00:25:05 00:18:35 00:12:55 49,15 GB RMAN BASIC 00:45:26 00:51:06 00:35:46 9,04 GB LiteSpeed Level 1 00:20:57 00:14:56 00:05:35 12,67 GB LiteSpeed Level 4 01:08:58 00:27:05 00:19:05 7,00 GB RMAN MEDIUM 00:25:46 00:16:45 00:07:16 11,21 GB 18
LiteSpeed Engine for Oracle Architektur Disk RMAN LiteSpeed Engine for Oracle Oracle DB 19
Backup Verschlüsselung Sicherungen sind sensible Informationen Export / Import für Austausch von Informationen bzw. sicherung in die Cloud % leo leo> encrypt test1 -- Verschlüsselungskennwort yaghagj1upkmhbgcg-c2mj2v %leo exp system/manager owner=demo file=expdat.quc level=4 crypto=aes128 key=yaghagj1upkmhbgcg-c2mj2v LiteSpeed Engine for Oracle verschlüsselt schnell und effektiv (AES128, AES192, AES256,3DES) Backupzeit TS Restore Größe (GB) RMAN 00:12:05 00:06:51 14,72 LEO AES 256 00:13:18 00:08:21 6,16 20
Unused Block Compression Überspringt unbenutzte / leere Blöcke Nur bei DEVICE TYPE DISK (außer bei Secure Backup) Bei DEVICE TYPE SBT_TAPE nicht genutzt Vorsicht! Die Restore Zeiten können sich drastisch verlängern! Beispiel: Sicherung eines 5 GB großen (leeren) Tablespaces vs. Eines 5 MB großen (leeren) Tablespaces: Tablespacegröße Backupgröße Backupzeit Restorezeit 5 GB 1,10 MB 1 Sekunde 70 Sekunden 5 MB 1,03 MB 1 Sekunde 1 Sekunde 21
Wiederherstellung Sicherungen sind kein Selbstzweck! Optimierung muss hinsichtlich schnellem Restore und Recovery für folgende Fälle erfolgen: 1. Full Database Recovery 2. Point-In-Time Recovery 3. Tablespace / Datafile Recovery 4. Block-Level Recovery Laden einer Sicherung von Band ist Zeitintensiv Besser: eine Sicherung auf Disk belassen Full Database Restore ist in der Regel mit einem System Restore gleichzusetzen ( Server abgebrannt ) Auch OS, Oracle SW, 3rd-Party Software sichern 22
Datafile Recovery Informationen werden aus dem Controlfile gelesen! RMAN> restore datafile '/u01/oradata/prod11g/users01.dbf'; Starting restore at 09-FEB-09 using target database control file instead of recovery catalog allocated channel: ORA_SBT_TAPE_1 channel ORA_SBT_TAPE_1: SID=99 device type=sbt_tape channel ORA_SBT_TAPE_1: LiteSpeed Engine for Oracle allocated channel: ORA_DISK_1 channel ORA_DISK_1: SID=100 device type=disk channel ORA_SBT_TAPE_1: starting datafile backup set restore channel ORA_SBT_TAPE_1: specifying datafile(s) to restore from backup set channel ORA_SBT_TAPE_1: restoring datafile 00004 to /u01/oradata/prod11g/users01.dbf channel ORA_SBT_TAPE_1: reading from backup piece /u02/orabackup/prod11g/prod11g-2009-02-09-1-156.tbck channel ORA_SBT_TAPE_1: piece handle=/u02/orabackup/prod11g/prod11g-2009-02-09-1-156.tbck tag=tag20090209t112512 channel ORA_SBT_TAPE_1: restored backup piece 1 channel ORA_SBT_TAPE_1: restore complete, elapsed time: 00:00:07 Finished restore at 09-FEB-09 23
Database Recovery 1. Startup nomount der Instanz mit minimalkonfiguration db_name control_files 2. Restore des spfiles RESTORE SPFILE FROM <controlfilebackup> 3. Restart der Datenbank (wieder nomount) 4. Restore des Controlfiles RESTORE CONTROLFILE FROM <controlfilebackup> 5. Mount database 6. Restore der Datenbank RESTORE DATABASE; 7. Recovery der Datenbank RECOVER DATABASE; 8. ÖFFEN DER Datenbank mit RESETLOGS 24
Backup Reporter Übersicht über alle RMAN-Backups (Dauer, Größe) Laufzeitanalyse Analyse der eingestellten Parameter Definition von Policies Übersicht über alle fehlerhaften Backups Konsolidierung von RMAN Katalog und V$-Informationen 25
Backup Wachstum 26
Backup Performance 27
Backup Policies 28
29
Zusammenfassung Backup mit RMAN ist einfach und auch das Restore und Recovery Direkte Sicherung auf Band muss immer wieder überprüft werden => Drastische Laufzeitverschlechterung möglich Komprimierung ermöglicht ev. Backup to Disk to Tape Verschlüsselung wird immer wichtiger (Backup to Cloud) Backup Reporter hilft die Übersicht zu bewahren 30
Fragen? Johannes Ahrends johannes.ahrends@quest.com 2010 Quest Software, Inc. ALL RIGHTS RESERVED