Username: Password:

解析:DB2 无限活动日志策略的实用技巧
来源:论坛整理作者:佚名 发布时间:2007-11-17 00:00:00

DB2数据库第1次被创建时,有3个日志文档,被称做主要日志文档,作为创建过程的一部分被分配了。在Linux和Unix平台上,这些日志文档共有1,000个大小为4KB的页面;在Windows平台上,这些日志文档共有250个大小为4KB的页面。然而,被使用的主要日志文档的数量,连同每一个能够容纳的数据量,都被数据库配置文档中的logprimary 和logfilsiz 参数所控制。任何被创建的主要日志文档的使用方式都由为数据库选择的日志策略所决定。有两个可使用的不同的策略,一个是循环日志,一个是档案归建日志。但是一种被称为无限活动日志的混合方式也许工作得最好。

  循环日志需要存储在日志缓冲区的记录以循环的顺序被写入主要日志文档。一旦主要日志文档被写满,并且仍被标记为“不可用”,DB2数据库管理器就会分配次要日志文档,并且将记录写入其中。被允许的次要日志文档的总数由数据库配置文档的logsecond参数控制。

  在档案归建日志中,和循环日志类似,存放在日志缓冲区的日志记录被写入预先分配的主要日志文档中。然而,和循环日志不同的是,这些日志文档永远不会被重用。每次当主要日志文档被写满的时候,另一个主要日志文档就会被分配,这样所要使用的主要日志文档的数量(由数据库配置参数logprimary指定)就总是可得的。只要磁盘更有空间,这个过程就会持续下去。

  无限活动日志。您也许考虑通过简单地配置数据库,让其使用大量所需的主要和/或次要日志文档来避免日志空间被全部用光。然而,被允许的日志文档(主要的和次要的组合在一起)的最大数量是256个,并且假如您的日志文档的尺寸相对较小,那么当事务的工作量变大或是事务运行了过长的时间,您仍然有可能很快地用光全部日志空间。而且,由于每次被迫分配日志文档的时候都会影响性能,您就会想要尽可能地避免分配大量的次要日志文档。理想情况是,您希望分配足够的主要日志文档来应付大多数情况,并且使用刚好能够应付事务的工作量最高峰时的数量的次要日志文档。

  假如您很关注日志空间的消耗殆尽,并且您想要避免分配大量的次要日志文档,那么您能够配置数据库,使其执行一种被称为无限活动日志或无限日志的策略。无限活动日志允许一个跨越任何主要日志和一个或多个档案归建日志的活动事务,并且有效地允许事务使用无限数量的日志文档。为了能够使用无限活动日志,您只需简单地配置数据库配置参数userexit 和logsecond 分别为yes 和 ?1。注意到下面这一点是很重要的,即当数据库配置参数userexit配置为yes时,每当日志文档被关闭的时候,一个用户提供的userexit 程式就会被调用,并且这个程式会将无需的日志文档移动至另一个能够永久存储的位置(因此,服务器上日志存储空间被消耗殆尽的危险就会被消除)。

  当服务器配置参数logsecond被配置为-1时,配置参数logprimary和logfilsiz仍然用于指定DB2在活动日志路径上保留多少个主要日志文档,连同每个文档应该有多大。假如DB2需要从一个日志文档中读取日志,但是这个文档不在活动日志路径上,DB2就会调用userexit 程式从存档文档中检索日志文档,并且将其拷贝至活动日志区域,这样其他针对相同文档的读取就会加快速度。DB2管理着这些所需日志文档的检索、拷贝和移除。

  注释:虽然无限活动日志可被用于支持那些大的作业环境,他们需要的日志空间超出了正常情况下分配的主要日志空间,但是他仍然有他的权衡点。特别是,回滚操作(无论是在savepoint级,还是在事务级)的执行,会由于需要在档案存储地点检索日志文档而变得很缓慢。同样,崩溃恢复也会由于同样的原因而变得很慢。

查看本文来源

喜欢本文,那就收藏到:

    Del.icio.us Google书签 Digg Live Bookmark Technorati Furl Yahoo书签 Facebook 百度搜藏 新浪ViVi 365Key网摘 天极网摘 和讯网摘 博拉网 POCO网摘 添加到饭否 QQ书签 Digbuzz我挖网
相关评论  我也要评论
还没有关于此文章的相关评论!
  • 昵称: (为空则显示guest)
  • 评论分数: ★ ★ ★★★ ★★★★ ★★★★★
  • 评论内容:(不能超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规。
  • 导航
    赞助商
    文章类别
    订阅