Thread 1 cannot allocate new log

本文解析了Oracle数据库中常见的日志切换冲突错误,并提供了解决方案,包括调整在线重做日志大小及增加日志组的方法。

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

ALTER SYSTEM ARCHIVE LOG
Thread 1 cannot allocate new log, sequence 2594
Checkpoint not complete


这个实际上是个比较常见的错误。通常来说是因为在日志被写满时会切换 日志组,这个时候会触发一次checkpoint,DBWR会把内存中的脏块往数据文件中写,只要没写结束就不会释放这个日志组。如果归档模式被开启的 话,还会伴随着ARCH写归档的过程。如果redo log产生的过快,当CPK或归档还没完成,LGWR已经把其余的日志组写满,又要往当前的日志组里面写redo log的时候,这个时候就会发生冲突,数据库就会被挂起。并且一直会往alert.log中写类似上面的错误信息。


解决办法:我觉得要看预警日志的情况,如果一直以来online redo log切换的比较频繁,这个时候就要适当增大每个日志组的大小,同时可适当增加日志组。
如果online redo log切换的比较频繁只是偶尔的事件,则可以增大每个日志组的大小。


增加日志组(添加日志组的实验是在我本本的虚拟机上做的,组成员比较小):


1、查看日志组状态
SQL> select * from v$log;


    GROUP#    THREAD#  SEQUENCE#      BYTES  BLOCKSIZE    MEMBERS ARC STATUS           FIRST_CHANGE# FIRST_TIM NEXT_CHANGE# NEXT_TIME
---------- ---------- ---------- ---------- ---------- ---------- --- ---------------- ------------- --------- ------------ ---------
         1          1        130   52428800        512          2 YES INACTIVE               1847225 14-AUG-13      1877602 16-AUG-13
         2          1        131   52428800        512          2 NO  CURRENT                1877602 16-AUG-13   2.8147E+14
         3          1        129   52428800        512          2 YES INACTIVE               1826391 11-AUG-13      1847225 14-AUG-13


2、查看日志组文件
SQL> select * from v$logfile;


    GROUP# STATUS  TYPE    MEMBER                                             IS_RECOVERY_DEST_FILE
---------- ------- ------- -------------------------------------------------- --------------------------------------------------
         1         ONLINE  +DATA/orcl/onlinelog/group_1.257.818327073         NO
         1         ONLINE  +FRA/orcl/onlinelog/group_1.257.818327079          YES
         2         ONLINE  +DATA/orcl/onlinelog/group_2.258.818327083         NO
         2         ONLINE  +FRA/orcl/onlinelog/group_2.258.818327089          YES
         3         ONLINE  +DATA/orcl/onlinelog/group_3.259.818327091         NO
         3         ONLINE  +FRA/orcl/onlinelog/group_3.259.818327095          YES


6 rows selected.


3、alter database add logfile group 4 ('+DATA/orcl/onlinelog/redo04.log','+FRA/orcl/onlinelog/redo04.log') size 50M;
Database altered.


4、
SQL> select * from v$log;


    GROUP#    THREAD#  SEQUENCE#      BYTES  BLOCKSIZE    MEMBERS ARC STATUS           FIRST_CHANGE# FIRST_TIM NEXT_CHANGE# NEXT_TIME
---------- ---------- ---------- ---------- ---------- ---------- --- ---------------- ------------- --------- ------------ ---------
         1          1        130   52428800        512          2 YES INACTIVE               1847225 14-AUG-13      1877602 16-AUG-13
         2          1        131   52428800        512          2 NO  CURRENT                1877602 16-AUG-13   2.8147E+14
         3          1        129   52428800        512          2 YES INACTIVE               1826391 11-AUG-13      1847225 14-AUG-13
         4          1          0   52428800        512          2 YES UNUSED                       0                      0


5、
SQL> select * from v$logfile;


    GROUP# STATUS  TYPE    MEMBER                                             IS_RECOVERY_DEST_FILE
---------- ------- ------- -------------------------------------------------- --------------------------------------------------
         1         ONLINE  +DATA/orcl/onlinelog/group_1.257.818327073         NO
         1         ONLINE  +FRA/orcl/onlinelog/group_1.257.818327079          YES
         2         ONLINE  +DATA/orcl/onlinelog/group_2.258.818327083         NO
         2         ONLINE  +FRA/orcl/onlinelog/group_2.258.818327089          YES
         3         ONLINE  +DATA/orcl/onlinelog/group_3.259.818327091         NO
         3         ONLINE  +FRA/orcl/onlinelog/group_3.259.818327095          YES
         4         ONLINE  +DATA/orcl/onlinelog/redo04.log                    NO
         4         ONLINE  +FRA/orcl/onlinelog/redo04.log                     NO


8 rows selected.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值