oracle log 参数,Oracle控制文件与数据库初始化——LOG_CHECKPOINT_TO_ALERT参数

在数据库中,可以设置初始化参数log_checkpoints_to_alert为True,则数据库会将检查点的执行情况记入告警日志文件,这个参数的初始值为FALSE:

SQL> show parameter checkpoints_to

NAME TYPE VALUE

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

log_checkpoints_to_alert boolean FALSE

SQL> alter system set log_checkpoints_to_alert=true;

System altered.

当数据库执行各类检查点时,日志文件中会记录详细信息,以下是来自Oracle10g告警日志文件中的信息摘录。

注意以下信息中,共发生了两次检查点,触发条件都是LOG SWITCH,在日志中,注意RBA信息和检查点SCN同时出现,这就是检查点队列的作用,LOG SWITCH检查点的特别之处在于需要同时在控制文件和数据文件头上标记检查点进度:

Wed Jul 19 17:33:05 2006

Thread 1 cannot allocate new log, sequence 44

Private strand flush not complete

Current log# 3 seq# 43 mem# 0: /opt/oracle/oradata/alexhell/redo03.log

Beginning log switch checkpoint up to RBA [0x2c.2.10], SCN: 8914464526139

Thread 1 advanced to log sequence 44

Current log# 4 seq# 44 mem# 0: /opt/oracle/oradata/alexhell/redo04.log

Wed Jul 19 17:34:33 2006

Beginning log switch checkpoint up to RBA [0x2d.2.10], SCN: 8914464533295

Thread 1 advanced to log sequence 45

Current log# 5 seq# 45 mem# 0: /opt/oracle/oradata/alexhell/redo05.log

Wed Jul 19 17:38:30 2006

Completed checkpoint up to RBA [0x2c.2.10], SCN: 8914464526139

Wed Jul 19 17:39:39 2006

Completed checkpoint up to RBA [0x2d.2.10], SCN: 8914464533295

从以上信息还可以观察到,检查点的触发和检查点完成具有一定的时间间隔,这进一步说明,检查点仅仅是一个数据库事件,发生检查点时CKPT进程负责通知DBWR执行写出,但是检查点不会等待写出完成,它会在下一次触发时写出上一次成功完成的检查点信息。

在告警日志文件你可能还会看到类似如下信息:

Thu Jul 20 16:35:33 2006

Incremental checkpoint up to RBA [0x31.6f79.0], current log tail at RBA [0x31.7108.0]

Thu Jul 20 17:05:39 2006

Incremental checkpoint up to RBA [0x31.77f8.0], current log tail at RBA [0x31.7f42.0]

Thu Jul 20 17:06:23 2006

Beginning log switch checkpoint up to RBA [0x32.2.10], SCN: 8914464684949

Thread 1 advanced to log sequence 50

Current log# 5 seq# 50 mem# 0: /opt/oracle/oradata/eygle/redo05.log

Thu Jul 20 17:11:27 2006

Completed checkpoint up to RBA [0x32.2.10], SCN: 8914464684949

Thu Jul 20 17:35:46 2006

Incremental checkpoint up to RBA [0x32.652.0], current log tail at RBA [0x32.809.0]

这些信息和检查点的另外一个触发条件有关。为了保证检查点不会滞后整个日志文件,Oracle限制最长的检查点跨度不超过最小日志大小的90%。所以数据库在运行过程中会根据LOG TAIL进行计算,主动触发增量检查点。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值