IT-Symposium 2005 Mike Dietrich BU Database Technologies ORACLE Deutschland GmbH Page 1 www.decus.de 1 IT-Symposium 2005 Total synchron Daten retten ohne Downtime ?! Oracle DataGuard und Flashback Agenda Oracle DataGuard Daten retten ohne Downtime Flashback Zusatznutzen Page 2 www.decus.de 2 IT-Symposium 2005 Einführung y Die Kardinal-Fragen: – Was kostet ein Ausfall pro Minute/Stunde/Tag ? – Was kostet Datenverlust ? – Wie sichtbar ist ein Ausfall ? – Wieviel Downtime ist gestattet ? – Wie stark sind die Nerven der DBA's ? Einführung Wie ... ??? Batch-Job ... Daten gelöscht ... aus Versehen ... ?!? Page 3 www.decus.de 3 IT-Symposium 2005 Agenda Oracle DataGuard Daten retten ohne Downtime Flashback Zusatznutzen Oracle DataGuard y Desaster Recovery Lösung für Oracle DB's y Kostenfreies Feature der Oracle Enterprise Edition y Automatisiert das Anlegen und den Betrieb einer oder mehrerer Standby-Datenbanken y Ausfall der Produktionsdatenbank Ö Standby-Datenbank übernimmt y x1000km Entfernung möglich Page 4 www.decus.de 4 IT-Symposium 2005 Oracle DataGuard y Datenbank-Releases – – gleicher Release-Stand gleiche Bit-ness y Betriebssystem-Releases – – – gleiches OS unterschiedliche Bit-ness möglich, aber nicht empfohlen unterschiedliche Release-Stände möglich, aber nicht empf. y Empfehlung: – identische Hardware, identische Betriebssysteme, identische Patchlevel, identische Oracle-Patches Oracle DataGuard Clients Clients Primary Site Standby Site DIGITAL DATA STORAGE Backup Failover/Switchover Log Informationen Gap Detection No Data Loss Protection Modes Broker Agent Broker Agent Data Guard Broker Page 5 www.decus.de 5 IT-Symposium 2005 ? Oracle DataGuard y 2 Typen von Standby-Datenbanken – Physical Standby y Redolog-Dateien werden recovert y Entweder Recovery Modus oder Read-Only y Blockidentische Kopie der Produktionsdatenbank ÖDesaster Recovery (Failover) – Logical Standby y Redolog-Dateien werden extrahiert y SQL-Statements werden auf die Standby angewendet y Logische Kopie der Produktionsdatenbank ÖOnline Reporting, Rolling Upgrades Oracle DataGuard y 3 Möglichkeiten zur Administration – Pures SQL DataGuard Broker und DGMGRL – DataGuard Broker und EM GridControl – Page 6 www.decus.de 6 IT-Symposium 2005 Oracle DataGuard - 10g New Features y init-Parameter LOG_ARCHIVE_DEST_n: VALID_FOR-Attribute – – – erlaubt eine init.ora für alle Rollen kein Tauschen der Init-Dateinen mehr nach Failover oder Switchover Beispiel: *.log_archive_dest_2= 'SERVICE=phys LGWR ASYNC VALID_FOR=(ONLINE_LOGFILES, ALL_ROLES) DB_UNIQUE_NAME=PHYS' Oracle DataGuard - 10g New Features Clients Primary Site Standby Site REAL TIME APPLY • Redo-Records werden sofort angewendet • kein Warten auf ARCH Broker Agent Broker Agent Data Guard Broker Page 7 www.decus.de 7 IT-Symposium 2005 Oracle DataGuard - 10g New Features Oracle Net Transaktionen Up-to-date Standby DB LGWR Online Redo Logs Primär Datenbank MRP/ LSP RFS Standby Redo Logs Real Time Apply ARCH ARCH Archivierte Redo Logs Archivierte Redo Logs Oracle DataGuard - 10g New Features y Engere Synchronisation der Standby mit der Poduktivdatenbank – Up-to-Date Echt-Zeit-Reporting – Schnelles Switchover und Failover y Verringert geplante und ungeplante Ausfallzeiten y Bessere Recovery Time Objective (RTO) beim Desaster Recovery y Kein Delay !!! y SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE; Physical Standby y SQL> ALTER DATABASE START LOGICAL STANDBY APPLY IMMEDIATE; Logical Standby Page 8 www.decus.de 8 IT-Symposium 2005 Agenda Oracle DataGuard Daten retten ohne Downtime Flashback Zusatznutzen Flashback Logische Korruptionen, die durch Benutzerfehler entstehen, sind für Benutzerca. 40% aller Ausfälle Fehler verantwortlich !!! Andere Ursachen für Ausfälle Page 9 www.decus.de 9 IT-Symposium 2005 Flashback y Traditioneller Ansatz: Backup vom Tape einspielen Ö Recovery mit archivierten Logfiles + Online Redologs Fehler F e h l e r b e h e b u n g t y Mit Flashback: Einfach die Daten zum Zeitpunkt X aus dem Flashback-Log wiederherstellen - ein Kommando !!! Fehler Fehler- t behebung Flashback y 3 Ausprägungen von FLASHBACK – Flashback Query Versions Query Transaction Query Ö Undo Segmente – Flashback Table / Drop – Flashback Database Ö Recycle Bin Point-In-Time-Recovery Kein Restore des Backups Nahtlose Integration in den RMAN Ö Flashback Logs Page 10 www.decus.de 10 IT-Symposium 2005 Flashback Disk Write geänderter Block Rückspulknopf Blockinhalt vorherige Versionen Flashback Log Enthält vorherige Blockinhalte in der Datenbank Flashback y Flashback Konfiguration: Flashback Log SQL> ALTER DATABASE FLASHBACK ON; Festlegen der Vorhaltezeit Flash Recovery Area Ö Initialisierungsparameter (init.ora / spfile) db_recovery_file_dest db_recovery_file_dest_size db_flashback_retention_target [Default: 1440] Page 11 www.decus.de 11 IT-Symposium 2005 Agenda Oracle DataGuard Daten retten ohne Downtime Flashback Zusatznutzen DataGuard und Flashback Real Time Apply FLASHBACK ON FLASHBACK ON Page 12 www.decus.de 12 IT-Symposium 2005 Szenarien DataGuard und Flashback I. Flashback auf PHYS Standby Ö Ziel: Wiederherstellen von Daten II. Flashback auf PROD Ö Ziel: PITR auf Produktion ohne Verlust der Standby III. Flashback nach Failover zu PHYS Ö Ziel: kein Neuaufbau der Standby nach Failover I. Flashback auf PHYS • Ausgangspunkt: TRUNCATE TABLE TRUNCATE TABLE • Ziel: Daten wiederherstellen, keine Downtime auf PROD • Vorgehensweise: 1) 2) 3) 4) 5) PHYS mit FLASHBACK STANDBY DATABASE zurückfahren PHYS read-only öffnen Benötigte Daten exportieren Automatische Resynchronisation der Standby Daten auf PROD wieder einspielen Page 13 www.decus.de 13 IT-Symposium 2005 I. Flashback auf PHYS PHYS: PROD: SQL> select current_scn from v$database; v$database; SQL> truncate table scott.emp; scott.emp; SQL> select oldest_flashback_scn from v$flashback_database_log; v$flashback_database_log; SQL> select current_scn from v$database; ; v$database SQL> truncate table scott.emp; scott.emp; SQL> shutdown immediate; SQL> select oldest_flashback_scn SQL> startup mount; mount; SQL> shutdown immediate; from v$flashback_database_log; v$flashback_database_log SQL> flashback standby;database SQL> ; mount to scnstartup <CURRENT_SCN mount; von PROD>; alter database open read only; only; SQL> flashback SQL> standby database $> exp scott/ scott/tiger tables=emp to scndatabase <CURRENT_SCN von PROD>; SQL> shutdown immediate; SQL> alter open read only; only; SQL> startup mount; ; mount $> exp scott/ / tiger tables=emp scott alter database recover managed SQL>SQL> shutdown immediate; standby database using current SQL> startup mount; logfile disconnect; ;; disconnect mount SQL> alter database recover managed ** automatische Synchronisation ** standby using current imp/tiger scott/ /tiger database file=exp.dmp scott $> $> imp scott/ file=exp.dmp scott ** Daten stehen wieder zur Verfügung ** ** Daten stehen wieder zur Verfügung logfile disconnect; ** ** Keine Downtime auf der PROD-DB ** disconnect; ** Keine Downtime auf der Synchronisation PROD-DB ** ** automatische ** Agenda Oracle DataGuard Daten retten ohne Downtime Flashback Zusatznutzen Page 14 www.decus.de 14 IT-Symposium 2005 II. Flashback auf PROD • Ausgangspunkt: Point-In-Time-Recovery der PROD-Datenbank notwendig PITR • Ziel: Erhalt der Standby trotz RESETLOGS auf PROD • Vorgehensweise: 1) 2) 3) 4) 5) Flashback Database auf PROD als PITR Öffnen der PROD mit OPEN RESETLOGS RESETLOGS_CHANGE#-2 auslesen FLASHBACK STANDBY DATABASE auf PHYS durchführen Automatische Resynchronisation von PHYS II. Flashback auf PROD PHYS: PROD: SQL> select current_scn from v$database; SQL> update emp set sal=1; SQL> commit; SQL> shutdown abort; SQL> startup mount; SQL> flashback database to scn <CURRENT_SCN von oben>; SQL> alter database open resetlogs; resetlogs; SQL> select resetlogs_change#resetlogs_change#-2 from v$database; SQL> select sal from scott.emp; ** SQL> select current_scn from v$database; SQL> update emp set sal=1; SQL> commit; SQL> flashback database to scn SQL> shutdown abort; <CURRENT_SCN von oben>; SQL> startup mount; SQL> alter database open resetlogs; ; SQL> shutdown immediate; resetlogs Daten stehen wieder zur Verfügung ** SQL> shutdown immediate; SQL> startup mount; SQL> select resetlogs_change#2mount; resetlogs_change# flashback-standby database SQL>SQL> startup to scn <RESETLOGS_CHANGE# -2 P>; <RESETLOGS_CHANGE#SQL> shutdown immediate; from v$database; SQL> flashback standby database SQL> shutdown immediate; SQL> startup mount; mount; SQL> SQL> select sal<RESETLOGS_CHANGE# scott.emp; tostartup scn RESETLOGS_CHANGE#-2 Prod >; <from SQL> alter database recover managed SQL>stehen alter database recover managed ** Daten wieder zur Verfügung standby database using** current logfile disconnect; standby database using current ** automatische Synchronisation ** logfile disconnect; ** automatische Synchronisation ** Page 15 www.decus.de 15 IT-Symposium 2005 III. Flashback nach Failover • Ausgangspunkt: Failover von PROD nach PHYS ist erfolgt • Ziel: Neuaufbau der Standby-Datenbank umgehen • Vorgehensweise: 1) 2) 3) 4) 5) Failover von PROD nach PHYS ist erfolgt - PHYSalt ist PRODneu Flashback der PRODproblem bis STANDBY_BECAME_PRIMARY_SCN Flashback Logs bereinigen Standby-Controlfile anlegen Log-Transport wiedereinschalten und ggf. Switchover III. Flashback nach Failover exex-PHYS/newPHYS/new-Prod: exex-PROD/newPROD/new-PHYS: SQL> select standby_became_primary_scn from v$database; SQL> select standby_became_primary_scn from immediate; v$database; SQL> shutdown SQL> mount; SQL> startup flashback database to scn <STANDBY_BECAME_PRIMARY_SCN>; STANDBY_BECAME_PRIMARY_SCN>; SQL> alter database flashback off; SQL> alter database create standby SQL> alter system set SQL> alter system set log_archive_dest_state_2=enable; controlfile as <filename> name>; ; <file SQL> alter database log_archive_dest_state_2=enable; recover managed SQL> standbyshutdown database database usingimmediate; current recover managed SQL> alter logfile disconnect; SQL> startup mount standby database using current ** Jetzt kontrollierter Rollentausch ** SQL> alter database flashback on; logfile disconnect; ** (Switchover) möglich, um zur ** SQL> shutdown immediate; SQL> startup mount; SQL> flashback database to scn <STANDBY_BECAME_PRIMARY_SCN>; STANDBY_BECAME_PRIMARY_SCN>; SQL> alter database flashback off; SQL> alter database create standby controlfile as <filename> ; <filename>; SQL> shutdown immediate; SQL> startup mount SQL> alter database flashback on; ** Ausgangssituation zurückzukehren ** ** Jetzt kontrollierter Rollentausch ** ** (Switchover) möglich, um zur ** ** Ausgangssituation zurückzukehren ** Page 16 www.decus.de 16 IT-Symposium 2005 Ende gut, alles gut ... :-) QUESTIONS ANSWERS Page 17 www.decus.de 17 IT-Symposium 2005 Page 18 www.decus.de 18