Získejte konzultaci v hodnotě 1 500 Kč k vaší databázi Oracle zcela zdarma. Ozvěte se mi ještě dnes.

Dejme tomu, že byste chtěli udělat zálohu tabulkového prostoru test, který používá datový soubor test_poskozeny.dbf. Nepovede se vám to a RMAN zahlásí chybu.

RMAN> backup tablespace ‚TEST‘;

Starting backup at 15-NOV-09…RMAN-03009: failure of backup command on ORA_DISK_1 channel at 11/15/2009 18:20:57ORA-19566: exceeded limit of 0 corrupt blocks for file /zalohy/test_poskozeny.dbf

Vidíte, že RMAN vás informuje o poškozených blocích. Použijte ještě utilitu dbverify pro ověření a zkontrolování zmíněného souboru.

[oracle@centos53 ~]$ dbv file=/zalohy/test_poskozeny.dbf blocksize=8192

DBVERIFY: Release 11.1.0.6.0 – Production on Sun Nov 15 18:31:06 2009Copyright (c) 1982, 2007, Oracle. All rights reserved.DBVERIFY – Verification starting : FILE = /zalohy/test_poskozeny.dbf

Page 20 is marked corruptCorrupt block relative dba: 0x01800014 (file 6, block 20)Completely zero block found during dbv:DBVERIFY – Verification completeTotal Pages Examined : 12800Total Pages Processed (Data) : 1022Total Pages Failing (Data) : 0Total Pages Processed (Index): 2Total Pages Failing (Index): 0Total Pages Processed (Other): 11666Total Pages Processed (Seg) : 0Total Pages Failing (Seg) : 0Total Pages Empty : 109Total Pages Marked Corrupt : 1Total Pages Influx : 0Total Pages Encrypted : 0Highest block SCN : 2230952 (0.2230952)Poznámka: Parametr blocksize, který předáváte utilitě dbverify můžete zjistit z databáze výpisem parametru db_block_size.Z výpisu utility dbverify vidíte, že v souboru test_poskozeny.dbf se nachází poškozený blok číslo 20.

Ty samé informace můžete získat i z pohledu v$database_block_corruption.

SQL> select * from v$database_block_corruption;FILE# BLOCK# BLOCKS CORRUPTION_CHANGE# CORRUPTIO———- ———- ———- —————— ———6 20 1 0 ALL ZERO
Tři nezávislé kontroly vás informují o poškozeném bloku v souboru a je jasné, že daný blok musíte opravit. Nejrychlejší způsob jak toho docílit je opravit konkrétní blok pomocí RMANa.

Přihlaste se do RMANa a spusťtě příkaz recover datafile <číslo souboru> block <číslo bloku>.
RMAN> recover datafile 6 block 20;Starting recover at 15-NOV-09…channel ORA_DISK_1: restoring block(s) from datafile copy +DATA/orcl11g/datafile/test.257.703015565starting media recoverymedia recovery complete, elapsed time: 00:00:04Finished recover at 15-NOV-09
Obnova bloku byla úspěšná a datový soubor je opět konzistentní.SQL> select * from v$database_block_corruption;no rows selectedMetalink:342972.1 – HOW TO PERFORM BLOCK MEDIA RECOVERY (BMR) WHEN BACKUPS ARE NOT TAKEN BY RMAN.755833.1 – Block recovery completed at rba ,…886772.1 – Data Block Corrupted In RAC Database After Restore/Recovery To RAW Devices.



Komentáře