【IT168 技术】 跟Oracle类似DB2也分为两个模式,日志循环vs归档日志,也就是非归档和归档模式,下面对这两种模式做简单的介绍。
日志循环
日志循环是默认方式,也就是非归档模式,这种模式只支持backup offline脱机备份,在备份过程中需要DB2停止服务。
运行脱机备份需要如下注意的地方:
1,停止应用对DB2的访问。
2,通过LIST APPLIACATIONS命令查看现有的连接,然后通过FORCE APPLIACATION命令来结束连接。
3,通过DEACTIVATE DATABASE 命令来确保数据库未处于活动状态。
4,通过BACKUP DATABASE命令来对数据库进行备份。
归档日志
归档日志不是默认状态,需要配置后才会起作用,DB2在使用日志保留模式的时候数据库是可恢复的数据库,支持在线备份、前滚恢复和崩溃恢复。
配置DB2进入归档日志模式主要是靠Logarchmeth1和Logarchmeth2两个参数(注:Logretain参数在DB2 v8以后已经被Logarchmeth1取代,可以不用管)。
Logarchmeth1设置为LOGRETAIN
使用归档日志,数据库是可恢复的数据库。启用前滚恢复和崩溃恢复,但是非自动归档模式。
归档日志文件之后,必须人工将无用的归档日志删除,以便新的日志文件可以复用磁盘空间。每当日志文件已满,DB2 就开始将记录写至另一个日志文件,并且不断创建新日志文件。
Logarchmeth1设置为除OFF 或LOGRETAIN以外的值
使用归档日志。数据库是可恢复的数据库。启用前滚恢复和崩溃恢复。当日志文件满时,自动对它进行归档,归档的目的地就是Logarchmeth1设置的位置。
如果在归档日志文件时发生错误,归档暂挂一段时间,此时间由ARCHRETRYDELAY数据库配置参数指定。还可以使用NUMARCHRETRY 数据库配置参数来指定 DB2 尝试将日志文件归档到主要或辅助归档目录的次数,然后它再尝试将日志文件归档到故障转移目录(由 FAILARCHPATH 数据库配置参数指定)。
Logarchmeth1和Logarchmeth2配置可能有如下几种组合
1,Logarchmeth1设置为LOGRETAIN,Logarchmeth2只能设置为OFF
归档日志位置就是DB2数据库日志的位置,需要人工干预归档日志的转移和空间维护工作
2,Logarchmeth1设置为USEREXIT,Logarchmeth2只能设置为OFF
归档日志的管理交由USEREXIT来处理,通过设置编译USEREXIT可以实现相对复杂一些的归档管理方式
3,Logarchmeth1设置为<Directory>,Logarchmeth2设置为OFF
归档日志的工作将会自动进行,需要归档日志将会被自动归档到<Directory>指定的位置,由于归档是自动进行,DB2的日志目录中只有正常logprimary+logsecond个数据库日志。
4,Logarchmeth1设置为<Directory1>,Logarchmeth2设置为<Directory2>
归档日志的工作将会自动进行,需要归档日志将会被自动归档到<Directory1>和<Directory2>指定的位置,也就是会产生两份归档日志由于归档是自动进行,DB2的日志目录中只有正常logprimary+logsecond个数据库日志。
<Directory1>或者<Directory2>都可以设置为TSM。一般推荐<Directory1>为文件系统,<Directory2>设置为TSM,既可以归档到TSM离线保存,又可以在线使用文件系统中归档日志,比较方便。
注意:设置Logarchmeth1和Logarchmeth2后,数据库会进入backup pending状态,必须进行一次脱机备份,数据才会进入recovery模式并且正常工作。
其他常用的日志设置参数
1,故障转移归档路径(failarchpath)
如果指定的日志归档方法失败,则为归档日志文件指定备用目录。在失败的日志归档方法再次可用之前,此目录是日志文件的临时存储器,此时日志文件将从此目录中移至日志归档方法。通过将日志文件移动至该临时位置,可以避免日志目录发生已满情况。此参数必须是一个标准现有目录。
如果用tsm作为归档目的,这个参数比较必要,当tsm出现问题不能接收归档文件数据的时候,这个可以救急,以免数据库挂起。
2,日志文件大小(logfilsiz)
此参数以 4 KB 的页数指定每个配置日志的大小。
如果logfilsiz太小会引起频繁的日志切换和归档,而且遇到大事务的时候 (logprimary+logsecond)× logfilsiz 不足装下所有内容的时候,该事务会失败回滚。
3,每个事务的最大日志数(max_log)
此参数指示一个事务可以消耗的主日志空间的百分比。该值是为 logprimary 配置参数指定的值的百分比。
如果该值设置为 0,则对一个事务可以消耗的总的主日志空间的百分比没有限制。如果应用程序违反了 max_log 配置,则将强制该应用程序与数据库断开连接,事务将被回滚,并且将返回错误 SQL1224N。
如果对事务大小无法估计,一般都设置为0,避免意外回滚发生。
4,主日志(logprimary)
此参数指定将创建的大小为 logfilsiz 的主日志数。 默认为3
主日志,无论是空的还是满的,都需要相同的磁盘空间容量。因此,若配置的日志多于需要的日志,将会不必要地占用磁盘空间。若配置的日志太少,可能会遇到日志满载的情况。当选择要配置的日志数时,必须考虑建立的每个日志的大小,以及应用程序是否可以处理日志满载的情况。对活动日志空间的总日志文件大小限制为 256 GB。
5,辅助日志(logsecond)
此参数指定创建并用于恢复(如果需要的话)的辅助日志文件的数目。 默认为2
如果主日志文件已满,可按需要一次分配一个辅助日志文件(大小为 logfilsiz),最多可分配由此参数指定的最大数目。如果此参数设置为 -1,则将数据库配置为无限活动日志空间。对在数据库上运行的未完成事务的大小或数量没有任何限制。在必须容纳大型作业的环境中(这些作业需要的日志空间比通常分配给主日志的空间多),无限活动日志记录功能非常有用。