Linux Zookeeper数据备份与恢复方法
一 备份方法
sudo systemctl stop zookeepergrep "^dataDir" /etc/zookeeper/conf/zoo.cfgsudo tar -czvf zookeeper-backup-$(date +%Y%m%d%H%M%S).tar.gz /var/lib/zookeepersudo cp /etc/zookeeper/conf/zoo.cfg zookeeper-backup-$(date +%Y%m%d%H%M%S).confecho "Backup created at $(date): /path/to/...tar.gz" >> /var/log/zookeeper-backup.log/opt/zookeeper/bin/zkCli.sh -server localhost:2181[zk: localhost:2181(CONNECTED)] dump / > /backup/zookeeper-dump-$(date +%Y%m%d%H%M%S).json[zk: localhost:2181(CONNECTED)] dump /myapp > /backup/myapp-dump.jsonrsync -avz --delete /var/lib/zookeeper/ backup@10.0.0.10:/backup/zookeeper/$(date +%Y%m%d%H%M%S)rsync -avz --delete backup@10.0.0.10:/backup/zookeeper/latest/ /var/lib/zookeeper/crontab -e 实现日常增量备份与异地落地。二 恢复方法
sudo systemctl stop zookeepersudo mv /var/lib/zookeeper /var/lib/zookeeper.bak-$(date +%Y%m%d%H%M%S)sudo tar -xzvf zookeeper-backup-YYYYMMDDHHMMSS.tar.gz -C /sudo cp zookeeper-backup-YYYYMMDDHHMMSS.conf /etc/zookeeper/conf/zoo.cfgsudo systemctl start zookeeper;echo ruok | nc localhost 2181 返回 imok 表示就绪。/opt/zookeeper/bin/zkCli.sh -server localhost:2181create -s/-e 与 set 写入;对顺序节点需按业务规则重建。get /path 与 ls /path 核对子节点与数据。sudo systemctl restart zookeeper && echo ruok | nc localhost 2181。三 关键注意事项
dataDir、dataLogDir(若配置)与 zoo.cfg 一致;多节点集群按相同流程逐台处理,避免版本与配置漂移。四 快速命令清单
sudo systemctl stop zookeeper && tar -czvf zookeeper-backup-$(date +%Y%m%d%H%M%S).tar.gz /var/lib/zookeeper && sudo systemctl start zookeeper/opt/zookeeper/bin/zkCli.sh -server localhost:2181 dump / > /backup/zk-dump-$(date +%Y%m%d%H%M%S).jsonrsync -avz --delete /var/lib/zookeeper/ backup@10.0.0.10:/backup/zookeeper/$(date +%Y%m%d%H%M%S)sudo systemctl stop zookeeper && tar -xzvf zookeeper-backup-YYYYMMDDHHMMSS.tar.gz -C / && sudo systemctl start zookeeperecho ruok | nc localhost 2181