日期:2014-05-16 浏览次数:20516 次
最近在学习Oracle 归档日志模式的管理, 特撰写一下学习心得,不足之处还望指出!!!
-----------------------
一 系统环境:
1、操作系统:Windows xp sp3
2、数据库: Oracle 10g
二 Oracle 重做日志的作用: [模拟介质恢复]
1. 关闭数据库归档模式:
SQL> shutdown immediate 数据库已经关闭。 已经卸载数据库。 ORACLE 例程已经关闭。 SQL> startup mount ORACLE 例程已经启动。 Total System Global Area 608174080 bytes Fixed Size 1250404 bytes Variable Size 159386524 bytes Database Buffers 440401920 bytes Redo Buffers 7135232 bytes 数据库装载完毕。 SQL> alter database noarchivelog; 数据库已更改。
2.创建测试表空间:
create tablespace test datafile 'e:\oradata\test.ora' size 5M AUTOEXTEND ON NEXT 1M MAXSIZE UNLIMITED default storage (initial 128K next 1M pctincrease 0);
3.创建测试用户与测试表:
drop user test cascade; create user test identified by test default tablespace test; grant connect,resource to test; conn test/test create table a(a number); begin for i in 1..100000 loop insert into a values(i); end loop; end; 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步, 我们开启归档日志:
SQL> alter database archivelog; 数据库已更改。 SQL> alter database open; 数据库已更改。
2. 删除a表部分数据:
SQL> conn test/test 已连接。 SQL> delete from a where rownum<=100000; 已删除100000行。 SQL> commit; 提交完成。
SQL> select group#, members, archived, status from v$log; GROUP# MEMBERS ARC STATUS ---------- ---------- --- ---------------- 1 1 NO CURRENT 2 1 YES INACTIVE 3 1 YES ACTIVE SQL> alter system switch logfile; 系统已更改。 SQL> alter system checkpoint; 系统已更改。 SQL> alter database clear logfile group 1; 数据库已更改。 SQL> shutdown immediate 数据库已经关闭。 已经卸载数据库。 ORACLE 例程已经关闭。 SQL> startup ORACLE 例程已经启动。 Total System Global Area 608174080 bytes Fixed Size 1250404 bytes Variable Size 176163740 bytes Database Buffers 423624704 bytes Redo Buffers 7135232 bytes 数据库装载完毕。 ORA-01113: 文件 11 需要介质恢复 ORA-01110: 数据文件 11: 'E:\ORADATA\TEST.ORA' SQL> recover database ORA-00279: 更改 3455649 (在 11/21/2012 13:23:53 生成) 对于线程 1 是必需的 ORA-00289: 建议: E:\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\2012_11_21\O1_MF_1_212_%U_.ARC ORA-00280: 更改 3455649 (用于线程 1) 在序列 #212 中 指定日志: {<RET>=suggested | filename | AUTO | CANCEL} 已应用的日志。 完成介质恢复。 SQL> alter database open; 数据库已更改。
4. 以test用户登录查看a表中数据是否还原:
SQL> select count(1) from a; COUNT(1) ---------- 100000