以下的文章主要向大家描述的是DB2 back 存档使用与正确维护,在实际操作中我们是否希望以更好的方法管理 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 实例所有者可以按以下步骤安装此脚本:
从下面的 下载 部分获取 db2dback.zip 文件。
从 zip 文件中提取出 db2dback.ksh 脚本。
把 db2dback.ksh 复制到 DB2 数据库实例的 sqllib/bin 目录中。
必须有在 DPF 设置上远程执行脚本所需的执行权限。
下面的命令示例设置正确的执行权限:
- cp db2dback.ksh ~/sqllib/bin
- hmod 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.
刚创建的 db2数据库diag.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。
【编辑推荐】