几种oracle数据库恢复的练习示例

作为一个dba,最重要的工作莫过于保证数据库中数据的安全,当一个数据库down掉之后,恢复旧变成了至关重要的事情。能否成功的恢复,并不在于数据库down掉时采取的恢复策略,要保证数据的万无一失,一套完整的备份方案是必须的。但作为dba,还应该了解和掌握各种情况下应该采取哪些恢复措施,并且清楚的指导每一种恢复方式的会产生什么样的结果。以下是几种常用的的备份和恢复方式的具体示例,是入门的dba必须掌握的。

    实例1:归档的数据库,完整的数据库全库备份,完整的归档备份,此时数据库down掉,只留下控制文件和日志文件可用。
1:安全关闭当前数据库。(确保当前数据库处于归档模式下)。
2:copy所有的数据文件,日志文件和控制文件到一个目录下。
3:打开数据库,建新用户user1
create user user1 identified by aaaaaa;
grant dba to user1;
connect user1/aaaaaa;
4:在user1 下建表T1,向T1中插入10000条数据。
Begin
For I in 1..100000 loop
Insert into t1 values(i);
End loop;
Commit;
End;
/
5:切换几次日志,使所有日志都已经归档。
Alter system switch log file;
6:正常关闭数据库。Shutdown immediate;
7:恢复:
把当前数据库所有文件移动到一个临时文件夹里,模拟数据库损坏。
8:COPY最初复制的数据库的所有文件,但控制文件和日志文件要使用目前数据库的。
9:启动数据库 startup
mount 后会提示SYSTEM表空间需要恢复。并给出恢复使用的归档日志文档。
确定归档日志位置正确后,输入auto.
ORACLE将一个一个的应用归档文档。直至提示完全恢复成功。
10:打开数据库 alter database open;
11:查看user1用户及t1表中是否有刚才插入的10000条记录。
至此,整个使用归档日志对完整的数据库冷备份进行完全恢复的模拟成功完成。
实例2:上面的例子,并且在线日志online redo也丢失,在这种情况下,只能做不完全恢复。前8步同上。
9:startup mount;
10:步完全恢复:
recover database until cance;
o mount 后会提示SYSTEM表空间需要恢复。并给出恢复使用的归档日志文档。
确定归档日志位置正确后,回车,一个个应用归档日志,直至最后提示的归档日志用完后下一个归档日志时输入cancel.
Oracle 提示:
  
  
Log applied. ORA - 00279 : change 84852341 generated at 09 / 24 / 2003 12 : 16 : 41 needed for thread 1 ORA - 00289 : suggestion : D:/ORACLE/ORADATA/SAMPLE/ARCHIVE/TESTT001S01349.ARC ORA - 00280 : change 84852341 for thread 1 is in sequence # 1349 ORA - 00278 : log file ' D:/ORACLE/ORADATA/SAMPLE/ARCHIVE/TESTT001S01348.ARC ' no lon recovery Specify log : { < RET >= suggested | filename | AUTO | CANCEL} cancel Media recovery cancelled.
这是需要resetlogs参数打开数据库。
Alter database open resetlogs;

实例3:上面的例子也可以做基于时间的不完全恢复,但时间必须是数据已经保留在归档日志中的时间及以前。
9:startup mount;
10:基于时间点的不完全恢复:
  
  
recover database until time ‘ 2003 - 9 - 24 12 : 20 ’; SVRMGR > recover database until time ' 2003-9-24 11:20 ' ; ORA - 00279 : ?? 84851370 (? 09 / 24 / 2003 11 : 16 : 01 ??) ???? 1 ???? ORA - 00289 : ??: D:/ORACLE/ORADATA/SAMPLE/ARCHIVE/TESTT001S01324.ARC ORA - 00280 : ?? 84851370 ???? 1 ???? # 1324 ??? 指定日志: { < RET >= suggested | filename | AUTO | CANCEL}
应用的记录。
SVRMGR> alter database open resetlogs;  实例4:归档模式下单个数据文件丢失或损坏,从冷备份中恢复的模拟练习
1:已经做了冷备份。
2:abort方式关掉前的数据库,模拟由于数据文件丢失造成数据库非正常关闭。
3:从冷备份当中copy丢失的数据文件。
4:startup mount;
5:只对这个文件进行恢复。
Recover datafile 'D:/ORACLE/ORADATA/SAMPLE/DR01.DBF';
ORA-00279: 更改 84851719 (在 09/24/2003 12:15:51 生成) 对于线程 1 是必需的
ORA-00289: 建议: D:/ORACLE/ORADATA/SAMPLE/ARCHIVE/TESTT001S01330.ARC
ORA-00280: 更改 84851719 对于线程 1 是按序列 # 1330 进行的
ORA-00278: 此恢复不再需要日志文件 'D:/ORACLE/ORADATA/SAMPLE/ARCHIVE/TESTT001S01329.ARC'
指定日志: {<RET>=suggested | filename | AUTO | CANCEL}
auto 指定为自动恢复。
应用的记录。

直至完成。
ORA-00278: 此恢复不再需要日志文件 'D:/ORACLE/ORADATA/SAMPLE/ARCHIVE/TESTT001S01343.ARC'
应用的记录。
完成介质的恢复。
6:打开数据库
alter database open;

另一种方法:
1:startup mount;
2:alter database datafile 'D:/ORACLE/ORADATA/SAMPLE/DR01.DBF' offline;
3:alter database open;
4:recover datafile 'D:/ORACLE/ORADATA/SAMPLE/DR01.DBF';;
5:alter database datafile 'D:/ORACLE/ORADATA/SAMPLE/DR01.DBF' online;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值