Data Recovery Advisor
Data Recovery Advisor
Data Failure: Examples
Listing Data Failures
Advising on Repair
Executing Repairs
Classifying (andClosing ) Failures
Data Recovery Advisor Views
Best Practice: proactive Checks
Invoking proactve health check of the database and its components
1.Health Monitor or RMAN VALIDATE DATABASE command
2.Checking for logical and physical corruption
3.Findings logged in the ADR
11g 数据库恢复专家例子
1.tablespace--app_data
2.backup--datafile--app_data01.dbf_rman
run{
allocate channel d1 type disk format 'F:\app\user\back\datafile_%s_%p.bus';
backup datefile 10;
}
3.破坏
4.recover--data recover advise-rman
进入rman
list failure (会显示出系统检测到的问题)
advise failure 分析故障
也可以通过动态性能试图看一些东西:
select repair_id, advise_id,summay,rank, status from v$ir_repair;
select * from v$ir_manual_checklist;
登录ramn:
repaire failure preview; 只是擦看 (注意这条命令必须和advise failure在同一个session)
repaire failure ; 真正执行
What Is Block Corruption
Whenever a block is read or wrtten , a consistency check is performed
a.Block version
b.DBA(data block address) value in cache s compared to the DBA value in the block buffer
c.Block-checksum , if enabled
A corrupt block is identified as being one of he following:
a.Media corrupt
b.Logically (or software ) corrupt
Block Corruption Symptoms : ORA-01578
The error ORA-01578:"ORACLE data block corrupted (file # %s, block # %s)":
1.Is generated when a corrupted data block is found
2.Always returns the relativefile numer and block number
3.Is returned to the session that issued the query being performed when the corruption was discovered
4.Appears in the alert.log file
How to Handle Corruption
1.Cehck the alert log and perating system log file
2.Use available diagnostic tools to find out the type of corruption
3.Determine whether the error persists by running chedks multiple times
4.Recover data form the corrupted object if necessary
5.Resolve any hardware issues:
a.Memory boards
b.disk controller
c.Disks
6.Recover or restore data from the corrupt object if necessary
Setting Parameters to Detect Corruption
Setting Parameters to Detect Corruption
坏块实验
1.config
archivelog 归档模式
mount模式下:
alter database flashback on;
select flashback_on from v$database;
alter system set db_ultra_safe='DATA_AND_INDEX'
2.create tablespace---app_test
create tablespace app_test datafile '/xxx/xxx/xx/app_test.dbf' size 20M;
create user user1 identified by user1 default tablespace app_test;
grant connect, resource to user1;
user1/user1 登录
建几张表在app_test上
3.backup_rman
坏块实验
rman target /nocatalog
run {
allocate channel d1 type disk format '/xxx/xxx/xxx/back/app_test_%s_%p.buf'
backup datafile 11
}
4.破坏
关闭系统 然后对app_test.dbf进行编辑
startup 可能能启动起来,可能在查某一张表时候才报错
可以在alert.log里看到
select * from v$databawse_block_corruption;
5.check block-dbv-rman
链接rman
6.startup
7.recover block
recover datafile 11 block 185;
8.check block
Automatic Diagnostic Workflow
Automatic Diagnostic Repository
The V$DIAG_INFO View
Location for Diagnostic Traces
现在只需要配置一个参数就可以了 : diagnostic_dest , 这样,udump之类的参数 就不用配置了
Health Monitor:Overview
Running Health Checks Manually: PL/SQL Example