IBM®
跳转到主要内容
    中国 [选择]    使用条款
 
 
Select a scope: Search for:    
    首页    产品    服务与解决方案     支持与下载    个性化服务    
跳转到主要内容

developerWorks 中国  >  Information Management  >

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

用于维护诊断数据的可下载脚本

developerWorks
文档选项

未显示需要 JavaScript 的文档选项

讨论

样例代码

英文原文

英文原文


级别: 中级

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

2009 年 6 月 29 日

是否希望以更好的方法管理 IBM® DB2® for Linux® or AIX® 服务器上的诊断文件?如果是这样,本文会对您有帮助。这里提供一个脚本,它可以帮助您存档和维护这些文件。通过压缩和删除旧的文件,可以进一步简化管理过程。

简介

随着自治技术的应用日益增加,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 <path> ] [-r <days> ]
   Options:
 -h           Print help message
 -a           Archive diagnostic data
 -r <days>    Remove diagnostic archives that are > 
              then <days> old. Can be combined with -a
 -o <dir>     Specify output directory
 -z           Compress diagnostic data tar archive
 -v           Verbose output.
 -p           Run diag data archiving in parallel
              (default is sequential).
 -l           Local execution. This is used in cases 
              when db2dump is shared by all partitions. 
              It also can be used if archive runs on 
              just single physical partition.
 -t           Suboption for -a, archives data to a 
              tar archive at destination.

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

指定目标(存档)目录

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

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

存档

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

db2dback.ksh  -a  [-o <destination_path> ]

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

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

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

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

db2dback.<hostname>.YYYY-MM-DD-hhmmss

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

db2dback.ksh  -a -t [-o <destination_path> ]

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

db2dback.<hostname>.YYYY-MM-DD-hhmmss.tar

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

db2dback.ksh  -a –z [-o <destination_path> ]
db2dback.ksh  -a -t –z [-o <destination_path> ]

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

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





回页首


维护存档的诊断数据

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

db2dback.ksh  -r <number_of_days>

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

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

db2dback.ksh  -a -r 180

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





回页首


脚本日志文件

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

db2dback.<hostname>.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





回页首


结束语

使用这个脚本可以轻松地管理 AIX 或 Linux 上的 DB2 的诊断日志。试一下,您会体验到管理诊断数据是多么容易。






回页首


下载

描述名字大小下载方法
db2back 脚本db2back.zip5KBHTTP
关于下载方法的信息


参考资料

学习

获得产品和技术
  • 现在可以免费使用 DB2。下载 IBM 软件下载:IBM DB2 Express-C 9.5,这是为社区提供的 DB2 Express Edition 的免费版本,它提供了与 DB2 Express Edition 相同的核心数据特性,为构建和部署应用程序奠定了坚实的基础。

  • 下载 IBM 产品评估版IBM SOA Sandbox for Reuse,试用这些来自 DB2、Lotus®、Rational®、Tivoli® 和 WebSphere® 的应用程序开发工具和中间件产品。

讨论


关于作者

Albert Grankin 是 DB2 for Linux, UNIX, and Windows Advanced Problem Determination Team 的资深成员。Albert 有超过 12 年数据库行业从业经验,在数据库性能调优、故障排除、深入问题诊断和调试方面经验丰富。Albert 还具有丰富的开发经验,主要为 DB2 产品系列开发诊断和故障排除工具。Albert 曾经在许多场合会见客户,包括为不同地区的客户提供现场技术咨询和出席客户活动。




对本文的评价










回页首


DB2、IBM、Lotus、Rational、Tivoli 和 WebSphere 是 IBM 公司在美国和/或其他国家的商标。 Linux 是 Linus Torvalds 在美国和/或其他国家的注册商标。 Windows 是 Microsoft 公司在美国和/或其他国家的商标。 UNIX 是 The Open Group 在美国和其他国家的注册商标。 其他公司、产品或服务的名称可能是其他公司的商标或服务标志。

IBM 公司保留在 developerWorks 网站上发表的内容的著作权。未经IBM公司或原始作者的书面明确许可,请勿转载。如果您希望转载,请通过 提交转载请求表单 联系我们的编辑团队。
    关于 IBM 隐私条约 联系 IBM 使用条款