管理 Db2 Warehouse 事务日志
当实例处理大量事务时,归档日志目录可能被填满,此时您可能需要删除日志文件以释放空间。
关于本任务
您可以手动删除不需要的日志文件和目录,或使用 prune history 命令。
如果实例 Db2 Warehouse 因空间不足而失败,在修剪日志之前,您可以编辑关联的 PVC 并增加分配的大小。 您正在使用的存储类必须已 allowVolumeExpansion 设置为 True。
过程
- 手动删除不需要的日志目录和文件
默认情况下, 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"开头的子目录中。
因此,如果目录从 C0000000 到 C0000005 存在,则应删除 C0000000 到 C0000004。
然后,在该 C0000005 目录中,您只需保留最新的100个日志文件。 文件名以"S."开头 如果目录 C0000005 包含 S0000000.LOG 至 S0000200.LOG,则保留 S0000101.LOG 至 S0000200.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来通过文件名指定要删除的日志文件。有关更多详细信息,请参阅以下主题: