数据库redo log日志太小,默认单个文件只有50M,3个日志文件循环写,容易导致日志频繁切换,因此建议调整

博客指出数据库redo log日志默认单个文件50M,3个文件循环写易导致频繁切换,建议调整。详细介绍了调整步骤,包括查看当前日志组成员和状态、增加日志组、切换到新增日志组、删除旧日志组,还说明了日志成员状态及删除注意事项,最后在操作系统下删除旧日志文件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

数据库redo log日志太小,默认单个文件只有50M,3个日志文件循环写,容易导致日志频繁切换,因此建议调整。

1.查看当前日志组成员

SQL> select member from v$logfile;

MEMBER

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

/opt/oracle/oradata/orcl/redo03.log

/opt/oracle/oradata/orcl/redo02.log

/opt/oracle/oradata/orcl/redo01.log

 

 

2.查看当前日志组状态

 

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

 

    GROUP#    MEMBERS BYTES/1024/1024

 

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

STATUS

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

         1          1              50

CURRENT

         2          1              50

INACTIVE

         3          1              50

INACTIVE

SQL> 

 

现在有三个日志成员,大小为50M,想要更改为1024M。

 

 

 

3.增加日志组

 

SQL> alter database add logfile group 4 ('/opt/oracle/oradata/orcl/redo04.log') size 1G;

 

SQL> alter database add logfile group 5 ('/opt/oracle/oradata/orcl/redo05.log') size 1G;

 

SQL> alter database add logfile group 6 ('/opt/oracle/oradata/orcl/redo06.log') size 1G;

 

 

 

4.切换到新增的日志组上

 

SQL> alter system switch logfile;

 

System altered.

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

 

    GROUP#    MEMBERS BYTES/1024/1024

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

STATUS

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

         1          1              50

ACTIVE

         2          1              50

INACTIVE

         3          1              50

INACTIVE

    GROUP#    MEMBERS BYTES/1024/1024

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

STATUS

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

         4          1            1024

CURRENT

         5          1            1024

UNUSED

         6          1            1024

UNUSED

 

 

CURRENT:   指当前的日志文件,在进行实例恢复时是必须的。

 

ACTIVE:    是指活动的非当前日志,在进行实例恢复时会被用到。Active状态意味着Checkpoint尚未完成,因此该日志文件不能被覆盖。

INACTIVEL  是非活动日志,在实例恢复时不再需要,但在介质恢复时可能需要。

 

UNUSED:    表示该日志从未被写入,可能是刚添加的,或RESETLOGS后被重置。

 

5.删除旧的日志组

 

SQL> alter database drop logfile group 3;

 

SQL> alter database drop logfile group 2;

 

SQL> alter database drop logfile group 1;

 

SQL> alter database drop logfile group 3;

Database altered.

 

SQL> alter database drop logfile group 2;

 

Database altered.

SQL> alter database drop logfile group 1;

 

alter database drop logfile group 1

*

ERROR at line 1:

ORA-01624: log 1 needed for crash recovery of instance orcl (thread 1)

 

ORA-00312: online log 1 thread 1: '/opt/oracle/oradata/orcl/redo01.log'

SQL> 

 

 

注意:日志成员处在active状态,不能drop掉的,再次执行 alter system switch logfile; 切换日志组,然后就可以删除GROUP 1了。

 

SQL> alter system switch logfile;

 

System altered.

 

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

 

    GROUP#    MEMBERS BYTES/1024/1024

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

STATUS

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

         1          1              50

INACTIVE

         4          1            1024

ACTIVE

         5          1            1024

CURRENT

    GROUP#    MEMBERS BYTES/1024/1024

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

STATUS

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

         6          1            1024

UNUSED

SQL> 

 

SQL> alter database drop logfile group 1;

 

Database altered.

 

SQL> 

 

 

再查看日志组

 

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

 

    GROUP#    MEMBERS BYTES/1024/1024

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

STATUS

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

         4          1            1024

ACTIVE

         5          1            1024

CURRENT

         6          1            1024

UNUSED

SQL> 

 

6.在操作系统下删除掉redolog日志文件

 

# mv /opt/oracle/oradata/orcl/redo0[1-3].log /tmp

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

作者:sunny05296

来源:优快云

原文:https://blog.youkuaiyun.com/sunny05296/article/details/58591826

版权声明:本文为博主原创文章,转载请附上博文链接!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值