睡不好觉,关于switch logfile造成checkpoint not complete的疑问?

[复制链接]
查看11 | 回复8 | 2005-11-14 01:01:31 | 显示全部楼层 |阅读模式
也许问题很简单,假如有两个日志文件a(status:current), b(status:inactive),alter system switch logfile后a(status:active), b(status:current),如果再次alter system switch logfile,出现a(status:current), b(status:active),此时alert_.log会出现checkpoint not complete的信息,此时会等待针对a的checkpoint完成,a是不能使用的,但select * from v$log显示的当前logfile是a,感觉像切换成功了,为什么会这样,那假如此时需要写redo logfile,会出现什么情况,database此时是不是相当于暂停使用,我很困惑,睡不好。
回复

使用道具 举报

千问 | 2005-11-14 01:01:31 | 显示全部楼层
很可能是redo log groups 不够或redo log太小造成的.
回复

使用道具 举报

千问 | 2005-11-14 01:01:31 | 显示全部楼层
checkpoint not complete 是发生在数据库想用某个REDO文件作为当前的REDO文件时,但这个REDO文件还是ARCHIVE状态,正在CHECKPOINT,所以就报了个“checkpoint not complete”,这个时候,数据库会挂起来的。
回复

使用道具 举报

千问 | 2005-11-14 01:01:31 | 显示全部楼层
add redo log group or change redo log file size
回复

使用道具 举报

千问 | 2005-11-14 01:01:31 | 显示全部楼层
最初由 wonry 发布
[B]也许问题很简单,假如有两个日志文件a(status:current), b(status:inactive),alter system switch logfile后a(status:active), b(status:current),如果再次alter system switch logfile,出现a(status:current), b(status:active),此时alert_.log会出现checkpoint not complete的信息,此时会等待针对a的checkpoint完成,a是不能使用的,但select * from v$log显示的当前logfile是a,感觉像切换成功了,为什么会这样,那假如此时需要写redo logfile,会出现什么情况,database此时是不是相当于暂停使用,我很困惑,睡不好。 [/B]

笨笨解释的基本差不多,我再补充几句。
checkpoint not complete 是发生在Oracle想用某个redo log,但是此时相关的checkping进程还没干完活,所以Oracle只好等一下喽,这个错就产生了。不过这种等待一般时间很短的。
[B]产生的原因大体有以下几个方面:[/B]
1、checkpoint发生的太频繁了。
2、checkpoint活干的太慢。
3、DBWR写的也太慢
[B]解决办法也相应的有几个:[/B]
1、使checkpoint进程有更多的工作时间,相应地:
a、增大redo log的大小
b、增加redo log组的数量
2、使checkpoint发生的不那么频繁
增大fast_start_mttr_target及log_checkpoint_interval
3、使checkpoint工作的更有效率
设置CHECKPOINT_PROCESS=TRUE
4、LOG_CHECKPOINT_TIMEOUT = 0,disable基于时间的checkpoint。
5、使DBWR工作的更有效率
a、可能的话一定要开异步IO
b、增大db_writer_processes
[B]大致这些,别困惑了,好好睡觉吧:)[/B]
回复

使用道具 举报

千问 | 2005-11-14 01:01:31 | 显示全部楼层
最初由 hrb_qiuyb 发布
[B]

3、使checkpoint工作的更有效率
设置CHECKPOINT_PROCESS=TRUE
[/B]

CHECKPOINT_PROCESS这个是什么?初始化参数里面没有啊!
回复

使用道具 举报

千问 | 2005-11-14 01:01:31 | 显示全部楼层
最初由 haochunpeng 发布
[B]
CHECKPOINT_PROCESS这个是什么?初始化参数里面没有啊! [/B]

是不是这个参数log_checkpoints_to_alert
回复

使用道具 举报

千问 | 2005-11-14 01:01:31 | 显示全部楼层
ok, i see, 8i以后checkpoint_process已经没有多大意义,系统会默认启动ckpt
回复

使用道具 举报

千问 | 2005-11-14 01:01:31 | 显示全部楼层
最初由 haochunpeng 发布
[B]
CHECKPOINT_PROCESS这个是什么?初始化参数里面没有啊! [/B]

Sorrry, haochunpeng 说的对,CHECKPOINT_PROCESS是在7.3.3,7.3.4中的,在8.0之上就废弃掉了。
这是在我以前写的文章中的一段,此次回答未仔细校验,表示歉意。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行