手工完全恢复(将数据文件恢复到新的位置)

实验环境:red hat 5.8

oracle环境:11.2.0.3

只坏一个文件

实验前先备份

使用脚本,冷备份和热备份

冷备份参考:http://blog.csdn.net/rlhua/article/details/11850445

热备份参考:http://blog.csdn.net/rlhua/article/details/11850629

 

1、首先建立一张测试用的表。

sys@TEST0910> conn scott/tiger
Connected.
scott@TEST0910> create table test4 as select * from emp;
Table created.

 

2、插入三次数据,分别为提交归档,提交不归档,不提交不归档

sys@TEST0910> insert into scott.test4 select * from scott.emp;
14 rows created.
sys@TEST0910> commit;
Commit complete.
sys@TEST0910> alter system archive log current;
System altered.
sys@TEST0910> select count(*) from scott.test4;
  COUNT(*)
----------
        28
sys@TEST0910> insert into scott.test4 select * from scott.emp;
14 rows created.
sys@TEST0910> commit;
Commit complete.
sys@TEST0910> select count(*) from scott.test4;
  COUNT(*)
----------
        42
sys@TEST0910> insert into scott.test4 select * from scott.emp;
14 rows created.
sys@TEST0910>  select count(*) from scott.test4;
  COUNT(*)
----------
        56

 

3、模拟断电。

sys@TEST0910> shutdown abort;
ORACLE instance shut down.
 
4、删除数据文件
[oracle@rtest ~]$ rm /u01/app/oracle/oradata/test0910/users01.dbf
 
5、起库,报错,查询哪个文件损坏。
sys@TEST0910> startup
ORACLE instance started.
Total System Global Area 2505338880 bytes
Fixed Size                  2230952 bytes
Variable Size             587203928 bytes
Database Buffers         1895825408 bytes
Redo Buffers               20078592 bytes
Database mounted.
ORA-01157: cannot identify/lock data file 4 - see DBWR trace file
ORA-01110: data file 4: '/u01/app/oracle/oradata/test0910/users01.dbf'
sys@TEST0910> select file#,error from v$recover_file;
     FILE# ERROR
---------- -----------------------------------------------------------------
         4 FILE NOT FOUND
 
6、使用高可用模式,先开库,后恢复
先让datafile offline
sys@TEST0910> alter database datafile 4 offline;
Database altered.
sys@TEST0910> alter database open;
Database altered.
 
7、转储到新的位置
 
 
[oracle@rtest disk1]$  cp /u01/app/oracle/bak/hot_bak/users01.dbf /u01/app/oracle/oradata/test0910/disk1/users01.dbf
[oracle@rtest disk1]$ ls
users01.dbf

 

 

8、使用rename改变位置

sys@TEST0910> alter database rename file '/u01/app/oracle/oradata/test0910/users01.dbf' to  '/u01/app/oracle/oradata/test0910/disk1/users01.dbf';
Database altered.
 
9、恢复数据文件,容乃公数据文件online
sys@TEST0910> recover datafile 4;
ORA-00279: change 1647795 generated at 09/19/2013 20:16:10 needed for thread 1
ORA-00289: suggestion :
/u01/app/oracle/fast_recovery_area/TEST0910/archivelog/2013_09_19/o1_mf_1_39_93q4z4lt_.arc
ORA-00280: change 1647795 for thread 1 is in sequence #39
Specify log: {<RET>=suggested | filename | AUTO | CANCEL}
auto
ORA-00279: change 1648611 generated at 09/19/2013 20:16:35 needed for thread 1
ORA-00289: suggestion :
/u01/app/oracle/fast_recovery_area/TEST0910/archivelog/2013_09_19/o1_mf_1_40_93qc5g30_.arc
ORA-00280: change 1648611 for thread 1 is in sequence #40
ORA-00279: change 1656909 generated at 09/19/2013 22:02:21 needed for thread 1
ORA-00289: suggestion :
/u01/app/oracle/fast_recovery_area/TEST0910/archivelog/2013_09_20/o1_mf_1_41_93rysdc1_.arc
ORA-00280: change 1656909 for thread 1 is in sequence #41
ORA-00279: change 1682384 generated at 09/20/2013 12:43:24 needed for thread 1
ORA-00289: suggestion :
/u01/app/oracle/fast_recovery_area/TEST0910/archivelog/2013_09_20/o1_mf_1_42_93ryywvd_.arc
ORA-00280: change 1682384 for thread 1 is in sequence #42
ORA-00279: change 1682485 generated at 09/20/2013 12:46:20 needed for thread 1
ORA-00289: suggestion :
/u01/app/oracle/fast_recovery_area/TEST0910/archivelog/2013_09_20/o1_mf_1_43_93s0lg0r_.arc
ORA-00280: change 1682485 for thread 1 is in sequence #43
ORA-00279: change 1702534 generated at 09/20/2013 13:13:48 needed for thread 1
ORA-00289: suggestion :
/u01/app/oracle/fast_recovery_area/TEST0910/archivelog/2013_09_20/o1_mf_1_44_93s106lj_.arc
ORA-00280: change 1702534 for thread 1 is in sequence #44
ORA-00279: change 1703113 generated at 09/20/2013 13:21:10 needed for thread 1
ORA-00289: suggestion :
/u01/app/oracle/fast_recovery_area/TEST0910/archivelog/2013_09_20/o1_mf_1_45_93s1bwhd_.arc
ORA-00280: change 1703113 for thread 1 is in sequence #45
ORA-00279: change 1723137 generated at 09/20/2013 13:26:52 needed for thread 1
ORA-00289: suggestion :
/u01/app/oracle/fast_recovery_area/TEST0910/archivelog/2013_09_20/o1_mf_1_46_93s2kccp_.arc
ORA-00280: change 1723137 for thread 1 is in sequence #46
ORA-00279: change 1724278 generated at 09/20/2013 13:47:23 needed for thread 1
ORA-00289: suggestion :
/u01/app/oracle/fast_recovery_area/TEST0910/archivelog/2013_09_20/o1_mf_1_47_93s32w3k_.arc
ORA-00280: change 1724278 for thread 1 is in sequence #47
ORA-00279: change 1744396 generated at 09/20/2013 13:56:43 needed for thread 1
ORA-00289: suggestion :
/u01/app/oracle/fast_recovery_area/TEST0910/archivelog/2013_09_20/o1_mf_1_48_93ss22cp_.arc
ORA-00280: change 1744396 for thread 1 is in sequence #48
ORA-00279: change 1758153 generated at 09/20/2013 20:11:45 needed for thread 1
ORA-00289: suggestion :
/u01/app/oracle/fast_recovery_area/TEST0910/archivelog/2013_09_20/o1_mf_1_49_93szgs9j_.arc
ORA-00280: change 1758153 for thread 1 is in sequence #49
ORA-00279: change 1766481 generated at 09/20/2013 22:00:56 needed for thread 1
ORA-00289: suggestion :
/u01/app/oracle/fast_recovery_area/TEST0910/archivelog/2013_09_21/o1_mf_1_50_93tvkm26_.arc
ORA-00280: change 1766481 for thread 1 is in sequence #50
ORA-00279: change 1783681 generated at 09/21/2013 06:00:18 needed for thread 1
ORA-00289: suggestion :
/u01/app/oracle/fast_recovery_area/TEST0910/archivelog/2013_09_21/o1_mf_1_51_93vdmv7w_.arc
ORA-00280: change 1783681 for thread 1 is in sequence #51
ORA-00279: change 1792730 generated at 09/21/2013 10:51:38 needed for thread 1
ORA-00289: suggestion :
/u01/app/oracle/fast_recovery_area/TEST0910/archivelog/2013_09_21/o1_mf_1_52_93vdzvnf_.arc
ORA-00280: change 1792730 for thread 1 is in sequence #52
Log applied.
Media recovery complete.
sys@TEST0910> alter database datafile 4 online;
Database altered.
sys@TEST0910> select count(*) from scott.test4;
  COUNT(*)
----------
        42

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
大家好,今天讲手工恢复dbr。就拿u盘来讲吧。手工恢复其实就是改bpb表的几个字节。大家看我的演示吧。声音录制不上,只能这样打字了。我就不拿实际恢复举例了,我就讲解一下,这几个自己怎么算。 大家看我的演示,打开winhex。这个就是u盘,大小64m的。扇区0,就是dbr。我给大家做了个ppt,大家看一下。大家看我画方框的地方,这就是要计算的这几个字节。一共5个。隐藏扇区不用算了,这个是0,因为没有分区表。扇区大小,要是硬盘的话,就根据分区表填写,这里是128640,看左下角。 在就是每簇扇区数,根项目,和保留扇区。每簇扇区数有个公式,大家看一下。上面的是fat16的,下面的是fat32的。大家根据这个公式计算就可以了,保留扇区,fat16的一般是2个, 扇区2就是fat表了,所以保留2个扇区,就是这样计算。硬盘就搜fat表,找到fat表以后, 就知道保留了几个扇区了。还有就是根项目,这个一般是512,要是pq调整过的话, 就找FDT起始扇区,有fat2起始扇区和长度就很容易得到fdt的起始扇区。 查找到没有数据(也就是全0)后,继续找,找到个非0扇区,也就是数据区 开始扇区,由此就得到fdt的扇区数,在根据每文件目录登记项占用32个字节 就可以算出引导记录数。在转换为16进制,填写在bpb表处就可以了。 位置看这个图。我话方框的地方。 fat32的恢复和这个差不多。大家有不明白的在问。QQ597911642.今天就讲这些吧。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值