oracle 在线日志加大,[Oracle] 增大在线重做日志文件大小

今天发现数据库很慢,看到大量进程在等待log file switch (checkpoint incomplete),日志文件的使用情况如下:

SYS@TEST15>select group#,sequence#,bytes/1024/1024 "BYTES(M)",members,archived,status from v$log;

GROUP# SEQUENCE# BYTES(M) MEMBERS ARC STATUS

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

1 205 100 2 YES ACTIVE

2 206 100 2 NO CURRENT

3 204 100 2 YES ACTIVE

SYS@TEST15>select group#,status,type,member from v$logfile where type='ONLINE' order by type,group#;

GROUP# STATUS TYPE MEMBER

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

1 ONLINE /data/oradata/orcl/data/redo01a.log

1 ONLINE /home/oracle/data/orcl/redo01b.log

2 ONLINE /data/oradata/orcl/data/redo02a.log

2 ONLINE /home/oracle/data/orcl/redo02b.log

3 ONLINE /data/oradata/orcl/data/redo03a.log

3 ONLINE /home/oracle/data/orcl/redo03b.log

从上面可以看出,所有的日志文件都是ACTIVE或CURRENT状态,这说明日志文件太小,需增加其大小。

但在线重做日志不可以直接RESIZE,需要通过如下方式:

1)添加新的日志文件组,定义它的大小

SYS@TEST15>alter database add logfile group 4 ('/data/oradata/orcl/data/redo04a.log','/home/oracle/data/orcl/redo04b.log') size 500M reuse;

Database altered.

2)持续切换日志,一直到Group 1的status=inactive,且archived=yes(如果为归档的话),如下所示:

SYS@TEST15>alter system switch logfile;

SYS@TEST15>alter system checkpoint;

SYS@TEST15>select group#,sequence#,bytes/1024/1024 "BYTES(M)",members,archived,status from v$log where group#=1;

GROUP# SEQUENCE# BYTES(M) MEMBERS ARC STATUS

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

1 214 100 2 YES INACTIVE

3)删除Group 1

SYS@TEST15>alter database drop logfile group 1;

Database altered. 这样,我们就完成了用更大的Group 4取代原有的Group 1,至于Group 2, Group 3以此类推。

最后,还要记得到操作系统上把日志文件删除。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值