Informix 长事务-与长事务相关的数据库参数

本资料无预览

如感兴趣请购买后下载

立即下载

资料简介:
那么究竟多长的事务就是“长事务”呢?事实上,“长事务”由一系列数据库参数决定。
LOGFILES
该参数指定系统初始化或重启动时创建的逻辑日志文件的个数。之后系统管理员还可以继续追加逻辑日志文件数。Informix 数据库要求逻辑日志文件最少有 3 个,最多可以追加到 32,767 个或直至逻辑日志所在空间 (dbspace) 被占满。
LOGSIZE
该参数指定创建的逻辑日志文件的缺省大小。当系统管理员手工追加日志文件时,可以重新指定日志文件大小。
所以逻辑日志文件的个数和其大小决定了系统可用逻辑日志空间的总和。
Long-Transaction High-Watermark (LTXHWM)
长事务深水线比例是指整个逻辑日志空间的一个百分比值。当一个事务占用整个逻辑日志空间的百分比超过这个值时,该事务就成为长事务。数据库系统系统就会强制对该事务进行回滚(rollback ), 以防止该事务继续填充日志,最终导致日志需要循环重用时无法释放而造成系统挂起。
例如,数据库服务器有 10 个逻辑日志文件,如果 LTXHWM 设置为 80 。一个事务(transaction )从日志文件 1 (log1 )开始填充,随着该事务的更新 (update) ,当其操作填充到第 8 个日志文件满时,该事务就到达了长事务深水线比例(LTXHWM ),为了防止系统挂起,数据库服务器将回滚该事务。
Exclusive Access, Long-Transaction High-Watermark (LTXEHWM)
当一个事务到达长事务深水线比例(LTXHWM )后,数据库服务器会回滚该事务。事务回滚本身也会产生日志,仍然要继续填充日志空间。同时,由于并发事务的存在,其他事务也在不断填充日志空间。所以如果在该事务完全回滚之前,日志空间被填满,仍然会造成系统的挂起。为了尽量避免这种情况的发生,我们用独享的长事务深水线来限制长事物回滚时其他事务对日志空间的使用。
独享的长事务深水线也是整个逻辑日志空间的一个百分比值。当正在回滚的长事务占用日志空间的百分比到达这个值时,系统会急剧降低对日志文件的填充速度。此时,数据库系统几乎给予正在回滚的长事务以独占使用剩余日志空间的权利,以最大限度地保障长事务回滚能够在日志空间添满前能够顺利完成,从而使日志释放重用得以实现。
例如,数据库服务器有 10 个逻辑日志文件,如果 LTXHWM 设置为 80, LTXEHWM 设置为 90 。一个事务(transaction )从日志文件 1 (log1 )开始填充,随着该事务的更新 (update) ,当其操作填充到第 8 个日志文件满时,该事务就到达了长事务深水线比例(LTXHWM ),为了防止系统挂起,数据库服务器开始回滚该事务,此时日志内容由于该事务回滚和其他事务继续增长,当其操作填充到第 9 个日志文件满时,如果该事务还未回滚完成,则到达独享的长事务深水线比例(LTXEHWM ),这时候数据库系统会暂停其他事务的操作(除 commit 操作外),留下剩余的日志空间,让该事务回滚,以防止日志空间在回滚结束前被占满。( 如图 3)

图 3. 长事务深水线比例(LTXHWM)与独享的长事务深水线比例(LTXEHWM)示意

DYNAMIC_LOGS
从 Informix Dynamic Server (IDS)版本 9.30 开始,用户可以通过对数据库参数中的 DYNAMIC_LOGS 参数进行设置以实现系统逻辑日志的自动分配。该参数允许用户在服务器工作状态动态添加新的日志并且立即生效,从而动态增加整个逻辑日志空间的大小,消除或减小长事务处理引起挂机的可能性。
DYNAMIC_LOGS 参数有三个值分别为 0,1,2:
•        缺省为 2( 系统自动分配日志 )。假如当前使用的日志为 n,系统自动为 Transation 检查 log n+1 的状态,如果返回的结果为真 ( 即 Log n+1 无法被释放而重用 ),系统将在 n 和 n+1 之间加入新的日志并一直增加到满足当前 Transation 完成且立即生效。新增加的日志缺省建立到逻辑日志最后被添加的 dbspace 中,或根据系统规则建立到指定的 dbspace 中。新增日志的大小将取已有最大日志和最小日志的均值。或根据请求空间的大小进行相应的调整,日志最小为 200K。


图 4. 逻辑日志的动态分配示意

•        当 DYNAMIC_LOGS 参数设置为 1 时,系统也自动为 Transation 检查 logn+1 的状态,如果返回的结果为真 ( 即 Log n+1 无法被释放而重用 ),系统将等待系统管理员手工在当前日志后添加日志,系统管理员可以在任何时间使用 ISA 或 onparams 多种方式为系统添加日志。
•        如果 DYNAMIC_LOGS 参数为 0,系统将不会自动添加日志也不会出现等待状况。
2012-08-06
浏览1370
下载0

已下载用户的评价

您还未下载该资料,不能发表评价;
查看我的 待评价资源
本资料还没有评价。

贡献者

bumei行政管理,ww
X社区推广