监视检查点活动以查看各种信息,包括线程需要等待检查点完成的次数。这些信息对于确
定检查点间隔是否适当非常有用。
要监视检查点,请使用以下命令。
实用程序
命令
更多信息
onstat 实用程序
onstat -m
查看消息日志中的最近 20 行。
如果最近 20 行中不包含检查点消息,那么直接
用文本编辑器读取消息日志。数据库服务器在检
查点结束时将个别检查点消息写入日志。
如果发生了检查点,但数据库服务器没有页可写
入磁盘,那么数据库服务器不会将任何消息写入
消息日志。
onstat 实用程序
onstat -p
获取这些检查点统计信息:
•
numckpts:自数据库服务器联机以来发
生的检查点数。
•
ckptwaits:用户线程等待检查点完成的
次数。数据库服务器将防止用户线程在
检查点期间进入临界区。
ON-Monitor (UNIX™) 状态 > 概
要文件
检查点数和检查等待次数字段显示的信息
与 onstat -p 中
的 numckpts 和 ckpwaits 字段显示的信息相
同。
打开或关闭检查点调整
GBase 8s 管理员指南
南大通用数据技术股份有限公司
- 318 -
要打开自动检查点调整,请发出 onmode –wf AUTO_CKPTS=1 命令。要关闭自动检查点
调整,请发出 onmode –wf AUTO_CKPTS=0 命令。
强制执行检查点
如果必要,可以使用 onmode 或 SQL 管理 API 命令来强制执行检查点。
在以下任何情况下强制执行检查点:
•
要释放包含最近检查点记录且已备份但尚未释放( onstat -l 的 U-B-L 或 U-B 状
态)的逻辑日志文件
•
在您发出 onmode -sy 将数据库服务器置为静默方式之前
•
在构建较大索引后,如果数据库服务器在下一个检查点之前终止。索引构建将在
下一次重新启动数据库服务器时重新启动。
•
如果检查点有很长时间未出现,而您要尝试进行可能中断数据库服务器的系统操
作
•
如果前台写入将耗用比预期更多的资源(执行强制检查点临时将资源使用量降至
零)
•
运行 dbexport 或卸载表之前,请确保在导出或卸载数据之前所有数据在物理上保
持一致
•
在使用 PUT 或 INSERT 语句执行大量表的装入后(因为表的装入使用缓冲区高
速缓存,强制执行检查点可清除高速缓存。)
要强制执行检查点,请运行 onmode -c。
或者,如果使用的是 ON-Monitor (UNIX™),请从主菜单中选择强制执行检查点选项。
直至出现检查点,上一个检查点完成字段中的时间才会更改。上一个检查点检查字段显示
上一个检查点检查的时间。如果自检查上一个检查点以来没有进行任何修改,那么数据库
服务器不会执行检查点。
有关使用 SQL 管理 API 命令(而不是一些 onmode 命令)的信息,请参阅使用 SQL
管理 API 执行远程管理和《GBase 8s SQL 指南:语法》。
服务器提供的检查点统计信息
数据库服务器提供有关前 20 个检查点的历史记录信息。可以通过
SMI sysckptinfo 表来访问这些信息。
SMI 表
查询 sysprofile 表以获取有关物理日志和逻辑日志缓冲区的统计信息。
sysprofile 表还提供与 onstat -p 选项提供的信息相同的检查点统计信息。以下行
包含以下统计信息。
plgpagewrites
GBase 8s 管理员指南
南大通用数据技术股份有限公司
- 319 -
写入物理日志缓冲区的页数
plgwrites
从物理日志缓冲区到物理日志文件的写入次数
llgrecs
写入逻辑日志缓冲区的记录数
llgpagewrites
写入逻辑日志缓冲区的页数
llgwrites
从逻辑日志缓冲区到逻辑日志文件的写入次数
numckpts
自数据库服务器变为联机后所出现的检查点数
ckptwaits
线程在检查点期间等待检查点完成进入临界区的次数
value
numckpts 和 ckptwaits 的值