概述
alter_ORCL.log如下:
Wed Jun 25 02:25:59 2008 Thread 1 cannot allocate new log, sequence 381753 Checkpoint not complete Current log# 3 seq# 381752 mem# 0: /opt/oracle/db04/oradata/ORCL/redo03.log Wed Jun 25 02:26:15 2008 Thread 1 advanced to log sequence 381753 Current log# 5 seq# 381753 mem# 0: /opt/oracle/db03/oradata/ORCL/redo5.log Wed Jun 25 02:26:15 2008 ARC1: Evaluating archive log 3 thread 1 sequence 381752 ARC1: Beginning to archive log 3 thread 1 sequence 381752 Creating archive destination LOG_ARCHIVE_DEST_1: '/opt/oracle/arch/ORCL/1_381752.dbf' Wed Jun 25 02:26:27 2008 ARC1: Completed archiving log 3 thread 1 sequence 381752 Wed Jun 25 02:26:56 2008 Thread 1 cannot allocate new log, sequence 381754 Checkpoint not complete Current log# 5 seq# 381753 mem# 0: /opt/oracle/db03/oradata/ORCL/redo5.log Wed Jun 25 02:27:11 2008 Thread 1 advanced to log sequence 381754 Current log# 4 seq# 381754 mem# 0: /opt/oracle/db02/oradata/ORCL/redo4.log Wed Jun 25 02:27:11 2008 ARC0: Evaluating archive log 5 thread 1 sequence 381753 ARC0: Beginning to archive log 5 thread 1 sequence 381753 Creating archive destination LOG_ARCHIVE_DEST_1: '/opt/oracle/arch/ORCL/1_381753.dbf' ARC0: Completed archiving log 5 thread 1 sequence 381753 Wed Jun 25 02:27:51 2008 Thread 1 cannot allocate new log, sequence 381755 Checkpoint not complete 原因和后果:当日志将被重用的时候,该日志上涉及的数据的checkpoint必须完成,否则这个时候server crash就丢失数据了。简单来说就是没有写入数据文件,日志又被覆盖了!这是日志组已经使用轮循了一圈的时候发生的事情,可以增加日志组和增大日志文件,当然也可以修改 checkpoint参数使得检查点变频繁一些。 这个主题使DBA能对checkpoint和checkpoint优化的参数有一个较好的理解:- FAST_START_MTTR_TARGET 它也解释了怎样解释和处理出现在ALERT<sid>.LOG file中的checkpoint的错误"'Checkpoint not Complete' and 'Cannot Allocate New Log"。 什么是checkpoint? checkpoint是为了内存中已经被修改的数据块与磁盘数据文件同步的一种数据库事件。它提供了一种保持事务提交以后数据一致的手段。往Oracle磁盘写脏数据的机制与事务提交不是同步的。 checkpoint有两个目的:1、确保数据一致性。2、使数据库能快速地恢复。 怎样快速恢复呢? Oracle写这个脏数据只在一定的条件下: 一个checkpoint有5中事件类型: Checkpoint期间会有下面进程发生: Checkpoints和优化: 依赖于数据库数据文件的数量,一个Checkpoint可能是高速的运行。因为所有的数据文件在Checkpoint期间都会被冻结。更频繁的Checkpoints可以快速恢复数据库。这也客户对不按规定系统宕机的容忍的原因。然而,在一些特殊情况下,频繁的Checkpoints也不能保证可以快速恢复。我们假设数据库在95%的时间内是正常运行,5%由于实例失败导致不可用,要求恢复。对大多数客户而言,他们更希望调整95%的性能而不是5%的宕机时间。这个假设表明,性能是摆在第一位的,所以我门的目标就是在优化期间减少Checkpoints的频繁度。 优化Checkpoints包括4个关键的初始化参数: 详细介绍每个参数: Oracle9i以来FAST_START_MTTR_TARGET 参数是调整checkpoint的首选的方法。FAST_START_MTTR_TARGET 可以指定单实例恢复需要的秒数。基于内部的统计,增长的checkpoint会自动调整的checkpint的目标以满足FAST_START_MTTR_TARGET 的需求。V$INSTANCE_RECOVERY.ESTIMATED_MTTR 显示当前估计需要恢复的秒数。这个值会被显示即使FAST_START_MTTR_TARGET 没有被指定。 LOG_CHECKPOINT_INTERVAL : LOG_CHECKPOINT_INTERVAL 参数指定这个最大的重做块的间隔数目。如果FAST_START_MTTR_TARGET被指定,LOG_CHECKPOINT_INTERVAL不能被设置为0。 LOG_CHECKPOINT_TIMEOUT : 在线重做日志的大小是关键的,对于优化和恢复。 refer |
最后
以上就是震动手链为你收集整理的(转)Checkpoint详解的全部内容,希望文章能够帮你解决(转)Checkpoint详解所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复