停止服務
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
參考來源: