میخواهیم مثال ساده‌ای از چگونگی به کارگیری ویژگی بازیابی بلاک‌های خراب با RMAN را ارائه دهیم. اگر دیتابیسی تمام وقت 24/7 دارید و نمی‌توانید آن را خاموش کنید می‌توان از بازیابی بلاک برای رفع خرابی بلاک‌های دیسک استفاده کنید. این ویژگی همچنین راهی سریع برای چک کردن بودن یا نبودن بلاک‌های خراب در دیتابیس را فراهم میکنه. یادتون باشه بک‌آپ‌های گرفته شده با RMAN صحت کارکردن دیتابیس را تایید نمیکنن.

خب پس rman را در حالت nocatalog یا catalog-mode اجرا کنید و به دیتابیس از طریق rman وصل شوید.

اگه لازمه از یه بک‌آپ قدیمی که کنترل فایل اون در repository اطلاعات RMAN شناخته سده نیست بازیابی رو انجام بدید، ممکنه لازم باشه از از catalog-mode استفاده کنید.

در سیستم‌عامل دستور زیر را اجرا کنید:

$ rman target / nocatalog
or
$ rman target sys/<sys_password> nocatalog

دستور تایید اعتبار که شامل “check logical” است را اجرا کنید.

مثال زیر نشان می‌دهد که چگونه همه دیتافایل‌ها تایید می‌شوند:

Complete database check 
RMAN>run {
       allocate channel d1 type disk;
       backup check logical validate database;
       release channel d1;
     }
Specific Datafile check
RMAN>run {
       allocate channel d1 type disk;
       backup check logical validate datafile 1;
       release channel d1;
     }
SQL> select * from V$DATABASE_BLOCK_CORRUPTION;

خب در اوراکل 9i و بالاتر شما می‌تونید از این view برای مشخص کردن نوع خرابی پیدا شده توسط rman استفاده کنید:

V$DATABASE_BLOCK_CORRUPTION

یادتون باشه همانند اوراکل نسخه 8i خرابی‌های پیدا شده به رابط کاربری RMAN گزارش نمی‌شوند.

همچنین به یاد داشته باشید که با هر بار اجرا شدن تاییده بک‌آپ در RMAN، خرابی گزارش شده در V$DATABASE_BLOCK_CORRUPTION پاک می‌شود. اگه خرابی جدیدی پیدا بشه این VIEW‌ با جزییات خرابی جدید آپدیت میشه. تا زمانی که تاییدیه بک‌آپ RMAN دیگری یا بک‌آپ‌گیری جدیدی با RMAN اجرا نشده در این مدت خرابی یک بلاک تا آن لحظه تشخیص داده نمی‌شود پس سطرهای این VIEW پاک نمی‌شوند.

در مقاله دیگری به بررسی همه آبجکت‌های متاثر در خرابی که توسط RMAN گزارش شده‌اند و در V$DATABASE_BLOCK_CORRUPTION موجود هستند می‌پردازیم

از ترمینال سیستم‌عامل دستورات زیر رو اجرا کنید:

$ rman target / nocatalog
or
$ rman target sys/<sys_password> nocatalog
RMAN>run {
      allocate channel d1 type disk;
      blockrecover corruption list;
      release channel d1;
     }

همچنین شما می‌تونید از Data Recovery Advisor (DRA) استفاده کنید:

RMAN> validate check logical database;
Starting validate at 20­SEP­13
using channel ORA_DISK_1
channel ORA_DISK_1: starting validation of datafile
channel ORA_DISK_1: specifying datafile(s) for validation
input datafile file number=00002 name=/u01/V112_oradata/sysaux01.dbf
input datafile file number=00001 name=/u01/V112_oradata/system01.dbf
input datafile file number=00003 name=/u01/V112_oradata/undotbs01.dbf
input datafile file number=00004 name=/u01/V112_oradata/users01.dbf
channel ORA_DISK_1: validation complete, elapsed time: 00:01:35

List of Datafiles
=================
File Status Marked Corrupt Empty Blocks Blocks Examined High SCN­­­­ ­­­­­­ ­­­­­­­­­­­­­­ ­­­­­­­­­­­­ ­­­­­­­­­­­­­­­ ­­­­­­­­­­
1    OK     0              74562        98560           2634075  
  File Name: /u01/V112_oradata/system01.dbf
  Block Type Blocks Failing Blocks Processed  ­­­­­­­­­­ ­­­­­­­­­­­­­­ ­­­­­­­­­­­­­­­­
........
File Status Marked Corrupt Empty Blocks Blocks Examined High SCN
4    FAILED 0              1            22882           2633107  
  File Name: /u01/V112_oradata/users01.dbf
  Block Type Blocks Failing Blocks Processed  ­­­­­­­­­­ ­­­­­­­­­­­­­­ ­­­­­­­­­­­­­­­­
  Data       0              685            
  Index      0              0              
  Other      1              22194          
validate found one or more corrupt blocks 

RMAN> list failure;

List of Database Failures
========================= 
FailureID Priority Status   Time  Detected Summary­­­­­­­­­­ ­­­­­­­­ ­­­­­­­­­ ­­­­­­­­­­­­­ ­­­­­­­
441        HIGH     OPEN      20­SEP­13     Datafile 4: '/u01/V112_oradata/users01.dbf' contains

one or more corrupt blocks 

RMAN> advise failure;
List of Database Failures
========================= 
FailureID Priority Status    Time Detected Summary
­­441        HIGH     OPEN      20­SEP­13     Datafile 4: '/u01/V112_oradata/users01.dbf' contains

one or more corrupt blocks
analyzing automatic repair options; this may take some time
using channel ORA_DISK_1
analyzing automatic repair options complete

Mandatory Manual Actions
========================
no manual actions available
Optional Manual Actions
=======================
no manual actions available
Automated Repair Options
========================
Option Repair Description
1      Perform block media recovery of block 520 in file 4 
  Strategy: The repair includes complete media recovery with no data loss
  Repair script: /u02/app/oracle/diag/rdbms/v112/V112/hm/reco_4024241654.hm 

RMAN> repair failure preview;
Strategy: The repair includes complete media recovery with no data loss
Repair script: /u02/app/oracle/diag/rdbms/v112/V112/hm/reco_4024241654.hm
contents of repair script:
   # block media recovery
   recover datafile 4 block 520; 

RMAN> repair failure noprompt;
Strategy: The repair includes complete media recovery with no data loss
Repair script: /u02/app/oracle/diag/rdbms/v112/V112/hm/reco_4024241654.hm
contents of repair script:
   # block media recovery
   recover datafile 4 block 520;
executing repair script 
Starting recover at 20­SEP­13
using channel ORA_DISK_1 

channel ORA_DISK_1: restoring block(s)
channel ORA_DISK_1: specifying block(s) to restore from backup set
restoring blocks of datafile 00004
channel ORA_DISK_1: reading from backup piece
/u01/temp/flash_areas/V112/V112/backupset/2013_09_20/o1_mf_nnndf_TAG20130920T092224_93rm0khr_.bkp
channel ORA_DISK_1: piece
handle=/u01/temp/flash_areas/V112/V112/backupset/2013_09_20/o1_mf_nnndf_TAG20130920T092224_93rm0khr_.bkp
tag=TAG20130920T092224
channel ORA_DISK_1: restored block(s) from backup piece 1
channel ORA_DISK_1: block restore complete, elapsed time: 00:00:01
starting media recovery
archived log for thread 1 with sequence 187 is already on disk as file
/u01/temp/flash_areas/V112/V112/archivelog/2013_09_20/o1_mf_1_187_93rmnqwg_.arc
archived log for thread 1 with sequence 188 is already on disk as file
/u01/temp/flash_areas/V112/V112/archivelog/2013_09_20/o1_mf_1_188_93rmq47g_.arc
archived log for thread 1 with sequence 189 is already on disk as file
/u01/temp/flash_areas/V112/V112/archivelog/2013_09_20/o1_mf_1_189_93rn7994_.arc
archived log for thread 1 with sequence 190 is already on disk as file
/u01/temp/flash_areas/V112/V112/archivelog/2013_09_20/o1_mf_1_190_93rnymmf_.arc
media recovery complete, elapsed time: 00:00:03
Finished recover at 20­SEP­13
repair failure complete