日志数据归档
在 HAP 私有部署系统中,工作流执行数据与工作表日志是长久保留的,对于一些使用场景可能造成这类数据量庞大,占用较多数据库空间。
你可以在 MongoDB 中通过 show dbs
命令查看各库大小,再通过统计表大小的命令找到占用空间大的表。
我们提供了日志数据归档方案,根据设定的规则,可以将相关日志数据归档到一个新的 MongoDB 实例,并删除源数据库中已经归档的数据 。在删除操作完成后,页面上对应时间段的工作流执行记录、审批流日志(审批流也属于工作流的范畴)、工作表行记录日志将不再显示。
首先,你需要部署一个新的 MongoDB 实例。我们建议新实例的版本与当前 HAP 所使用的 MongoDB 版本保持一致。单机环境内置的 MongoDB 版本默认为 v3.4.24,我们提供了一个 v3.4.24 版本的 单节点 MongoDB 部署文档 供参考。如果你只需要删除相关数据而不进行归档,则无需准备新的 MongoDB 实例。
在 HAP 私有部署单机环境中,为确保日志归档程序访问 MongoDB,需事先将 MongoDB 端口映射至主机,可参考外部如何访问各存储组件,并注意千万不要将端口暴露在公网之上。
配置步骤:
-
下载镜像(离线包下载)
docker pull registry.cn-hangzhou.aliyuncs.com/mdpublic/mingdaoyun-archivetools:1.0.2
-
创建
config.json
配置文件,示例内容如下:[
{
"id": "1",
"text": "工作流执行历史数据归档",
"start": "2023-01-01",
"end": "2023-02-01",
"src": "mongodb://root:password@192.168.1.20:27017/mdworkflow?authSource=admin",
"archive": "mongodb://root:password@192.168.1.30:27017/mdworkflow-archive-2023271003?authSource=admin",
"table": "wf_instance",
"delete": true,
"batchSize": 500,
"retentionDays": 0
},
{
"id": "2",
"text": "工作流执行历史数据归档",
"start": "2023-01-01",
"end": "2023-02-01",
"src": "mongodb://root:password@192.168.1.30:27017/mdworkflow?authSource=admin",
"archive": "mongodb://root:password@192.168.1.30:27017/mdworkflow-archive-2023271003?authSource=admin",
"table": "wf_subInstanceActivity",
"delete": true,
"batchSize": 500,
"retentionDays": 0
},
{
"id": "3",
"text": "工作表行记录日志数据归档",
"start": "2023-01-01",
"end": "2023-02-01",
"src": "mongodb://root:password@192.168.1.20:27017/mdworksheetlog?authSource=admin",
"archive": "mongodb://root:password@192.168.1.30:27017/mdworksheetlog-archive-2023271003?authSource=admin",
"table": "wslog*",
"delete": true,
"batchSize": 500,
"retentionDays": 0
}
]- 根据上述配置文件格式,调整或添加配置内容,以清理你所需的数据表
参数说明:
"id": "服务标识ID",
"text": "描述",
"start": "指定归档的数据起始日期,UTC时区(retentionDays值大于0则此配置自动失效)",
"end": "指定归档的数据结束日期,UTC时区(retentionDays值大于0则此配置自动失效)",
"src": "来源库连接地址",
"archive": "目标库连接地址(如果值为空,则不归档只按照设定的规则进行删除)",
"table": "