Jistě se vám stalo a jestli doteď ne, pak v budoucnu určite, že se poškodí blok v datovém souboru.Naštěstí exituje RMAN a s jeho pomocí dokážete opravit poškozený blok velmi rychle a efektně.Podívejte se na příklad, kdy neprošla záloha, protože byl zjištěný poškozený blok v jednom ze zálohovaných souborů. Další možný postup jsem popisoval v jiném článku.RMAN> backup tablespace test;Starting backup at 2010-06-24:09:00:43allocated channel: ORA_DISK_1channel ORA_DISK_1: SID=48 device type=DISKchannel ORA_DISK_1: starting full datafile backup setchannel ORA_DISK_1: specifying datafile(s) in backup setinput datafile file number=00008 name=/home/oracle/BACKUP/TOMtbs01.dbfchannel ORA_DISK_1: starting piece 1 at 2010-06-24:09:00:44RMAN-00571: ===========================================================RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============RMAN-00571: ===========================================================RMAN-03009: failure of backup command on ORA_DISK_1 channel at 06/24/2010 09:00:51ORA-19566: exceeded limit of 0 corrupt blocks for file /home/oracle/BACKUP/poskozeny.dbf
V RMANu můžete rovnou zjistit detaily o vzniklé chybě. To znamená, o jaký objekt se jedná a komu patří.
RMAN> list failure detail;List of Database Failures=========================Failure ID Priority Status Time Detected Summary———- ——– ——— ——————- ——-3822 HIGH OPEN 2010-06-24:08:59:50 Datafile 8: ‚/home/oracle/BACKUP/poskozeny.dbf‘ contains one or more corrupt blocks Impact: Some objects in tablespace TOMTBS might be unavailable List of child failures for parent failure ID 3822 Failure ID Priority Status Time Detected Summary ———- ——– ——— ——————- ——- 3831 HIGH OPEN 2010-06-24:08:59:50 Block 130 in datafile 8: ‚/home/oracle/BACKUP/poskozeny.dbf‘ is media corrupt Impact: Object TOMCOPY owned by TOM might be unavailable 3825 HIGH OPEN 2010-06-24:08:59:50 Block 129 in datafile 8: ‚/home/oracle/BACKUP/poskozeny.dbf‘ is media corrupt Impact: Object TOMCOPY owned by TOM might be unavailableFailure ID Priority Status Time Detected Summary———- ——– ——— ——————- ——-1282 HIGH OPEN 2010-06-23:14:42:23 One or more non-system datafiles are offline Impact: See impact for individual child failures List of child failures for parent failure ID 1282 Failure ID Priority Status Time Detected Summary ———- ——– ——— ——————- ——- 1285 HIGH OPEN 2010-06-23:14:42:23 Datafile 7: ‚+DATA/orcl/datafile/appraisal.280.722442851‘ is offline Impact: Some objects in tablespace APPRAISAL might be unavailable
Jakmile víte o poškození více, můžete požádat RMAN a radu, jak sjednat nápravu
RMAN> advise failure all;List of Database Failures=========================Failure ID Priority Status Time Detected Summary———- ——– ——— ——————- ——-3822 HIGH OPEN 2010-06-24:08:59:50 Datafile 8: ‚/home/oracle/BACKUP/poskozeny.dbf‘ contains one or more corrupt blocks1282 HIGH OPEN 2010-06-23:14:42:23 One or more non-system datafiles are offlineanalyzing automatic repair options; this may take some timeusing channel ORA_DISK_1allocated channel: ORA_SBT_TAPE_1channel ORA_SBT_TAPE_1: SID=61 device type=SBT_TAPEchannel ORA_SBT_TAPE_1: WARNING: Oracle Test Disk APIanalyzing automatic repair options completeMandatory Manual Actions========================no manual actions availableOptional Manual Actions=======================no manual actions availableAutomated Repair Options========================Option Repair Description—— ——————1 Recover multiple corrupt blocks in datafile 8; Online tablespace APPRAISAL Strategy: The repair includes complete media recovery with no data loss Repair script: /u01/app/oracle/diag/rdbms/orcl/orcl/hm/reco_3089901648.hm
Nakonec nezbývá než chybu opravit.
RMAN> repair failure;Strategy: The repair includes complete media recovery with no data lossRepair script: /u01/app/oracle/diag/rdbms/orcl/orcl/hm/reco_3089901648.hmcontents of repair script: # block media recovery for multiple blocks recover datafile 8 block 129 to 130; # online a offline tablespace sql „begin sys.dbms_ir.execsqlscript(filename => “/u01/app/oracle/diag/rdbms/orcl/orcl/hm/reco_2784238257.hm“ ); end;“;Do you really want to execute the above repair (enter YES or NO)? yesexecuting repair scriptStarting recover at 2010-06-24:09:52:20using channel ORA_DISK_1using channel ORA_SBT_TAPE_1channel ORA_SBT_TAPE_1: restoring block(s) from datafile copy +FRA/orcl/datafile/TOMtbs.259.722509095starting media recoverymedia recovery complete, elapsed time: 00:00:03Finished recover at 2010-06-24:09:52:25sql statement: begin sys.dbms_ir.execsqlscript(filename => “/u01/app/oracle/diag/rdbms/orcl/orcl/hm/reco_2784238257.hm“ ); end;repair failure complete
Kontrola, vše je v pořádku a můžete zálohu spustit znovu.
RMAN> list failure all;no failures found that match specification