暂无图片
暂无图片
暂无图片
暂无图片
暂无图片
修改数据文件头做完全恢复-bbed3.pdf
346
4页
2次
2021-10-15
10墨值下载
修改数据文件头做完全恢复-bbed3.txt
实验目的:
一个表空间的数据文件损坏,使用以前的备份进行恢复,但是需要的归档文件无法
提供,而且该表空间存放的是历史的数据,很少改变,但由于其它的原因(定时的往该表空
间存储新数据),无法变成只读模式。
这种情况下由于缺少归档,数据库无法recovery,但是跟该表空间相关的数据改变
很少或者没有,这种情况下我们可以通过改变数据文件头的检查点号,让oracle避开对该文
件的检查,实现完全恢复,及时打开数据库。
1、数据库异常断电,导致users表空间的数据文件损坏
2、从早期的备份中转储数据文件到目标位置
3、对数据库进行recovery,假如归档日志损坏,该表空间没有被修改,但是没有变成
readonly,数据库无法做完全recovery,所以无法打开:
SQL> alter database open;
alter database open
*
ERROR at line 1:
ORA-01113: file 4 needs media recovery
ORA-01110: data file 4: '/u01/app/oracle/oradata/TIANJIN/users01.dbf'
SQL> recover database;
ORA-00279: change 1951719 generated at 08/25/2012 13:52:08 needed for thread 1
ORA-00289: suggestion :
/home/oracle/oracle/product/10.2.0/db_1/dbs/arch1_107_783745676.dbf
ORA-00280: change 1951719 for thread 1 is in sequence #107
Specify log: {<RET>=suggested | filename | AUTO | CANCEL}
auto
ORA-00308: cannot open archived log
'/home/oracle/oracle/product/10.2.0/db_1/dbs/arch1_107_783745676.dbf'
ORA-27037: unable to obtain file status
Linux Error: 2: No such file or directory
Additional information: 3
4、由于该表空间没有被修改,归档日志里面应该没有记录有关该表空间被改变的信息,但
是oracle不知道,所以它必须要用到归档,才能够进行recovery,此时,我们的解决办法
是:把该表空间的数据文件头的检查点号改成跟控制文件记录的一样,那么oracle就不会做
介质恢复,只做实例恢复,则就能够recovery成功,可以使用bbed来实现。
5、查询控制文件中的每个数据文件所应该有的检查点号:
SQL> select name,CHECKPOINT_CHANGE# from v$datafile;
NAME CHECKPOINT_CHANGE#
-------------------------------------------------- ------------------
/u01/app/oracle/oradata/TIANJIN/system01.dbf 1991891
/u01/app/oracle/oradata/TIANJIN/undotbs01.dbf 1991891
/u01/app/oracle/oradata/TIANJIN/sysaux01.dbf 1991891
/u01/app/oracle/oradata/TIANJIN/users01.dbf 1991891
/u01/app/oracle/oradata/TIANJIN/example01.dbf 1991891
/u01/app/oracle/oradata/TIANJIN/rbs01.dbf 1991891
/u01/app/oracle/oradata/TIANJIN/gguser.dbf 1991891
第 1 页
Tel:010-88589826 Fax:010-88587520 网址: http://www.cuug.com
修改数据文件头做完全恢复-bbed3.txt
6、查询控制文件中的每个数据文件头实际的检查点号:
SQL> select name,CHECKPOINT_CHANGE# from v$datafile_header;
NAME CHECKPOINT_CHANGE#
-------------------------------------------------- ------------------
/u01/app/oracle/oradata/TIANJIN/system01.dbf 1991891
/u01/app/oracle/oradata/TIANJIN/undotbs01.dbf 1991891
/u01/app/oracle/oradata/TIANJIN/sysaux01.dbf 1991891
/u01/app/oracle/oradata/TIANJIN/users01.dbf 1951719
/u01/app/oracle/oradata/TIANJIN/example01.dbf 1991891
/u01/app/oracle/oradata/TIANJIN/rbs01.dbf 1991891
/u01/app/oracle/oradata/TIANJIN/gguser.dbf 1991891
通过比较,我们发现当前数据文件头的检查点号是:1951719,把它转换成16进制
是1DC7E7;而所应该有的检查点号是1991891,转换成16进制是1E64D3。
7、使用BBED进行修改,先显示有关数据文件的信息:
BBED> info
File# Name Size(blks)
----- ---- ----------
1 /u01/app/oracle/oradata/TIANJIN/system01.dbf 64000
2 /u01/app/oracle/oradata/TIANJIN/undotbs01.dbf 5120
3 /u01/app/oracle/oradata/TIANJIN/sysaux01.dbf 35840
4 /u01/app/oracle/oradata/TIANJIN/users01.dbf 5280
5 /u01/app/oracle/oradata/TIANJIN/example01.dbf 12800
8 /u01/app/oracle/oradata/TIANJIN/rbs01.dbf 2560
9 /u01/app/oracle/oradata/TIANJIN/gguser.dbf 6400
8、设置需要修改的数据文件:
BBED> set dba 4,1
DBA 0x01000001 (16777217 4,1)
9、dump其中的内容:
BBED> d /v dba 4,1
File: /u01/app/oracle/oradata/TIANJIN/users01.dbf (4)
Block: 1 Offsets: 0 to 511 Dba:0x01000001
-------------------------------------------------------
0ba20000 01000001 00000000 00000104 l ..............
d8d50000 00000000 0001200a 0bbd9409 l 卣........ ...
50524f44 5f544a00 1b120000 a0140000 l PROD_TJ.......
10、打印数据文件头的信息:
BBED> p kcvfhckp
struct kcvfhckp, 36 bytes @484
struct kcvcpscn, 8 bytes @484
ub4 kscnbas @484 0x001dc7e7 --这里就是16
进制的检查点号
ub2 kscnwrp @488 0x0000
ub4 kcvcptim @492 0x2f38cc88
ub2 kcvcpthr @496 0x0001
union u, 12 bytes @500
struct kcvcprba, 12 bytes @500
ub4 kcrbaseq @500 0x0000006b
第 2 页
Tel:010-88589826 Fax:010-88587520 网址: http://www.cuug.com
of 4
10墨值下载
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文档的来源(墨天轮),文档链接,文档作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论

关注
最新上传
暂无内容,敬请期待...
下载排行榜
Top250 周榜 月榜