Problém 27
U klienta nastala potřeba udělat Flashback databáze. Databáze je nastavená správně a přesto se Flashback nezdařil. Při pokusu se objevovala chyba.
SQL> flashback database to timestamp to_timestamp ('2010-06-16 13:00:00','yyyy-mm-dd hh24:mi:ss'); flashback database to timestamp to_timestamp ('2010-06-16 13:00:00','yyyy-mm-dd hh24:mi:ss') * ERROR at line 1: ORA-38754: FLASHBACK DATABASE not started; required redo log is not available ORA-38761: redo log sequence 14 in thread 1, incarnation 2 could not be accessed
Řešení:
Řešením je provést Flashback z RMANa, protože on vám automaticky dohraje i archívní soubory, které vám chybí.
1) Zjistit SCN číslo
Podíval jsem se jaké SCN číslo odpovídá času, po který se potřebujeme dostat. Potřebnou informaci získáte z alert.logu
Wed Jun 16 12:59:49 2010 Beginning log switch checkpoint up to RBA [0x7.2.10], SCN: 3591796008
2) Provedení flashbacku z RMANa
RMAN> flashback database to SCN 3591796008;
Starting flashback at 17-JUN-10 allocated channel: ORA_DISK_1 channel ORA_DISK_1: SID=531 device type=DISK
starting media recovery
channel ORA_DISK_1: starting archived log restore to default destination channel ORA_DISK_1: restoring archived log archived log thread=1 sequence=6 channel ORA_DISK_1: restoring archived log archived log thread=1 sequence=7 channel ORA_DISK_1: reading from backup piece +DATA/orcl/backupset/2010_06_16/annnf0_orcl arch daily_061610095701_0.1082.721864635 channel ORA_DISK_1: piece handle=+DATA/orcl/backupset/2010_06_16/annnf0_orcl arch daily_061610095701_0.1082.721864635 tag=orcl ARCH DAILY_061610095701 channel ORA_DISK_1: restored backup piece 1 channel ORA_DISK_1: restore complete, elapsed time: 00:00:03 channel ORA_DISK_1: deleting archived log(s) archived log file name=+DATA/orcl/archivelog/2010_06_17/thread_1_seq_6.368.721916409 RECID=64 STAMP=721916408 channel ORA_DISK_1: deleting archived log(s) archived log file name=+DATA/orcl/archivelog/2010_06_17/thread_1_seq_7.369.721916407 RECID=63 STAMP=721916407 media recovery complete, elapsed time: 00:00:02 Finished flashback at 17-JUN-10
3) Po Flashbacku se musí databáze otevřít s resetlogs přepínačem
RMAN> alter database open resetlogs;
database opened
Související chyby:
V případě, že se pokusíte otevřít databázi normálně, objeví se vám chyba SQL> alter database open; alter database open * ERROR at line 1: ORA-01589: must use RESETLOGS or NORESETLOGS option for database open
V případě, že se snažíte udělat Flashback po SCN číslo, kdy nemáte k dispozici flashback logy zobrazí se vám následující chyba. RMAN> flashback database to SCN 3591788878;
Starting flashback at 17-JUN-10 using target database control file instead of recovery catalog allocated channel: ORA_DISK_1 channel ORA_DISK_1: SID=505 device type=DISK
RMAN-00571: =========================================================== RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS =============== RMAN-00571: =========================================================== RMAN-03002: failure of flashback command at 06/17/2010 12:15:30 RMAN-06796: Not enough flashback database log data to do FLASHBACK.
Při flashbacku musí být databáze v mount režimu, neni-li, objeví se vám upozornění. RMAN> flashback database to SCN 3591796008;
Starting flashback at 17-JUN-10 using channel ORA_DISK_1
starting media recovery media recovery failed RMAN-00571: =========================================================== RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS =============== RMAN-00571: =========================================================== RMAN-03002: failure of flashback command at 06/17/2010 12:16:48 ORA-38757: Database must be mounted and not open to FLASHBACK.
RMAN> startup mount
connected to target database (not started) Oracle instance started database mounted
Total System Global Area 2672361472 bytes
Fixed Size 2162680 bytes Variable Size 1107296264 bytes Database Buffers 1543503872 bytes Redo Buffers 19398656 bytes
Metalink: ORA-38754: FLASHBACK DATABASE NOT STARTED; REQUIRED REDO LOG IS NOT AVAILABLE [ID 560686.1]
|