原帖由
beginner-bj 于 2007-3-27 20:50 发表

1、force application一定要等到回滚结束后才能执行。如果先执行了,数据库就会不一致的状态,这个是绝对不能发生的。简单的说,就是回滚比force application的优先级高。
2、db crash肯定不是由extend active log fs引起的,只是extend active log fs的时候db碰巧crash了。crash的原因应该是由前面的动作引起的,是不是做了kill pid之类的操作?db2daig.log里应该有些蛛丝马迹。
delete操作一次一定不要做太大的操作,100多W笔记录,最好用where过滤分几次删。
也有做delete操作不记log的方法,但不建议使用。
也有log满了不自动回滚,所有事物都暂挂的方法,估计也很少有人用。
1. 我是从db的层面来force application的,不是直接kill 用户的那个pid
2. 是不是这么理解:
force applicaion,db2执行的逻辑是:先rollback该事务,然后断开连接的session,在我所举的案例里,正好active log又满了,rollback pending,加上force applicaion是个异步的操作,导致了“表面看起来”force applicaion没效果?
3. db crash确确实实是我extend fs的时候发生的,当时本来想stop db的,但是为了避免影响到应用,想采用extend active log fs后,让交易继续跑下去,我的force也能生效,就在这会,db2 crash了(我干活,第一步就喜欢开个session tail -f db2diag.log)
4. 我这边正好配置了log满,事务不回滚,交易pending
5. 客户因为自己下了个这么“愚蠢”的delete操作,写报告去了