Jako Oracle DBA pravděpodobně víte, jak provést klasickou obnovu datového souboru, ale rád bych vám ukázal způsob, při kterém využíváte zálohu datových souboru v oblasti zvané flash recovery area.Scenář je jednoduchý. Máte databázi a datové soubory, náhle dojde k poškození některého z datových souborů. Vy však máte zálohu datového souboru v FRA (flash recovery area).Tím páden není potřeba provádět jakoukoli obnovu (restore), nýbrž s pomocí RMANa se přepněte na druhý soubor a poté provedete jen rychlé recovery. Používá se pro to příkaz switch, ale pojďme na příklad.
Budu pracovat s tabulkový prostorem pom a proto ho přepnu do offline režimu.
RMAN> sql „alter tablespace pom offline“;sql statement: alter tablespace pom offlinestarting full resync of recovery catalogfull resync complete

Vylistuji si schema databáze, tedy jaké soubory databáze používá a kde jsou uloženy.

RMAN> report schema;Report of database schema for database with db_unique_name ORCLList of Permanent Datafiles===========================File Size(MB) Tablespace RB segs Datafile Name—- ——– ——————– ——- ————————1 680 SYSTEM YES +DATA/orcl/system01.dbf….7 25 POM NO +DATA/orcl/datafile/pom.280.722440169List of Temporary Files=======================File Size(MB) Tablespace Maxsize(MB) Tempfile Name—- ——– ——————– ———– ——————–1 29 TEMP 32767 +DATA/orcl/temp01.dbf

Nás zajimá soubor 7 a také kde je uložena jeho kopie. Jak je vidět z výpisu, původní soubor je uložen v diskové skupině DATA a kopie v FRA.

RMAN> list copy of datafile 7;List of Datafile Copies=======================Key File S Completion Time Ckp SCN Ckp Time——- —- – ——————- ———- ——————-885 7 A 2010-06-23:14:22:41 973548 2010-06-23:14:20:51Name: +FRA/orcl/datafile/pom.282.722440627Tag: APP_INCR

Dejme tomu, že dojde k poškození původního souboru. Není nic jednoduššího než říci databázi, aby používala kopii daného souboru.

RMAN> switch datafile 7 to copy;datafile 7 switched to datafile copy „+FRA/orcl/datafile/pom.282.722440627″starting full resync of recovery catalogfull resync completeProvede se obnova, přesněji řešeno se aplikují změny z redo logů.RMAN> recover datafile 7;Starting recover at 2010-06-23:14:30:41using channel ORA_DISK_1starting media recoverymedia recovery complete, elapsed time: 00:00:01Finished recover at 2010-06-23:14:30:42

Přepneme tabulkový prostor opět do režimu online a můžete v klidu pracovat dál.

RMAN> sql „alter tablespace pom online“;sql statement: alter tablespace pom onlinestarting full resync of recovery catalogfull resync complete

Z výpisu je patrné, že se jako aktivní používá soubor z diskové skupiny FRA.

RMAN> report schema;Report of database schema for database with db_unique_name ORCLList of Permanent Datafiles===========================File Size(MB) Tablespace RB segs Datafile Name—- ——– ——————– ——- ————————1 680 SYSTEM YES +DATA/orcl/system01.dbf2 530 SYSAUX NO +DATA/orcl/sysaux01.dbf…7 25 pom NO +FRA/orcl/datafile/pom.282.722440627List of Temporary Files=======================File Size(MB) Tablespace Maxsize(MB) Tempfile Name—- ——– ——————– ———– ——————–1 29 TEMP 32767 +DATA/orcl/temp01.dbf

A za kopii je považován soubor z diskové skupiny DATA.

RMAN> list copy of datafile 7;List of Datafile Copies=======================Key File S Completion Time Ckp SCN Ckp Time——- —- – ——————- ———- ——————-1029 7 A 2010-06-23:14:30:28 974277 2010-06-23:14:27:48Name: +DATA/orcl/datafile/pom.280.722440169
Dejme tomu, že jste poškozený disk opravili a chcete používat soubor z diskové skupiny DATA.

Původní soubor je poškozen. V našem příkladu smazán.

[oracle@localhost labs]$ . oraenvORACLE_SID = [orcl] ? +ASMThe Oracle base for ORACLE_HOME=/u01/app/oracle/product/11.2.0/grid is /u01/app/oracle[oracle@localhost labs]$ asmcmd rm +DATA/orcl/datafile/pom.280.722440169

Vytvoříte kopii vašeho současného datového souboru z diskové skupiny FRA do diskové skupiny DATA.

RMAN> backup as copy to destination ‚+DATA(datafile)‘ datafile 7;Starting backup at 2010-06-23:14:34:11using channel ORA_DISK_1channel ORA_DISK_1: starting datafile copyinput datafile file number=00007 name=+FRA/orcl/datafile/pom.282.722440627output file name=+DATA/orcl/datafile/pom.280.722442851 tag=TAG20100623T143411 RECID=21 STAMP=722442852channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:01Finished backup at 2010-06-23:14:34:12Starting Control File and SPFILE Autobackup at 2010-06-23:14:34:12piece handle=+FRA/orcl/autobackup/2010_06_23/s_722442854.270.722442855 comment=NONEFinished Control File and SPFILE Autobackup at 2010-06-23:14:34:18

A pak se použije stejný postup, jako byl ukázaný výše.

RMAN> sql „alter database datafile 7 offline“;sql statement: alter database datafile 7 offlineRMAN> switch datafile 7 to copy;datafile 7 switched to datafile copy „+DATA/orcl/datafile/pom.280.722442851″starting full resync of recovery catalogfull resync completeRMAN> report schema;Report of database schema for database with db_unique_name ORCLList of Permanent Datafiles===========================File Size(MB) Tablespace RB segs Datafile Name—- ——– ——————– ——- ————————1 680 SYSTEM YES +DATA/orcl/system01.dbf2 530 SYSAUX NO +DATA/orcl/sysaux01.dbf3 90 UNDOTBS1 YES +DATA/orcl/undotbs01.dbf…7 25 pom NO +DATA/orcl/datafile/pom.280.722442851List of Temporary Files=======================File Size(MB) Tablespace Maxsize(MB) Tempfile Name—- ——– ——————– ———– ——————–1 29 TEMP 32767 +DATA/orcl/temp01.dbfRMAN> recover datafile 7;Starting recover at 2010-06-23:14:36:20using channel ORA_DISK_1starting media recoverymedia recovery complete, elapsed time: 00:00:00Finished recover at 2010-06-23:14:36:20

Je dobré provést i údržbu RMAN katalogu.

RMAN> crosscheck copy;released channel: ORA_DISK_1allocated channel: ORA_DISK_1channel ORA_DISK_1: SID=52 device type=DISKspecification does not match any control file copy in the repositoryspecification does not match any archived log in the repositoryvalidation succeeded for datafile copydatafile copy file name=+FRA/orcl/datafile/system.279.722440381 RECID=14 STAMP=722442257validation succeeded for datafile copydatafile copy file name=+FRA/orcl/datafile/sysaux.269.722440469 RECID=15 STAMP=722442258validation succeeded for datafile copy…Crosschecked 9 objectsRMAN> list expired copy;specification does not match any control file copy in the repositoryspecification does not match any archived log in the repositoryList of Datafile Copies=======================Key File S Completion Time Ckp SCN Ckp Time——- —- – ——————- ———- ——————-1029 7 X 2010-06-23:14:30:28 974277 2010-06-23:14:27:48Name: +DATA/orcl/datafile/pom.280.722440169RMAN> delete expired copy;released channel: ORA_DISK_1allocated channel: ORA_DISK_1channel ORA_DISK_1: SID=52 device type=DISKspecification does not match any control file copy in the repositoryspecification does not match any archived log in the repositoryList of Datafile Copies=======================Key File S Completion Time Ckp SCN Ckp Time——- —- – ——————- ———- ——————-1029 7 X 2010-06-23:14:30:28 974277 2010-06-23:14:27:48Name: +DATA/orcl/datafile/pom.280.722440169Do you really want to delete the above objects (enter YES or NO)? yesdeleted datafile copydatafile copy file name=+DATA/orcl/datafile/pom.280.722440169 RECID=20 STAMP=722442628Deleted 1 EXPIRED objectsRMAN>



Komentáře