Informix 数据库检查点

检查点是数据库系统为了便于复原或者逻辑恢复而建立的一致性时间点。是建立数据库系统的已知和一致性状态时的逻辑日志中的某个时间点。

如果数据库发生故障,数据库服务器可以在已经建立的检查点上重新启动。

通过情况下,在运行日志online.log中,经常可以看到做检查点的记录信息。

04:39:58  Checkpoint Completed:  durationwas 0 seconds.
04:39:58  Thu Nov 7 -loguniq 22, logpos 0x2018, timestamp: 0x321cb Interval: 84
04:39:58  Maximum server connections 1
04:39:58  Checkpoint Statistics - Avg. Txn Block Time0.000, # Txns blocked 0, Plog used 2, Llog used 2

05:25:26  Checkpoint Completed: duration was 0 seconds.
05:25:26  Thu Nov 7 -loguniq 22, logpos 0x5018, timestamp: 0x321f4 Interval: 85

也可以通过onstat -g ckp 查看最近20个检查点的相对详细信息,包含各操作数据量和操作时长,以及解发检查点的条件等。(11版本以后增加的功能)

最近的检查点信息会保留在系统保留页中,可通过oncheck -pr来显示最近的检查点所在的保留页信息(PAGE_CKPT)

    Validating PAGE_1CKPT & PAGE_2CKPT...

          Using check point page PAGE_1CKPT.

    Time stamp of checkpoint       0x321f2
    Time of checkpoint             11/07/2013 05:25:26
    Physical log begin address     1:263
    Physical log size              25000 (p)
    Physical log position at Ckpt  1473
    Logical log unique identifier  22
    Logical log position at Ckpt   0x5018 (Page 5, byte 24)
    Checkpoint Interval            85
    DBspace descriptor page        1:4
    Chunk descriptor page          1:6
    Mirror chunk descriptor page   1:8

相对于oncheck -pr相对友好的输出,使用oncheck-pP 打印保留页结构的方式则显得@_@ ,当然oncheck -pP可以打印非在用的前一个检点所在的页信息。读取页信息需要一定页知识。下图对两者中的检查点结构做了一个比较和联系。
请输入图片描述

从上面知道检查点在逻辑日志中的位置是逻辑日志22,地址是0x5018(Page 5, byte 24)。可以使用onlog (onlog -l -n 22)查看逻辑日志中检查点的内容。下图中对逻辑日志中的结构做了个简单的说明。
请输入图片描述

Question: 为什么不介绍检查点在物理日志中的结构呢?!(请再回去想想物理日志里的内容是什么。)

如果还不满意,虽然无法通过oncheck -pP这样的方式来显示页内容。但仍可以使用系统工具dd将对应的页导出,然后使用hexdump或者od -x这样的系统命令转换成16进制的格式。

下图为转换成16进制格式的逻辑日志22上的page 5和page 6,包含CKPOINT操作的所有内容(CKPOINT和HA)。其中关于逻辑日志中各操作的详细记录内容参考:IBM Informix管理员参考大全的相关章节。
请输入图片描述

标签: none

添加新评论