Flashback

Werbung
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
Herunterladen