备份策略
-
数据目录备份
- 停止Zookeeper服务:
sudo systemctl stop zookeeper。 - 备份数据目录(默认
/var/lib/zookeeper):使用tar命令打包压缩,如sudo tar -czvf zookeeper-backup-$(date +%Y%m%d%H%M%S).tar.gz /var/lib/zookeeper,建议排除日志文件。 - 定期备份:通过
cron设置定时任务,如每天凌晨2点执行备份脚本。
- 停止Zookeeper服务:
-
配置文件备份
- 备份配置文件(默认
/etc/zookeeper/conf/zoo.cfg):sudo cp /etc/zookeeper/conf/zoo.cfg /path/to/backup/。
- 备份配置文件(默认
-
快照与日志备份
- 使用
zkCli.sh工具创建快照:./zkCli.sh -server。save /path/to/snapshot - 事务日志自动管理,无需手动备份,可通过配置
autopurge.snapRetainCount和autopurge.purgeInterval控制保留数量和清理间隔。
- 使用
恢复策略
-
手动恢复
- 停止Zookeeper服务:
sudo systemctl stop zookeeper。 - 恢复数据目录:删除原数据并复制备份文件到
/var/lib/zookeeper,如sudo rm -rf /var/lib/zookeeper/* && sudo cp -r /path/to/backup/* /var/lib/zookeeper/。 - 启动服务:
sudo systemctl start zookeeper。
- 停止Zookeeper服务:
-
工具恢复
- 通过
zkCli.sh恢复快照:连接集群后执行load /path/to/snapshot。 - 使用Java客户端API恢复:通过
ZooKeeper类读取快照文件并重放事务日志(需自行实现逻辑)。
- 通过
-
注意事项
- 恢复前确保备份完整,恢复后可能丢失快照之后的数据。
- 集群模式下需确保所有节点数据一致,建议从主节点备份恢复。
参考来源: