更新日期:2024年09月11日
在GBase 8c 数据库中,检查点是事务序列中一个点的快照,在该点上,可以保证堆和
索引数据文件已经同步了检查点之前写入的所有信息。
在执行检查点时,
所有脏数据页都会刷新到磁盘,
并将一个特殊的检查点记录写入日志
文件。
数据直接存储在内存中。
MOT 没有像GBase 8c 那样存储数据,
因此不存在脏页的概念。
为此,使用CALC 算法,用于主内存数据库系统中的低开销异步检查点。
CALC 检查点算法:内存和计算开销低
检查点算法具有以下优点:
降低内存使用量-每条记录在任何时候最多存储两个副本。在记录处于活动且稳定版本
相同或没有记录任何检查点时,
仅存储记录的一个物理副本,
可以最大限度地减少内存使用。
低开销:CALC 的开销比其他异步检查点算法小。
使用虚拟一致性点:CALC 不需要静默数据库以实现物理一致性点。
检查点激活
MOT 检查点被集成到GBase 8c 的封装的检查点机制中。检查点流程可以通过执行
CHECKPOINT;命令手动触发,也可以根据封装的检查点触发设置(时间/大小)自动触发。
检查点配置在mot.conf 文件中执行,请参见检查点(MOT)部分。
使用 DBUPSPACE 环境变量,可以指定和限制 UPDATE STATISTICS 语句在尝试同时构
造多列分布时可使用的系统磁盘空间量。
max 是一个正整数,指定要为 UPDATE STATISTICS 操作中排序而分配的最大磁盘
空间 (KB)。
default 为一个正整数,指定不使用 PDQ 时要分配的最大内存数量 (4-50 MB)。
选项
无符号整数:
1:不使用任何索引来排序。在 sqexplain.out 中打印更新统计信息的整个计划。
2:不使用任何索引来排序。不打印更新统计信息的计划。
3 以上:使用可用的索引来排序。在说明输出文件中打印更新统计信息的整个计划。
例如,要将 DBUPSPACE 设置为 2,500 KB 的磁盘空间和 1 兆字节的内存,请输入以
下命令:
setenv DBUPSPACE 2500:1
在设置此值后,数据库服务器可在执行 UPDATE STATISTICS 语句期间使用不超过
2,500 KB 的磁盘空间。如果表需要 5 兆字节的磁盘空间用于排序,那么 UPDATE
STATISTICS 分两次完成该任务;每次构造一半列的分布。
如果未设置 DBUPSPACE,那么对于 max,缺省值为 1 兆字节 (1,024 KB),而对于
default,
缺省值为 15 兆字节。
如果尝试将 DBUPSPACE 设置为小于 1,024 KB 的任何值,
它会自动设置为 1,024 KB,但不会返回任何错误消息。如果此值尚未大到足以允许一次构
造多个分布,那么至少会完成一个分布,即使完成此任务所需的磁盘空间量超过
DBUPSPACE 指定的磁盘空间量也是如此。