实验说明Oracle重做日志与归档日志的作用

最近在学习Oracle 归档日志模式的管理, 特撰写一下学习心得,不足之处还望指出!!!

-----------------------------------------------------------

一 系统环境: 


1、操作系统:Windows xp sp3
2、数据库: Oracle 10g 


二 Oracle 重做日志的作用:[模拟介质恢复]

1. 关闭数据库归档模式:

  1. SQL> shutdown immediate  
  2. 数据库已经关闭。  
  3. 已经卸载数据库。  
  4. ORACLE 例程已经关闭。  
  5. SQL> startup mount  
  6. ORACLE 例程已经启动。  
  7.   
  8. Total System Global Area  608174080 bytes  
  9. Fixed Size                  1250404 bytes  
  10. Variable Size             159386524 bytes  
  11. Database Buffers          440401920 bytes  
  12. Redo Buffers                7135232 bytes  
  13. 数据库装载完毕。  
  14. SQL> alter database noarchivelog;  
  15.   
  16. 数据库已更改。  
  

2.创建测试表空间:

  1. create tablespace test datafile  
  2. 'e:\oradata\test.ora' size 5M  
  3. AUTOEXTEND ON NEXT 1M MAXSIZE UNLIMITED  
  4. default storage (initial 128K next 1M pctincrease 0);  

3.创建测试用户与测试表:

  1. drop user test cascade;  
  2. create user test identified by test default tablespace test;  
  3. grant connect,resource to test;  
  4. conn test/test  
  5.   
  6. create table a(a number);  
  7.  begin  
  8.    for i in 1..100000 loop  
  9.     insert into a values(i);  
  10.    end loop;  
  11.  end;  
  12.   
  13. commit;  

4. 拷贝test.ora为test1.ora文件。

5. insert into a select * from a;    --20万条

6.关闭数据库
  shutdown immediate

7. 将文件test1.ora与test.ora名称互换。

8. 再次启动数据库
   startup


9. 进行介质恢复:

 

三 Oracle 归档日志作用: [模拟重做日志丢失]

  1.  紧接着实验二 第9步, 我们开启归档日志:

  1. SQL> alter database archivelog;  
  2.   
  3. 数据库已更改。  
  4.   
  5. SQL> alter database open;  
  6.   
  7. 数据库已更改。  

  2. 删除a表部分数据:

  1. SQL> conn test/test  
  2. 已连接。  
  3. SQL> delete from a where rownum<=100000;  
  4.   
  5. 已删除100000行。  
  6.   
  7. SQL> commit;  
  8.   
  9. 提交完成。  

  3. 做重做日志归档操作,并清空当前在线日志文件:
  1. SQL> select group#, members, archived, status from v$log;  
  2.   
  3.     GROUP#    MEMBERS ARC STATUS  
  4. ---------- ---------- --- ----------------  
  5.          1          1 NO  CURRENT  
  6.          2          1 YES INACTIVE  
  7.          3          1 YES ACTIVE  
  8.   
  9. SQL> alter system switch logfile;  
  10.   
  11. 系统已更改。  
  12. SQL> alter system checkpoint;  
  13.   
  14. 系统已更改。  
  15.   
  16. SQL> alter database clear logfile group 1;  
  17.   
  18. 数据库已更改。  
  19.   
  20. SQL> shutdown immediate  
  21. 数据库已经关闭。  
  22. 已经卸载数据库。  
  23. ORACLE 例程已经关闭。  
  24. SQL> startup  
  25. ORACLE 例程已经启动。  
  26.   
  27. Total System Global Area  608174080 bytes  
  28. Fixed Size                  1250404 bytes  
  29. Variable Size             176163740 bytes  
  30. Database Buffers          423624704 bytes  
  31. Redo Buffers                7135232 bytes  
  32. 数据库装载完毕。  
  33. ORA-01113: 文件 11 需要介质恢复  
  34. ORA-01110: 数据文件 11: 'E:\ORADATA\TEST.ORA'  
  35.   
  36.   
  37. SQL> recover database  
  38. ORA-00279: 更改 3455649 (在 11/21/2012 13:23:53 生成) 对于线程 1 是必需的  
  39. ORA-00289: 建议:  
  40. E:\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\2012_11_21\O1_MF_1_212_%U_.ARC  
  41. ORA-00280: 更改 3455649 (用于线程 1) 在序列 #212 中  
  42.   
  43.   
  44. 指定日志: {<RET>=suggested | filename | AUTO | CANCEL}  
  45.   
  46. 已应用的日志。  
  47. 完成介质恢复。  
  48. SQL> alter database open;  
  49.   
  50. 数据库已更改。  

4. 以test用户登录查看a表中数据是否还原:

  1. SQL> select count(1) from a;  
  2.   
  3.   COUNT(1)  
  4. ----------  
  5.     100000  




四  心得:

   Oracle 联机重做日志(ONLINE REDO LOG FILE)主要用于数据库的介质恢复,比如数据文件的损坏。

                归档日志(ARCHIVED LOG FILE)其实就是对在线日志的备份,毕竟在线日志空间有限而仅能保存一定时间的重做日志数据。

                归档日志与全库备份文件的结合恢复效果更好。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值