您的位置:首页 > 其它

REDO 重做日志文件(redo log files)管理

2016-04-15 09:24 465 查看
1.当前日志相关信息

sys@ora11g> select * from v$log;

GROUP# THREAD# SEQUENCE# BYTES MEMBERS ARC STATUS FIRST_CHANGE# FIRST_TIM

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

1 1 10 209715200 1 YES INACTIVE 461938 09-MAR-09

2 1 11 209715200 1 NO CURRENT 485885 09-MAR-09

3 1 9 209715200 1 YES INACTIVE 432636 04-MAR-09

sys@ora11g> select * from v$logfile;

GROUP# STATUS TYPE MEMBER IS_

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

1 ONLINE /oracle/u02/oradata/ora11g/redo01.log NO

2 ONLINE /oracle/u02/oradata/ora11g/redo02.log NO

3 ONLINE /oracle/u02/oradata/ora11g/redo03.log NO

2.添加重做日志组

sys@ora11g> alter database add logfile group 4 ('/oracle/u02/oradata/ora11g/redo04_01.log','/oracle/u02/oradata/ora11g/redo04_02.log') size
50m;

Database altered.

sys@ora11g> select * from v$log;

GROUP# THREAD# SEQUENCE# BYTES MEMBERS ARC STATUS FIRST_CHANGE# FIRST_TIM

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

1 1 10 209715200 1 YES INACTIVE 461938 09-MAR-09

2 1 11 209715200 1 NO CURRENT 485885 09-MAR-09

3 1 9 209715200 1 YES INACTIVE 432636 04-MAR-09

4 1 0 52428800 2 YES UNUSED 0

sys@ora11g> select * from v$logfile;

GROUP# STATUS TYPE MEMBER IS_

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

1 ONLINE /oracle/u02/oradata/ora11g/redo01.log NO

2 ONLINE /oracle/u02/oradata/ora11g/redo02.log NO

3 ONLINE /oracle/u02/oradata/ora11g/redo03.log NO

4 ONLINE /oracle/u02/oradata/ora11g/redo04_01.log NO

4 ONLINE /oracle/u02/oradata/ora11g/redo04_02.log NO

3.添加日志文件

sys@ora11g> alter database add logfile member

'/oracle/u02/oradata/ora11g/redo01_02.log' to group 1,

'/oracle/u02/oradata/ora11g/redo02_02.log' to group 2,

'/oracle/u02/oradata/ora11g/redo03_02.log' to group 3;

Database altered.

sys@ora11g> select * from v$log;

GROUP# THREAD# SEQUENCE# BYTES MEMBERS ARC STATUS FIRST_CHANGE# FIRST_TIM

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

1 1 10 209715200 2 YES INACTIVE 461938 09-MAR-09

2 1 11 209715200 2 NO CURRENT 485885 09-MAR-09

3 1 9 209715200 2 YES INACTIVE 432636 04-MAR-09

4 1 0 52428800 2 YES UNUSED 0

sys@ora11g> select * from v$logfile order by 1;

GROUP# STATUS TYPE MEMBER IS_

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

1 ONLINE /oracle/u02/oradata/ora11g/redo01.log NO

1 INVALID ONLINE /oracle/u02/oradata/ora11g/redo01_02.log NO

2 INVALID ONLINE /oracle/u02/oradata/ora11g/redo02_02.log NO

2 ONLINE /oracle/u02/oradata/ora11g/redo02.log NO

3 ONLINE /oracle/u02/oradata/ora11g/redo03.log NO

3 INVALID ONLINE /oracle/u02/oradata/ora11g/redo03_02.log NO

4 ONLINE /oracle/u02/oradata/ora11g/redo04_02.log NO

4 ONLINE /oracle/u02/oradata/ora11g/redo04_01.log NO

8 rows selected.

4.重命名日志成员

在重命名日志组成员之前新的目标必须已经存在。Oracle的sql命令只是把控制文件中的内部指针指向新的日志文件。

1)关闭数据库

sys@ora11g> shutdown immediate;

Database closed.

Database dismounted.

ORACLE instance shut down.

2)使用操作系统命令重命名或移动日志文件

ora11g@RHEL53 /oracle/u02/oradata/ora11g$ mv redo01.log redo01_01.log

ora11g@RHEL53 /oracle/u02/oradata/ora11g$ mv redo02.log redo02_01.log

ora11g@RHEL53 /oracle/u02/oradata/ora11g$ mv redo03.log redo03_01.log

3)启动数据库实例到mount状态,重命名控制文件中的日志文件成员。

NotConnected@> select * from v$logfile order by 1,4;

GROUP# STATUS TYPE MEMBER IS_

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

1 ONLINE /oracle/u02/oradata/ora11g/redo01.log NO

2 ONLINE /oracle/u02/oradata/ora11g/redo02.log NO

3 ONLINE /oracle/u02/oradata/ora11g/redo03.log NO

4 ONLINE /oracle/u02/oradata/ora11g/redo04_01.log NO

4 ONLINE /oracle/u02/oradata/ora11g/redo04_02.log NO

1 ONLINE /oracle/u02/oradata/ora11g/redo01_02.log NO

2 ONLINE /oracle/u02/oradata/ora11g/redo02_02.log NO

3 ONLINE /oracle/u02/oradata/ora11g/redo03_02.log NO

8 rows selected.

NotConnected@> alter database rename file '/oracle/u02/oradata/ora11g/redo01.log' to '/oracle/u02/oradata/ora11g/redo01_01.log';

Database altered.

NotConnected@> alter database rename file '/oracle/u02/oradata/ora11g/redo02.log' to '/oracle/u02/oradata/ora11g/redo02_01.log';

Database altered.

NotConnected@> alter database rename file '/oracle/u02/oradata/ora11g/redo03.log' to '/oracle/u02/oradata/ora11g/redo03_01.log';

Database altered.

4)open数据库,验证结果

NotConnected@> alter database open;

Database altered.

sys@ora11g> select * from v$log;

GROUP# THREAD# SEQUENCE# BYTES MEMBERS ARC STATUS FIRST_CHANGE# FIRST_TIM

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

1 1 18 209715200 2 YES INACTIVE 486960 09-MAR-09

2 1 19 209715200 2 YES INACTIVE 486964 09-MAR-09

3 1 21 209715200 2 NO CURRENT 486973 09-MAR-09

4 1 20 52428800 2 YES INACTIVE 486968 09-MAR-09

sys@ora11g> select * from v$logfile order by 1,4;

GROUP# STATUS TYPE MEMBER IS_

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

1 ONLINE /oracle/u02/oradata/ora11g/redo01_01.log NO

1 ONLINE /oracle/u02/oradata/ora11g/redo01_02.log NO

2 ONLINE /oracle/u02/oradata/ora11g/redo02_01.log NO

2 ONLINE /oracle/u02/oradata/ora11g/redo02_02.log NO

3 ONLINE /oracle/u02/oradata/ora11g/redo03_01.log NO

3 ONLINE /oracle/u02/oradata/ora11g/redo03_02.log NO

4 ONLINE /oracle/u02/oradata/ora11g/redo04_01.log NO

4 ONLINE /oracle/u02/oradata/ora11g/redo04_02.log NO

8 rows selected.

5)最后,不要忘记备份控制文件

sys@ora11g> alter database backup controlfile to trace;

Database altered.

5.删除一个非活动的重做日志组的成员

sys@ora11g> select * from v$log;

GROUP# THREAD# SEQUENCE# BYTES MEMBERS ARC STATUS FIRST_CHANGE# FIRST_TIM

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

1 1 18 209715200 2 YES INACTIVE 486960 09-MAR-09

2 1 19 209715200 2 YES INACTIVE 486964 09-MAR-09

3 1 21 209715200 2 NO CURRENT 486973 09-MAR-09

4 1 20 52428800 2 YES INACTIVE 486968 09-MAR-09

sys@ora11g> alter database drop logfile member '/oracle/u02/oradata/ora11g/redo04_02.log';

Database altered.

sys@ora11g> !ls -l /oracle/u02/oradata/ora11g/redo04_02.log

-rw-r----- 1 oracle oinstall 52429312 Mar 9 16:28 /oracle/u02/oradata/ora11g/redo04_02.log

sys@ora11g> !rm -f /oracle/u02/oradata/ora11g/redo04_02.log

sys@ora11g> select * from v$logfile order by 1,4;

GROUP# STATUS TYPE MEMBER IS_

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

1 ONLINE /oracle/u02/oradata/ora11g/redo01_01.log NO

1 ONLINE /oracle/u02/oradata/ora11g/redo01_02.log NO

2 ONLINE /oracle/u02/oradata/ora11g/redo02_01.log NO

2 ONLINE /oracle/u02/oradata/ora11g/redo02_02.log NO

3 ONLINE /oracle/u02/oradata/ora11g/redo03_01.log NO

3 ONLINE /oracle/u02/oradata/ora11g/redo03_02.log NO

4 ONLINE /oracle/u02/oradata/ora11g/redo04_01.log NO

7 rows selected.

6.删除一个非活动的重做日志组

sys@ora11g> alter database drop logfile group 4;

Database altered.

sys@ora11g> !rm -f /oracle/u02/oradata/ora11g/redo04_01.log

sys@ora11g> select * from v$logfile;

GROUP# STATUS TYPE MEMBER IS_

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

1 ONLINE /oracle/u02/oradata/ora11g/redo01_01.log NO

2 ONLINE /oracle/u02/oradata/ora11g/redo02_01.log NO

3 ONLINE /oracle/u02/oradata/ora11g/redo03_01.log NO

1 ONLINE /oracle/u02/oradata/ora11g/redo01_02.log NO

2 ONLINE /oracle/u02/oradata/ora11g/redo02_02.log NO

3 ONLINE /oracle/u02/oradata/ora11g/redo03_02.log NO

6 rows selected.

7.强制切换日志

sys@ora11g> alter system switch logfile;

System altered.

sys@ora11g> alter system archive log current;

System altered.

8.小结

1)日志文件非常重要,当多路复用重做日志文件时,应该把一个组的成员保存在不同的磁盘上。

2)在完成日志文件维护后一定要记得备份最新的控制文件!

3)以上试验是在11g环境下完成的,在10g环境中一样适用。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: