暂无图片
在服务器的警告日志alert.log中看到如下消息
我来答
分享
中天
2023-01-30
在服务器的警告日志alert.log中看到如下消息

Thread 1 cannot allocate new log,sequence 1466

Checkpoint not complete

    Current log# 3 seq# 1465 mem# 0:  /.../...redo03.log

我来答
添加附件
收藏
分享
问题补充
1条回答
默认
最新

警告日志出现了这样的消息,DBA必须格外当心。这是数据库试图重用一个在线重做日志文件,但是它发现做不到,此时它就会把这样的一条消息写到服务器上的alter.log中。

数据库为什么不能重用在线重做日志文件呢?

可能是检查点操作(checkpointing)正在写入将要被重用的在线重做日志所保护的数据,但是还没有完成;或者ARCn还没有把生做日志文件的复制到归档目标。此时数据库像是处于一种冰冻的状态,但其实数据库的DBWn进程正在全力将数据块写入磁盘(或者ARCn进程正在全力地拷贝在线重做日志文件到归档目标)。当数据库完成了检查点或归档之后,一切又回归正常。

数据库之所以暂停用户的活动,是因为此时在出现实例失败时还要用到(Checkpoint not complete),或者归档进程尚未完成文件的复制(Archival required),此时Oracle必须等待(相应地,最终用户也必须等待)这些操作(检查点或归档)完成,才能安全地重用这个重做日志文件。

要解决这个问题,有下面几种做法:

让DBWn更快一些;

增加更多的重做日志文件;

重新创建更大的日志文件;

让检查点发生得更频繁。

暂无图片 评论
暂无图片 有用 9
暂无图片
回答交流
提交
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~
暂无图片墨值悬赏