在 Linux 下备份 ZooKeeper 通常有两种常见方式:数据目录冷备(最常用) 和 使用 ZooKeeper 自带工具 / 快照恢复。下面按实际运维场景给你说明。
ZooKeeper 的数据主要在配置文件 zoo.cfg 中指定的目录:
dataDir=/data/zookeeper
dataLogDir=/data/zookeeper/logs
需要备份的内容:
dataDir:存储快照(snapshot.*)dataLogDir:事务日志(log.*)zoo.cfg:配置文件(非常重要)zkServer.sh stop
tar zcvf zk_backup_$(date +%F).tar.gz \
/data/zookeeper \
/data/zookeeper/logs \
/path/to/zoo.cfg
zkServer.sh start
✅ 适合:
ZooKeeper 支持 运行中备份,只要拷贝文件即可。
tar zcvf zk_hot_backup_$(date +%F).tar.gz \
/data/zookeeper \
/data/zookeeper/logs
⚠ 注意:
ls /data/zookeeper/version-2/snapshot.*
❌ 不建议只备份 snapshot,因为:
zkServer.sh stop
rm -rf /data/zookeeper/version-2
tar zxvf zk_backup_2026-01-21.tar.gz -C /
zkServer.sh start
✅ 集群环境:
✅ 备份频率:
0 2 * * * /opt/backup_zk.sh
✅ 保留策略:
❌ 只备份 myid
❌ 恢复后集群 ID 不一致
❌ 不同 ZooKeeper 大版本混用备份
如果你愿意,我可以:
你现在是单机还是集群?