日期:2014-05-16 浏览次数:20593 次
最近在学习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