八、数据备份与恢复

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 双向复制状态。

运维手册 | ZStack CMP · ZCF | ZStack 资源中心