问题描述
由于 Apache DolphinScheduler 长期运行,任务数量不断增加,相关任务数据主要存储在数据库中的 t_ds_task_instance
和 t_ds_process_instance
两张表中。
随着这两张表数据量的持续增长,导致系统页面出现卡顿现象。
解决方案
为解决上述问题,采取的措施是定期清理数据库中 t_ds_process_instance
和 t_ds_task_instance
两张表中一个月之前的数据。
数据备份
在进行数据清理之前,首先备份原表数据,以确保数据安全。
use dolphinscheduler;
-- 创建备份表 t_ds_process_instance_backup20241120 和 t_ds_task_instance_backup20241120
CREATE TABLE t_ds_process_instance_backup20241120 LIKE t_ds_process_instance;
CREATE TABLE t_ds_task_instance_backup20241120 LIKE t_ds_task_instance;
-- 将原表数据备份到相应的备份表中
INSERT INTO t_ds_process_instance_backup20241120
SELECT * FROM t_ds_process_instance;
INSERT INTO t_ds_task_instance_backup20241120
SELECT * FROM t_ds_task_instance;
复制代码
检查备份情况
为了确保备份操作成功,可以检查备份表和原表的数据行数。
-- 检查备份表的数据行数
SELECT COUNT(*) FROM t_ds_process_instance_backup20241120;
SELECT COUNT(*) FROM t_ds_task_instance_backup20241120;
-- 检查原表的数据行数
SELECT COUNT(*) FROM t_ds_process_instance;
SELECT COUNT(*) FROM t_ds_task_instance;
复制代码
数据清理
在备份完成并确认无误后,执行清理操作,删除 2024 年 10 月 19 日 23:59:59 之前 的数据。
-- 删除 t_ds_task_instance 表中 2024年10月19日 23:59:59 之前的数据
DELETE FROM t_ds_task_instance
WHERE submit_time < '2024-10-19 23:59:59';
-- 删除 t_ds_process_instance 表中 2024年10月19日 23:59:59 之前的数据
DELETE FROM t_ds_process_instance
WHERE end_time < '2024-10-19 23:59:59';
复制代码
参考:https://blog.csdn.net/weixin_40255084/article/details/141442462
评论