oracle新增数据后要做归档,实验说明Oracle重做日记与归档日志的作用

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

最近在学习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

104210562.jpg

9. 进行介质恢复:

104210563.jpg

三 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;

提交完成。

3. 做重做日志归档操作,并清空当前在线日志文件:

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 中

指定日志: {=suggested | filename | AUTO | CANCEL}

已应用的日志。

完成介质恢复。

SQL> alter database open;

数据库已更改。

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

SQL> select count(1) from a;

COUNT(1)

----------

100000

四  心得:

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

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

归档日志与全库备份文件的结合恢复效果更好。

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

present  by

dylan.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值