了解到,日志缓冲区写入磁盘的事件在如下情况下发生:
1)交易提交。若设置了mincommit,则每个mincommit提交的时候刷入磁盘;
2)日志缓冲区满;
3)当mincommit非1时,每秒刷新一次;
4)其余一些DB2内部事件。
考虑如下极端情况,mincommit为10,一秒内连续提交了9个事务,此时不满足以上任何条件,所以日志缓冲区内容未刷入磁盘。此时系统崩溃,已提交的9个事务被当做无效事务回滚。
疑惑的是,这样的极端情况下,事务的持久性似乎不能被保证了?DB2允许这种情况发生或者还有其他机制避免? 或者上述我的理解有问题?
谢谢!
收起