管理 Db2 Warehouse 事务日志

当实例处理大量事务时,归档日志目录可能被填满,此时您可能需要删除日志文件以释放空间。

关于本任务

您可以手动删除不需要的日志文件和目录,或使用 prune history 命令。

如果实例 Db2 Warehouse 因空间不足而失败,在修剪日志之前,您可以编辑关联的 PVC 并增加分配的大小。 您正在使用的存储类必须已 allowVolumeExpansion 设置为 True

注意: 在删除日志目录之前,请确保没有备份或还原操作正在运行。 你可以使用 命令 db2 list utilities 进行确认。

过程

使用以下任一方法管理日志文件:
手动删除不需要的日志目录和文件

默认情况下, Db2 Warehouse 系统将事务日志归档到磁盘时采用以下设置:

First log archive method (LOGARCHMETH1): DISK:/mnt/bludata0/db2/archive_log/
Number of primary log files (LOGPRIMARY): 20
Number of secondary log files (LOGSECOND): 30

以下公式用于确定每个多逻辑节点(MLN)中保留多少日志:

(log primary + log secondary) * 2

因此默认情况下,会保留 (20 + 30) * 2 或 100 个日志。

要维持此数量的日志,请假设您部署了一个MLN。 归档 /mnt/bludata0/db2/archive_log/db2inst1/BLUDB/NODE0000/LOGSTREAM0000 日志保存在目录中名称以"C"开头的子目录中。

因此,如果目录从 C0000000C0000005 存在,则应删除 C0000000C0000004

然后,在该 C0000005 目录中,您只需保留最新的100个日志文件。 文件名以"S."开头 如果目录 C0000005 包含 S0000000.LOGS0000200.LOG,则保留 S0000101.LOGS0000200.LOG

然后,您需要对每个MLN重复此过程,从 NODE0000 到 N ODExxxx。

要删除日志目录,请以 db2inst1 用户身份登录后执行以下命令:

sudo rm -r directory
使用 Db2 Warehouseprune history 命令

要查找需要清理日志的时间戳(包含该时间戳),请运行以下命令:

db2 list history all for database-name | egrep "B P|B D|X D"

该命令返回以下存储项的时间戳:

X D:log archive
B P:tablespace backup
B D:full backup

基础的 prune 历史命令允许 Db2 Warehouse 维护一个恢复集。 db2 prune history timestamp 若使用 db2 prune history timestamp with force optionDb2 Warehouse 则不会保留还原集。 您还可以使用命令参数,例如 AND DELETE 来指定在删除历史记录文件条目时物理删除关联的日志归档文件,以及 LOGFILE PRIOR TO log-file-name 来通过文件名指定要删除的日志文件。

有关更多详细信息,请参阅以下主题:

注: 有关自动化诊断日志文件管理的详细信息,请参阅 《使用 Db2 Warehouse 服务的Administrative Task Scheduler (ATS)自动化任务》