RMAN blockrecover命令恢复数据块
来源:互联网 发布:怎么用网络呼叫电话 编辑:程序博客网 时间:2024/05/16 13:04
在有rman备份的情况下,可以使用rman的blockrecover命令实行块恢复。
SYS@orcl>create tablespace test datafile '/u01/app/oracle/oradata/orcl/test01.dbf' size 10m;
Tablespace created.
SYS@orcl>create table scott.test tablespace test as select * from dba_objects where rownum <=100;
Table created.
FILE_ID BLOCK_ID BLOCKS NAME
---------- ---------- ---------- ----------------------------------------------
6 128 8 u01/app/oracle/oradata/orcl/test01.dbf
---备份6号数据文件
RMAN> backup datafile 6;
Starting backup at 14-JAN-13
using channel ORA_DISK_1
channel ORA_DISK_1: starting full datafile backup set
channel ORA_DISK_1: specifying datafile(s) in backup set
input datafile file number=00006 name=/u01/app/oracle/oradata/orcl/test01.dbf
channel ORA_DISK_1: starting piece 1 at 14-JAN-13
channel ORA_DISK_1: finished piece 1 at 14-JAN-13
piece handle=/u01/app/oracle/fast_recovery_area/ORCL/backupset/2013_01_14/o1_mf_nnndf_TAG20130114T200736_8h7x896y_.bkp tag=TAG20130114T200736 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:02
Finished backup at 14-JAN-13
---破坏数据块130和131
[oracle@ora ~]$ dd of=/u01/app/oracle/oradata/orcl/test01.dbf bs=8192 conv=notrunc seek=130 <<EOF
> abcdefghijklmnopqrst
> EOF
0+1 records in
0+1 records out
21 bytes (21 B) copied, 4.6654e-05 s, 450 kB/s
[oracle@ora ~]$ dd of=/u01/app/oracle/oradata/orcl/test01.dbf bs=8192 conv=notrunc seek=131 <<EOF
> abcdefghijklmnopqrst
> EOF
0+1 records in
0+1 records out
21 bytes (21 B) copied, 2.5004e-05 s, 840 kB/s
---验证6号数据文件是否有数据块错误
RMAN> backup validate datafile 6;
Starting backup at 14-JAN-13
using channel ORA_DISK_1
channel ORA_DISK_1: starting full datafile backup set
channel ORA_DISK_1: specifying datafile(s) in backup set
input datafile file number=00006 name=/u01/app/oracle/oradata/orcl/test01.dbf
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:01
List of Datafiles
=================
File Status Marked Corrupt Empty Blocks Blocks Examined High SCN
---- ------ -------------- ------------ --------------- ----------
6 FAILED 0 1148 1280 1358146
File Name: /u01/app/oracle/oradata/orcl/test01.dbf
Block Type Blocks Failing Blocks Processed
---------- -------------- ----------------
Data 0 1
Index 0 0
Other 2 131
validate found one or more corrupt blocks
See trace file /u01/app/oracle/diag/rdbms/orcl/orcl/trace/orcl_ora_8456.trc for details
---也可通过视图v$database_block_corruption查询
SYS@orcl>select * from v$database_block_corruption;
FILE# BLOCK# BLOCKS CORRUPTION_CHANGE# CORRUPTIO
---------- ---------- ---------- ------------------ ---------
6 130 2 0 CORRUPT
---6号文件130号数据块开始有2个数据块损坏
---恢复130和131数据块,也可以执行blockrecover corruption list命令恢复视图中标记的所有块
RMAN> blockrecover datafile 6 block 130,131;
Starting recover at 14-JAN-13
using channel ORA_DISK_1
searching flashback logs for block images until SCN 1358226
finished flashback log search, restored 2 blocks
starting media recovery
media recovery complete, elapsed time: 00:00:01
Finished recover at 14-JAN-13
---再次验证6号数据文件,检查发现没有块损坏
RMAN> backup validate datafile 6;
Starting backup at 14-JAN-13
using channel ORA_DISK_1
channel ORA_DISK_1: starting full datafile backup set
channel ORA_DISK_1: specifying datafile(s) in backup set
input datafile file number=00006 name=/u01/app/oracle/oradata/orcl/test01.dbf
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:01
List of Datafiles
=================
File Status Marked Corrupt Empty Blocks Blocks Examined High SCN
---- ------ -------------- ------------ --------------- ----------
6 OK 0 1148 1280 1358152
File Name: /u01/app/oracle/oradata/orcl/test01.dbf
Block Type Blocks Failing Blocks Processed
---------- -------------- ----------------
Data 0 2
Index 0 0
Other 0 130
Finished backup at 14-JAN-13
SYS@orcl>select * from v$database_block_corruption;
no rows selected
blockrecover命令不能恢复数据文件1号块的损坏,如果1号块损坏了只能恢复整个数据文件,例如:
---破坏6号数据文件的1号块
[oracle@ora ~]$ dd if=/dev/zero of=/u01/app/oracle/oradata/orcl/test01.dbf bs=8192 conv=notrunc count=1
1+0 records in
1+0 records out
8192 bytes (8.2 kB) copied, 2.633e-05 s, 311 MB/s
---验证6号数据文件
RMAN> backup validate datafile 6;
Starting backup at 14-JAN-13
using channel ORA_DISK_1
channel ORA_DISK_1: starting full datafile backup set
channel ORA_DISK_1: specifying datafile(s) in backup set
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03009: failure of backup command on ORA_DISK_1 channel at 01/14/2013 20:19:22
ORA-01122: database file 6 failed verification check
ORA-01110: data file 6: '/u01/app/oracle/oradata/orcl/test01.dbf'
ORA-01565: error in identifying file '/u01/app/oracle/oradata/orcl/test01.dbf'
ORA-27048: skgfifi: file header information is invalid
Additional information: 11
---使用blockrecover命令恢复6号文件的1号块,提示恢复成功
RMAN> blockrecover datafile 6 block 1;
Starting recover at 14-JAN-13
using channel ORA_DISK_1
starting media recovery
media recovery complete, elapsed time: 00:00:00
Finished recover at 14-JAN-13
---再次验证还是报错
RMAN> backup validate datafile 6;
Starting backup at 14-JAN-13
using channel ORA_DISK_1
channel ORA_DISK_1: starting full datafile backup set
channel ORA_DISK_1: specifying datafile(s) in backup set
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03009: failure of backup command on ORA_DISK_1 channel at 01/14/2013 20:20:03
ORA-01122: database file 6 failed verification check
ORA-01110: data file 6: '/u01/app/oracle/oradata/orcl/test01.dbf'
ORA-01565: error in identifying file '/u01/app/oracle/oradata/orcl/test01.dbf'
ORA-27048: skgfifi: file header information is invalid
Additional information: 11
---只能恢复整个6号数据文件
RMAN> run{
2> sql 'alter database datafile 6 offline';
3> restore datafile 6;
4> recover datafile 6;
5> sql 'alter database datafile 6 online';
6> }
sql statement: alter database datafile 6 offline
Starting restore at 14-JAN-13
using channel ORA_DISK_1
channel ORA_DISK_1: starting datafile backup set restore
channel ORA_DISK_1: specifying datafile(s) to restore from backup set
channel ORA_DISK_1: restoring datafile 00006 to /u01/app/oracle/oradata/orcl/test01.dbf
channel ORA_DISK_1: reading from backup piece /u01/app/oracle/fast_recovery_area/ORCL/backupset/2013_01_14/o1_mf_nnndf_TAG20130114T200736_8h7x896y_.bkp
channel ORA_DISK_1: piece handle=/u01/app/oracle/fast_recovery_area/ORCL/backupset/2013_01_14/o1_mf_nnndf_TAG20130114T200736_8h7x896y_.bkp tag=TAG20130114T200736
channel ORA_DISK_1: restored backup piece 1
channel ORA_DISK_1: restore complete, elapsed time: 00:00:01
Finished restore at 14-JAN-13
Starting recover at 14-JAN-13
using channel ORA_DISK_1
starting media recovery
media recovery complete, elapsed time: 00:00:01
Finished recover at 14-JAN-13
sql statement: alter database datafile 6 online
---再次验证6号数据文件,没有数据块损坏
RMAN> backup validate datafile 6;
Starting backup at 14-JAN-13
using channel ORA_DISK_1
channel ORA_DISK_1: starting full datafile backup set
channel ORA_DISK_1: specifying datafile(s) in backup set
input datafile file number=00006 name=/u01/app/oracle/oradata/orcl/test01.dbf
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:01
List of Datafiles
=================
File Status Marked Corrupt Empty Blocks Blocks Examined High SCN
---- ------ -------------- ------------ --------------- ----------
6 OK 0 60 1281 1358152
File Name: /u01/app/oracle/oradata/orcl/test01.dbf
Block Type Blocks Failing Blocks Processed
---------- -------------- ----------------
Data 0 2
Index 0 0
Other 0 1218
Finished backup at 14-JAN-13
SYS@orcl>create tablespace test datafile '/u01/app/oracle/oradata/orcl/test01.dbf' size 10m;
Tablespace created.
SYS@orcl>create table scott.test tablespace test as select * from dba_objects where rownum <=100;
Table created.
---test表在6号数据文件,开始于第128号块,共占用8个数据块
FILE_ID BLOCK_ID BLOCKS NAME
---------- ---------- ---------- ----------------------------------------------
6 128 8 u01/app/oracle/oradata/orcl/test01.dbf
---备份6号数据文件
RMAN> backup datafile 6;
Starting backup at 14-JAN-13
using channel ORA_DISK_1
channel ORA_DISK_1: starting full datafile backup set
channel ORA_DISK_1: specifying datafile(s) in backup set
input datafile file number=00006 name=/u01/app/oracle/oradata/orcl/test01.dbf
channel ORA_DISK_1: starting piece 1 at 14-JAN-13
channel ORA_DISK_1: finished piece 1 at 14-JAN-13
piece handle=/u01/app/oracle/fast_recovery_area/ORCL/backupset/2013_01_14/o1_mf_nnndf_TAG20130114T200736_8h7x896y_.bkp tag=TAG20130114T200736 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:02
Finished backup at 14-JAN-13
---破坏数据块130和131
[oracle@ora ~]$ dd of=/u01/app/oracle/oradata/orcl/test01.dbf bs=8192 conv=notrunc seek=130 <<EOF
> abcdefghijklmnopqrst
> EOF
0+1 records in
0+1 records out
21 bytes (21 B) copied, 4.6654e-05 s, 450 kB/s
[oracle@ora ~]$ dd of=/u01/app/oracle/oradata/orcl/test01.dbf bs=8192 conv=notrunc seek=131 <<EOF
> abcdefghijklmnopqrst
> EOF
0+1 records in
0+1 records out
21 bytes (21 B) copied, 2.5004e-05 s, 840 kB/s
---验证6号数据文件是否有数据块错误
RMAN> backup validate datafile 6;
Starting backup at 14-JAN-13
using channel ORA_DISK_1
channel ORA_DISK_1: starting full datafile backup set
channel ORA_DISK_1: specifying datafile(s) in backup set
input datafile file number=00006 name=/u01/app/oracle/oradata/orcl/test01.dbf
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:01
List of Datafiles
=================
File Status Marked Corrupt Empty Blocks Blocks Examined High SCN
---- ------ -------------- ------------ --------------- ----------
6 FAILED 0 1148 1280 1358146
File Name: /u01/app/oracle/oradata/orcl/test01.dbf
Block Type Blocks Failing Blocks Processed
---------- -------------- ----------------
Data 0 1
Index 0 0
Other 2 131
validate found one or more corrupt blocks
See trace file /u01/app/oracle/diag/rdbms/orcl/orcl/trace/orcl_ora_8456.trc for details
Finished backup at 14-JAN-13
---发现有2个数据块错误,可以通过trace文件查看更详细的信息
---也可通过视图v$database_block_corruption查询
SYS@orcl>select * from v$database_block_corruption;
FILE# BLOCK# BLOCKS CORRUPTION_CHANGE# CORRUPTIO
---------- ---------- ---------- ------------------ ---------
6 130 2 0 CORRUPT
---6号文件130号数据块开始有2个数据块损坏
---恢复130和131数据块,也可以执行blockrecover corruption list命令恢复视图中标记的所有块
RMAN> blockrecover datafile 6 block 130,131;
Starting recover at 14-JAN-13
using channel ORA_DISK_1
searching flashback logs for block images until SCN 1358226
finished flashback log search, restored 2 blocks
starting media recovery
media recovery complete, elapsed time: 00:00:01
Finished recover at 14-JAN-13
---再次验证6号数据文件,检查发现没有块损坏
RMAN> backup validate datafile 6;
Starting backup at 14-JAN-13
using channel ORA_DISK_1
channel ORA_DISK_1: starting full datafile backup set
channel ORA_DISK_1: specifying datafile(s) in backup set
input datafile file number=00006 name=/u01/app/oracle/oradata/orcl/test01.dbf
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:01
List of Datafiles
=================
File Status Marked Corrupt Empty Blocks Blocks Examined High SCN
---- ------ -------------- ------------ --------------- ----------
6 OK 0 1148 1280 1358152
File Name: /u01/app/oracle/oradata/orcl/test01.dbf
Block Type Blocks Failing Blocks Processed
---------- -------------- ----------------
Data 0 2
Index 0 0
Other 0 130
Finished backup at 14-JAN-13
SYS@orcl>select * from v$database_block_corruption;
no rows selected
blockrecover命令不能恢复数据文件1号块的损坏,如果1号块损坏了只能恢复整个数据文件,例如:
---破坏6号数据文件的1号块
[oracle@ora ~]$ dd if=/dev/zero of=/u01/app/oracle/oradata/orcl/test01.dbf bs=8192 conv=notrunc count=1
1+0 records in
1+0 records out
8192 bytes (8.2 kB) copied, 2.633e-05 s, 311 MB/s
---验证6号数据文件
RMAN> backup validate datafile 6;
Starting backup at 14-JAN-13
using channel ORA_DISK_1
channel ORA_DISK_1: starting full datafile backup set
channel ORA_DISK_1: specifying datafile(s) in backup set
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03009: failure of backup command on ORA_DISK_1 channel at 01/14/2013 20:19:22
ORA-01122: database file 6 failed verification check
ORA-01110: data file 6: '/u01/app/oracle/oradata/orcl/test01.dbf'
ORA-01565: error in identifying file '/u01/app/oracle/oradata/orcl/test01.dbf'
ORA-27048: skgfifi: file header information is invalid
Additional information: 11
---使用blockrecover命令恢复6号文件的1号块,提示恢复成功
RMAN> blockrecover datafile 6 block 1;
Starting recover at 14-JAN-13
using channel ORA_DISK_1
starting media recovery
media recovery complete, elapsed time: 00:00:00
Finished recover at 14-JAN-13
---再次验证还是报错
RMAN> backup validate datafile 6;
Starting backup at 14-JAN-13
using channel ORA_DISK_1
channel ORA_DISK_1: starting full datafile backup set
channel ORA_DISK_1: specifying datafile(s) in backup set
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03009: failure of backup command on ORA_DISK_1 channel at 01/14/2013 20:20:03
ORA-01122: database file 6 failed verification check
ORA-01110: data file 6: '/u01/app/oracle/oradata/orcl/test01.dbf'
ORA-01565: error in identifying file '/u01/app/oracle/oradata/orcl/test01.dbf'
ORA-27048: skgfifi: file header information is invalid
Additional information: 11
---只能恢复整个6号数据文件
RMAN> run{
2> sql 'alter database datafile 6 offline';
3> restore datafile 6;
4> recover datafile 6;
5> sql 'alter database datafile 6 online';
6> }
sql statement: alter database datafile 6 offline
Starting restore at 14-JAN-13
using channel ORA_DISK_1
channel ORA_DISK_1: starting datafile backup set restore
channel ORA_DISK_1: specifying datafile(s) to restore from backup set
channel ORA_DISK_1: restoring datafile 00006 to /u01/app/oracle/oradata/orcl/test01.dbf
channel ORA_DISK_1: reading from backup piece /u01/app/oracle/fast_recovery_area/ORCL/backupset/2013_01_14/o1_mf_nnndf_TAG20130114T200736_8h7x896y_.bkp
channel ORA_DISK_1: piece handle=/u01/app/oracle/fast_recovery_area/ORCL/backupset/2013_01_14/o1_mf_nnndf_TAG20130114T200736_8h7x896y_.bkp tag=TAG20130114T200736
channel ORA_DISK_1: restored backup piece 1
channel ORA_DISK_1: restore complete, elapsed time: 00:00:01
Finished restore at 14-JAN-13
Starting recover at 14-JAN-13
using channel ORA_DISK_1
starting media recovery
media recovery complete, elapsed time: 00:00:01
Finished recover at 14-JAN-13
sql statement: alter database datafile 6 online
---再次验证6号数据文件,没有数据块损坏
RMAN> backup validate datafile 6;
Starting backup at 14-JAN-13
using channel ORA_DISK_1
channel ORA_DISK_1: starting full datafile backup set
channel ORA_DISK_1: specifying datafile(s) in backup set
input datafile file number=00006 name=/u01/app/oracle/oradata/orcl/test01.dbf
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:01
List of Datafiles
=================
File Status Marked Corrupt Empty Blocks Blocks Examined High SCN
---- ------ -------------- ------------ --------------- ----------
6 OK 0 60 1281 1358152
File Name: /u01/app/oracle/oradata/orcl/test01.dbf
Block Type Blocks Failing Blocks Processed
---------- -------------- ----------------
Data 0 2
Index 0 0
Other 0 1218
Finished backup at 14-JAN-13
- RMAN blockrecover命令恢复数据块
- 基于RMAN实现坏块介质恢复(blockrecover)
- RMAN深入解析之--BlockRecover恢复坏块
- 基于RMAN实现坏块介质恢复(blockrecover)
- RMAN备份恢复之BLOCKRECOVER
- RMAN备份恢复之BLOCKRECOVER
- RMAN备份恢复之BLOCKRECOVER
- RMAN备份恢复之BLOCKRECOVER
- Oracle 11g 基于RMAN实现坏块介质恢复(blockrecover)
- RMAN备份恢复之归档日志对BLOCKRECOVER的影响
- OCP-043 RMAN BLOCKRECOVER
- 使用blockrecover对损坏数据块进行修复
- Oracle RMAN 坏块恢复
- 使用rman恢复坏块
- OCP考题解析_043:rman系列之 BBED破坏,BlockRecover恢复的案例演示
- rman备份恢复命令
- oracle 数据快修复—之使用RMAN 块介质恢复
- 问题12:如何利用oracle bbed 来模拟破坏数据块,并且用RMAN进行恢复?
- Cookies详解
- HDU-1241:Oil Deposits
- Essentials of the JMX
- fedora9.0 NFS挂载文件系统到6410上
- Eclipse安装插件支持jQuery智能提示
- RMAN blockrecover命令恢复数据块
- 求1+2+…+n
- CentOS 6.3 安装MongoDB
- 列出所有子集-----字典顺序 2013年1月14日
- 让你的vim新建源文件的时候智能添加注释和代码
- gnuplot 入门教程 1
- VIM 查找与替换
- Bloom Filter概念和原理
- Android开发中audio focus的处理