停止服务
sudo systemctl stop zookeeper
备份数据目录
sudo tar -czvf zookeeper_backup_$(date +%Y%m%d%H%M%S).tar.gz /var/lib/zookeeper
(/var/lib/zookeeper
为默认数据目录,可通过grep 'dataDir' /etc/zookeeper/conf/zoo.cfg
确认)snapshot.dir
和log.dir
),使用zkCli.sh
或API定期保存快照。备份配置文件
sudo cp /etc/zookeeper/conf/zoo.cfg zookeeper_backup_$(date +%Y%m%d%H%M%S).conf
停止服务
sudo systemctl stop zookeeper
清理数据目录
sudo rm -rf /var/lib/zookeeper/*
恢复数据
snapshot.*
)和事务日志(log.*
)复制到数据目录:sudo cp /path/to/backup/snapshot.* /var/lib/zookeeper/
sudo cp /path/to/backup/log.* /var/lib/zookeeper/
sudo tar -xzvf zookeeper_backup_*.tar.gz -C /
启动服务并验证
sudo systemctl start zookeeper
echo stat | nc localhost 2181 # 检查节点状态
./zkCli.sh -server localhost:2181 ls / # 验证数据
crontab
设置每日备份(如凌晨2点),并保留最近7天的备份。sudo chown -R zookeeper:zookeeper /var/lib/zookeeper
参考来源: