Chinaunix首页 | 论坛 | 博客
  • 博客访问: 8869
  • 博文数量: 4
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 10
  • 用 户 组: 普通用户
  • 注册时间: 2014-03-19 10:40
文章分类

全部博文(4)

文章存档

2016年(3)

2014年(1)

我的朋友

分类: Oracle

2016-03-29 11:32:20

原文地址:调整redo log 日志大小 作者:Elinc

朋友的一数据库redo log 日志太小,导致日志切换很频繁。
 1.查看当前日志组成员
  1. SQL> select member from v$logfile;

  2. MEMBER
  3. --------------------------------------------------------------------------------
  4. /u01/oracle/oradata/orcl/redo03.log
  5. /u01/oracle/oradata/orcl/redo02.log
  6. /u01/oracle/oradata/orcl/redo01.log
2. 查看当前日志组状态
  1. SQL> select group#,members,bytes/1024/1024,status from v$log;

  2.     GROUP# MEMBERS BYTES/1024/1024 STATUS
  3. ---------- ---------- --------------- ----------------
  4.          1 1 50 ACTIVE
  5.          2 1 50 CURRENT
  6.          3 1 50 INACTIVE
现在有三个日志成员,大小为50M,欲更改为100M
增加日志组

  1. SQL>alter database add logfile group 4 ('/u01/oracle/oradata/orcl/redo04.log') size 100M;
  2. SQL>alter database add logfile group 5 ('/u01/oracle/oradata/orcl/redo05.log') size 100M;
  3. SQL>alter database add logfile group 6 ('/u01/oracle/oradata/orcl/redo06.log') size 100M;
3.切换到新增的日志组上
  1. SQL> alter system switch logfile;

  2. System altered.

  3. SQL> alter system switch logfile;

  4. System altered.
  5. SQL> select group#,members,bytes/1024/1024,status from v$log

  6.     GROUP#    MEMBERS BYTES/1024/1024 STATUS
  7. ---------- ---------- --------------- ----------------
  8.          1          1              50 INACTIVE
  9.          2          1              50 INACTIVE
  10.          3          1              50 ACTIVE
  11.          4          1             100 CURRENT
  12.          5          1             100 UNUSED
  13.          6          1             100 UNUSED

a. CURRENT指当前的日志文件,在进行实例恢复时是必须的;
b. ACTIVE是指活动的非当前日志,在进行实例恢复时会被用到。Active状态意味着,Checkpoint尚未完成,因此该日志文件不能被覆盖。
c. INACTIVE是非活动日志,在实例恢复时不再需要,但在介质恢复时可能需要。
d. UNUSED表示该日志从未被写入,可能是刚添加的,或RESETLOGS后被重置。

4.删除旧的日志组
  1. SQL> alter database drop logfile group 1;

  2. Database altered.

  3. SQL> alter database drop logfile group 2
  4.   2 /

  5. Database altered.

  6. SQL> alter database drop logfile group 3;
  7. alter database drop logfile group 3
  8. *
  9. ERROR at line 1:
  10. ORA-01624: log 3 needed for crash recovery of instance dbserver (thread 1)
  11. ORA-00312: online log 3 thread 1: '/u01/oracle/oradata/orcl/redo03.log'
由于log 3 日志成员还出去active 状态,所以不能drop掉的,再次执行 alter system switch logfile

  1. SQL> select group#,members,bytes/1024/1024,status from v$log;

  2.     GROUP# MEMBERS BYTES/1024/1024 STATUS
  3. ---------- ---------- --------------- ----------------
  4.          3 1 50 INACTIVE
  5.          4 1 100 ACTIVE
  6.          5 1 100 CURRENT
  7.          6 1 100 UNUSED
  8. SQL> alter database drop logfile group 3;

  9. Database altered.


  10. SQL> select group#,members,bytes/1024/1024,status from v$log;

  11.     GROUP# MEMBERS BYTES/1024/1024 STATUS
  12. ---------- ---------- --------------- ----------------
  13.          4 1 100 ACTIVE
  14.          5 1 100 ACTIVE
  15.          6 1 100 CURRENT
在操作系统下删除掉redolog 日志文件
mv  /u01/oracle/oradata/orcl/redo0[1-3].log /tmp


阅读(279) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~