rman blockrecover dbv

[复制链接]
查看11 | 回复3 | 2010-3-1 11:19:53 | 显示全部楼层 |阅读模式
先做备份
RMAN> BACKUP DATABASE;
然后
用ULTRAEDIT编辑数据文件,执行
DBV FILE=O1_MF_TEST_35J18KWS_.DBF BLOCKSIZE=8192
DBVERIFY - 开始验证: FILE = O1_MF_TEST_35J18KWS_.DBF
页 294 标记为损坏
页 743 标记为损坏
页 768 标记为损坏
但是
SQL> SELECT tablespace_name, segment_type, owner, segment_name
2FROM dba_extents
3WHERE file_id = 5
4and 294 between block_id AND block_id + blocks - 1;
未选定行
SQL> SELECT tablespace_name, segment_type, owner, segment_name
2FROM dba_extents
3WHERE file_id = 5
4and 743 between block_id AND block_id + blocks - 1;
未选定行
SQL> SELECT tablespace_name, segment_type, owner, segment_name
2FROM dba_extents
3WHERE file_id = 5
4and 768 between block_id AND block_id + blocks - 1;
未选定行

可我编辑的时候明显的是改了数据的。
问题1:为什么上面的查询没有结果
然后执行
RMAN>backup database;
当然是不行的了,
但是此时
SQL> SELECT * FROM V$DATABASE_BLOCK_CORRUPTION;
未选定行

执行
run{
set maxcorrupt for datafile 5 to 1;
backup database;
}
在ALTER。LOG中显示了294错误,
但是此时
SQL> SELECT * FROM V$DATABASE_BLOCK_CORRUPTION;
未选定行

执行
run{
set maxcorrupt for datafile 5 to 2;
backup database;
}
在ALTER。LOG中显示了743错误,
但是此时
SQL> SELECT * FROM V$DATABASE_BLOCK_CORRUPTION;
未选定行
执行
run{
set maxcorrupt for datafile 5 to 3;
backup database;
}
在ALTER。LOG中显示了768错误,
但是此时
SQL> SELECT * FROM V$DATABASE_BLOCK_CORRUPTION;
未选定行
问题2:为什么 V$DATABASE_BLOCK_CORRUPTION没有数据呢?
执行
BLCOKRECOVER DATAFILE 5 BLOCK 249,743,768 是不行的
只能
resotre datafile 5;
recover datafile 5
问题3:我做了RMAN备份,为什么不能执行BLCOKRECOVER?

谢谢!!
回复

使用道具 举报

千问 | 2010-3-1 11:19:53 | 显示全部楼层
问题1: dba_extents 是已经进行分配的extents ,而你修改的文件的位置,难道肯定已经分配了???
回复

使用道具 举报

千问 | 2010-3-1 11:19:53 | 显示全部楼层
可能这几个块都是空的,所以并没有备份,所以blockrecover 是不行的~
回复

使用道具 举报

千问 | 2010-3-1 11:19:53 | 显示全部楼层
我用做测试的表空间中只有3个表
是用dba_users,dba_extents,dba_objects 的内容创建的,我用ULTRAEDIT编辑的时候,是编辑的显示出来的可见字符串
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行