db2数据库的日志管理
由于我们现在经常发生数据库日志满的, 由没有什么办法能够比较快速的找到是哪个数据库的应用占用了比较多的日志而没有commit ,看db2dialog.log虽然可以看到是哪个应用最后将日志写满,但不能确认是哪个应用写得比较多
1 更改日志文件的存放路径
db2 update db cfg gtjazb using NEWLOGPATH /dev/rloglv
在下一次启动 database,就会将该日志放到新的指定地方,指定的路径可以是文件系统, 也可以是 Raw device, /dev/ 的都是裸设备。
2 监控应用程序日志使用情况
db2 update dbm cfg using DFT_MON_UOW on
再用
db2 get snapshot for applications on head
可看到应用程序的各种信息,包括日志使用情况,commit,rollback等等。
3 循环日志和归档日志
循环日志比较容易管理,但如果是 7*24 的应用,如果要备份,循环日志不能是 online backup。所以如果是 7*24 的 oltp应用只能采用归档日志。
归档日志在 online backup 时也要注意,从开始备份到备份结束的这个日志文件不能删除,否则会到恢复的时候恢复不回来
4 循环日志日志满的原因
循环日志因为是日志文件可以循环使用的,使用起来比较方便。它导致满有两种可能:
1、日志文件全部被用完而没有。这种情况导致的日志满可能很小。
2、由于循环日志用了一个循环后,辅助日志也用完了。如果这个时候, 以前使用这个日志的程序还占用着着段日志而没有 commit,这时候数据将会申请不到日志空间而报日志满。