IT分销/经销

mincommit的疑惑

了解到,日志缓冲区写入磁盘的事件在如下情况下发生:1)交易提交。若设置了mincommit,则每个mincommit提交的时候刷入磁盘;2)日志缓冲区满;3)当mincommit非1时,每秒刷新一次;4)其余一些DB2内部事件。考虑如下极端情况,mincommit为10,一秒内连续提交了9个事务,此时不满足以上任何条件,所以...显示全部
了解到,日志缓冲区写入磁盘的事件在如下情况下发生:
1)交易提交。若设置了mincommit,则每个mincommit提交的时候刷入磁盘;
2)日志缓冲区满;
3)当mincommit非1时,每秒刷新一次;
4)其余一些DB2内部事件。

考虑如下极端情况,mincommit为10,一秒内连续提交了9个事务,此时不满足以上任何条件,所以日志缓冲区内容未刷入磁盘。此时系统崩溃,已提交的9个事务被当做无效事务回滚。

疑惑的是,这样的极端情况下,事务的持久性似乎不能被保证了?DB2允许这种情况发生或者还有其他机制避免? 或者上述我的理解有问题?

谢谢!收起
参与9

查看其它 7 个回答shicarl的回答

shicarlshicarl系统工程师
回复 2# wp28556259
这里说的就是已提交,就是累计提交了N个事务后再将日志缓冲区数据写入日志文件,而非提交一次写一次。
IT分销/经销 · 2012-04-28
浏览607

回答者

shicarl
系统工程师

shicarl 最近回答过的问题

回答状态

  • 发布时间:2012-04-28
  • 关注会员:1 人
  • 回答浏览:607
  • X社区推广