八、数据备份与恢复
1. 备份范围
cmp-ctl backUp 会备份 MariaDB 中的以下数据库:
grafana;- 名称以
zscmp开头的业务数据库。
Nacos 在当前架构中只用于服务注册发现,不连接 MariaDB,也不纳入恢复范围。Redis 和 RabbitMQ 不作为业务持久化数据恢复来源。
2. 手工备份
默认备份到 ${CMP_INSTALL_ROOT}backup/<时间戳>/:
cmp-ctl backUp
指定备份基础目录:
cmp-ctl backUp --path=/data/cmp-backup
指定路径时,制品目录为:
/data/cmp-backup/backup/<时间戳>/
确认备份文件非空:
find ${CMP_INSTALL_ROOT}backup -maxdepth 2 -type f -name '*.sql' -ls
3. 定时备份
systemctl enable --now crond
crontab -e
每日 01:00 备份示例:
0 1 * * * /usr/bin/cmp-ctl backUp --path=/data/cmp-backup >> /var/log/cmp-backup.log 2>&1
备份保留周期应由项目根据容量和合规要求配置。当前备份脚本不会自动删除历史备份。
4. 数据恢复
数据恢复属于高风险操作,必须先完成当前数据备份,并在维护窗口执行。HA 环境建议由 CMP 支持人员参与。
备份目录示例:
/data/cmp-backup/backup/20260729010000/
停止可能写数据库的业务插件,但保持 MariaDB 运行。然后执行:
bash ${CMP_INSTALL_ROOT}shell/recovery.sh \
/data/cmp-backup/backup/20260729010000
恢复脚本会在原备份目录下创建恢复前安全备份,并在导入失败时自动尝试回滚。恢复成功后执行:
cmp-ctl restart
cmp-ctl inspection
HA 环境还需重新检查 MariaDB 双向复制状态。
