暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

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

原创 eygle 2020-01-02
820

在数据库中,可以设置初始化参数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进行计算,主动触发增量检查点。

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论