使用 db2back 存档和维护 DB2 消息日志和诊断数据

Albert Grankin, 高级软件工程师, IBM

简介

随着自治技术的应用日益增加,DB2 服务器可能会产生很大的消息日志文件、管理通知日志文件和事件日志文件。在具有许多逻辑和物理分区的大型数据仓库环境中,这种情况尤其显著。另外,在出现问题时,为了满足首次故障数据捕捉的需要,DB2 往往会产生大量诊断数据。

日志记录活动的增加还会增加占用的文件系统空间,导致可管理性问题。简单地删除日志文件是不可行的,因为 DB2 支持人员常常要求用户提供历史诊断数据,尤其是在研究当前问题期间和迁移实例之后。

本文介绍一个新脚本,可以使用它对 DB2 实例的诊断日志和数据执行维护任务。这个脚本称为 db2dback.ksh,可以通过后面 下载 部分中的 zip 文件获得它。这个脚本可以在单一分区和多分区环境中运行,它会考虑不同的用户设置,不同的物理分区可以使用共享的或单独的诊断数据路径。

脚本概述

db2dback.ksh shell 脚本可以对来自 DB2 实例配置的诊断数据路径 (DIAGPATH) 的诊断数据进行存档。还可以对目标(存档)目录中已经存档的数据进行维护。

DB2 实例的所有者应该定期运行此脚本。可以手工运行此脚本,也可以通过调度工具(例如,cron 作业)运行。

此脚本当前可以处理 AIX 和 Linux 操作系统上的 DB2 实例。在这两种环境中,它可以处理单分区实例或用 Data Partitioning Feature (DPF) 创建的多分区实例,还包括 Balanced Warehouse 设置。在 DPF 环境中,此脚本支持不同的实例配置:

  • 在所有分区之间共享单一 DIAGPATH
  • 每个物理分区使用单独的 DIAGPATH

注意:DIAGPATH 是一个 DB2 数据库管理程序配置参数值。如果在实例配置中没有设置这个参数,那么使用 DB2 实例所有者的默认值 $HOME/sqllib/db2dump。关于数据库管理程序配置参数的更多信息,请参见 DB2 Information Center

安装脚本

DB2 实例所有者可以按以下步骤安装此脚本:

  1. 从下面的 下载 部分获取 db2dback.zip 文件。
  2. 从 zip 文件中提取出 db2dback.ksh 脚本。
  3. 把 db2dback.ksh 复制到 DB2 实例的 sqllib/bin 目录中。

必须有在 DPF 设置上远程执行脚本所需的执行权限。

下面的命令示例设置正确的执行权限:

cp db2dback.ksh  ~/sqllib/bin
chmod 755 ~/sqllib/bin/db2dback.ksh

获得脚本帮助

可以用 –h 命令行选项运行 db2dback.ksh 脚本,显示脚本选项的帮助:

$ db2dback.ksh -h
04-01-2009 13:13:25:  DIAGPATH is set to /home3/agrankin/sqllib/db2dump
Usage: db2dback.ksh [-ahzvptl] [-o  ] [-r  ]
   Options:
 -h           Print help message
 -a           Archive diagnostic data
 -r     Remove diagnostic archives that are > 
              then  old. Can be combined with -a
 -o 

下面详细介绍不同的选项。

指定目标(存档)目录

如果没有在命令行上指定目标目录,脚本使用 DIAGPATH/db2dump_archive 目录作为默认的目标。如果此目录不存在,脚本会创建它。

可以创建一个 DIAGPATH/db2dump_archive 链接,让它指向另一个有足够空间的本地或 NFS 挂载文件系统。在有多个物理分区的 DPF 设置中,如果物理分区不共享诊断路径目录,那么必须在每个物理分区上创建此链接。

存档

使用 –a (archive) 命令行选项存档来自 DIAGPATH 的诊断数据:

db2dback.ksh  -a  [-o  ]

在默认情况下,在 DPF 系统上脚本尝试使用 rah 命令在每个物理分区上运行本身的本地版本。如果所有物理分区共享 DIAGPATH(BCU 不建议这么做),可以使用 –l 子选项调用脚本的本地版本。

脚本把 db2diag.log 和管理日志文件重命名为 db2diag.log. 和 .log.,然后为实例创建新的日志文件。然后,脚本使用 UNIX mv 命令转移 DIAGPATH 中的所有文件和目录,但是以下文件和目录除外:

  • 刚创建的 db2diag.log 和管理通知日志文件。
  • stmmlog 目录中的自调优内存管理程序 (STMM) 日志文件。STMM 自动地管理它的日志文件使用的空间,通常不会让空间总量超过 50MB。
  • 在 15 分钟以内创建的任何诊断数据文件或首次发生数据捕捉 (FODC) 目录。这是为了确保在诊断数据转储期间启动存档的情况下,文件不会分配到不同的存档或目标中。

从 DIAGPATH 转移到新目标的所有文件保留原有的目录层次结构。所有文件转移到采用以下命名约定的子目录中:

db2dback..YYYY-MM-DD-hhmmss

使用 –t 命令行选项为目标目录中的所有诊断数据文件创建 tar 存档:

db2dback.ksh  -a -t [-o  ]

从源目录中删除已经复制到 tar 存档中的文件。上面的文件例外规则也适用于 tar 存档。tar 文件采用以下命名约定:

db2dback..YYYY-MM-DD-hhmmss.tar

使用 –z 命令行子选项压缩目标目录中的文件。在默认情况下,脚本使用 gzip 工具压缩文件。如果脚本在系统上找不到 gzip 命令,它会尝试使用 compress 实用程序。可以与 –t 子选项同时使用此选项,也可以单独使用:

db2dback.ksh  -a –z [-o  ]
db2dback.ksh  -a -t –z [-o  ]

在把数据发送给 tar 存档时,工具在最后压缩存档。如果要转移数据(没有 –t 选项),那么在目标目录中分别压缩转移的每个文件。只压缩超过 200KB 的文件。

在默认情况下,DPF 系统上的诊断数据存档是连续的,这意味着工具每次存档一个物理分区的数据。使用 –p 子选项对所有物理分区同时执行存档。这会在脚本中的 DB2 rah 命令中插入 ||& 前缀。关于使用 rah 命令的更多信息,请参见 DB2 Information Center






维护存档的诊断数据

-r 命令行选项执行脚本,可以执行基本的诊断数据存档维护。可以与 –a 存档选项同时使用此选项,也可以单独使用。不带 –a 选项的命令格式如下:

db2dback.ksh  -r 

在使用此选项时,必须通过参数指定文件在存档中保留的天数。

在与 –a 存档选项同时使用 -r 选项时,工具先存档诊断数据,然后尝试删除旧文件。带 –a 选项的命令格式如下:

db2dback.ksh  -a -r 180

天数参数可以指定为 0(零),表示希望删除除了 db2dback.ksh 实用程序日志文件之外的所有存档文件。







脚本日志文件

db2dback.ksh 脚本把消息写入自己的日志文件。这些消息报告进度并记录所有错误。脚本为每个物理分区创建单独的日志文件。日志文件的命名约定使用机器的主机名,如下所示:

db2dback..log

脚本在存档目标目录中创建日志文件。文件只包含最近一次调用脚本的相关信息,这确保文件本身不会增长得太大。下面是日志文件的示例:

   db2dback.ksh
02-05-2009 19:00:38:  Option -r specified
02-05-2009 19:00:38:  Removing all archives older than 0 days
02-05-2009 19:00:38:  Removing archive db2dback.p6db2serv.2009-02-05-190017

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/15082138/viewspace-608832/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/15082138/viewspace-608832/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值