在 CentOS 上备份 Dolphin 数据的实用方案
先确认产品类型
- DolphinDB:列式分布式数据库,核心数据在 DFS 分布式存储,配套有内置的 backup/restore 接口,适合做按分区的高效备份与跨机恢复。
- Apache DolphinScheduler:分布式任务调度平台,业务数据主要在 关系型数据库(如 MySQL/PostgreSQL),备份通常采用数据库 dump 或表级备份。
- KDE 的 Dolphin 文件管理器:图形文件管理器,本身不保存业务数据;如需备份,请备份用户配置与重要文件目录。
DolphinDB 的备份与恢复
- 备份思路
- 使用内置函数 backup 将 DFS 表/库按分区导出为二进制文件,支持全量或条件(如按时间)备份,效率高、一致性好。示例:
- 全量备份某表
- backupDir = “/hdd/hdd1/backDir”
- backup(backupDir, <select * from loadTable(“dfs://db1”,“mt”)>)
- 近 7 天数据备份(按分区字段 TradingDay)
- backupDir = “/hdd/hdd1/backDir”
- backup(backupDir, <select * from loadTable(“dfs://db1”,“mt”) where TradingDay > date(now())-7 and TradingDay <= date(now())>)
- 备份指定列
- backupDir = “/hdd/hdd1/backDir”
- backup(backupDir, <select col1,col2,col3 from loadTable(“dfs://db1”,“mt”)>)
- 跨机传输
- 备份完成后用 rsync/scp 同步备份目录到远端,建议配置 SSH 免密,示例:
- rsync -av /hdd/hdd1/backDir/ user@restoreIP:/restoreDir
- 恢复思路
- 在目标环境使用 restore 将备份目录恢复到指定库表,示例:
- restore(“/restoreDir”, “dfs://db1”, “mt”, “%”, true, loadTable(“dfs://db2”,“mt”))
- 定时与自动化
- 可在 DolphinDB 内用 scheduleJob 定时触发备份任务,或在外部用 cron 调度脚本执行 backup + rsync,实现无人值守的定期备份与异地落盘。
Apache DolphinScheduler 的备份
- 数据库备份(推荐)
- 关系型库(如 MySQL)使用 mysqldump 做逻辑备份;示例:
- mysqldump -h localhost -u ds -p dolphinscheduler > dolphinscheduler_$(date +%F).sql
- 如需时间点恢复,建议结合数据库 binlog 或采用企业备份工具。
- 表级备份(清理前的安全做法)
- 对增长最快的两张表做表级备份,示例:
- CREATE TABLE t_ds_process_instance_backup20241120 LIKE t_ds_process_instance;
- INSERT INTO t_ds_process_instance_backup20241120 SELECT * FROM t_ds_process_instance;
- CREATE TABLE t_ds_task_instance_backup20241120 LIKE t_ds_task_instance;
- INSERT INTO t_ds_task_instance_backup20241120 SELECT * FROM t_ds_task_instance;
- 校验行数后,再按业务时间阈值清理历史数据,降低页面卡顿风险。
KDE Dolphin 文件管理器的备份
- 该工具为桌面文件管理器,不承载业务数据;如需备份,请关注:
- 用户配置目录:如 ~/.config/dolphinrc、~/.local/share/dolphin/(不同版本路径可能略有差异)。
- 重要文件与目录:将用户主目录或业务数据目录纳入常规备份(见下节通用方案)。
CentOS 上的通用备份与自动化
- 文件/目录级备份
- 使用 rsync 做增量备份(首次全量,后续仅传差异):
- rsync -av --delete /path/to/source /backup/data/source_$(date +%F)
- 使用 tar 做快照归档(适合一次性打包):
- tar -czvf /backup/data/source_$(date +%F).tar.gz /path/to/source
- 定时任务
- 编辑 crontab:crontab -e
- 示例:每天 02:00 执行备份脚本
- 0 2 * * * /opt/backup/backup_dolphin.sh
- 远程传输与保留策略
- 结合 rsync 将备份推送到远端存储;建议按日期命名并保留近 7/30 天,定期清理过期备份,避免磁盘占满。