You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何安全清理SLURM v21.08中slurm_acct_db(MySQL)的历史旧数据?

清理SLURM v21.08账号数据库旧数据的方法

针对slurm_acct_db(MySQL)体积过大的问题,使用官方工具sacctmgr是最安全合规的方案,以下是具体操作步骤:

1. 先做数据库备份(必做!)

在任何数据清理操作前,务必备份数据库,防止意外数据丢失:

mysqldump -u <你的数据库用户名> -p slurm_acct_db > slurm_acct_db_backup_$(date +%Y%m%d).sql

执行后输入MySQL密码即可完成备份。

2. 模拟清理操作(测试范围)

先使用dryrun参数模拟删除,确认要清理的目标数据范围,不会实际修改数据库:

sacctmgr -i remove job where end<='2023-01-01' dryrun
  • -i:开启交互确认,避免误操作
  • end<='YYYY-MM-DD':指定要保留数据的截止日期(早于该日期的作业数据会被清理)
  • dryrun:仅输出会被删除的条目,不执行实际删除

3. 执行实际清理

确认模拟结果无误后,去掉dryrun参数执行真实删除:

sacctmgr -i remove job where end<='2023-01-01'

sacctmgr会自动级联删除与作业关联的step、usage等表的相关数据,无需手动处理其他表,避免数据不一致。

4. 分批清理(针对超大数据量)

如果旧数据量极大,建议分批次清理(比如按季度/月份拆分日期),避免一次性删除导致数据库长时间锁表:

# 先清理2022年12月31日之前的数据
sacctmgr -i remove job where end<='2022-12-31'
# 再清理2022年6月30日之前的数据
sacctmgr -i remove job where end<='2022-06-30'

5. 优化MySQL表释放空间

清理完成后,MySQL不会自动释放磁盘空间,需执行表优化操作(建议在业务低峰期进行):

mysql -u <你的数据库用户名> -p -e "OPTIMIZE TABLE slurm_acct_db.job; OPTIMIZE TABLE slurm_acct_db.step; OPTIMIZE TABLE slurm_acct_db.usage;"

注意事项

  • 日期格式必须使用YYYY-MM-DD,SLURM仅识别该格式的日期参数
  • 不要直接手动操作MySQL表删除数据,会破坏SLURM的外键关联,导致数据异常
  • 操作前确保SLURM服务处于稳定状态,避免在作业高峰期执行清理

内容的提问来源于stack exchange,提问作者Emma Athan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 12:55:06