/var/lib/zookeeper(可通過grep "dataDir" /etc/zookeeper/conf/zoo.cfg確認)。/etc/zookeeper/conf。sudo systemctl stop zookeeper
使用tar命令將數據目錄打包為壓縮文件(文件名包含時間戳,便于管理):
sudo tar -czvf zookeeper-data-backup-$(date +%Y%m%d%H%M%S).tar.gz /var/lib/zookeeper
同樣使用tar命令備份配置文件:
sudo tar -czvf zookeeper-config-backup-$(date +%Y%m%d%H%M%S).tar.gz /etc/zookeeper/conf
將備份時間、文件名等信息記錄到日志文件,方便后續查找:
echo "Backup completed at $(date)" >> /var/log/zookeeper-backup.log
echo "Data backup file: /path/to/zookeeper-data-backup-$(date +%Y%m%d%H%M%S).tar.gz" >> /var/log/zookeeper-backup.log
echo "Config backup file: /path/to/zookeeper-config-backup-$(date +%Y%m%d%H%M%S).tar.gz" >> /var/log/zookeeper-backup.log
使用rsync命令實現增量備份(僅同步變化的文件):
sudo rsync -av --delete /var/lib/zookeeper /backup/zookeeper-data
sudo rsync -av --delete /etc/zookeeper/conf /backup/zookeeper-config
可將此命令添加到crontab中(如每天凌晨3點執行):
crontab -e
# 添加以下內容
0 3 * * * sudo rsync -av --delete /var/lib/zookeeper /backup/zookeeper-data && sudo rsync -av --delete /etc/zookeeper/conf /backup/zookeeper-config
連接到Zookeeper集群:
./zkCli.sh -server localhost:2181
在客戶端中執行save命令創建快照(快照會保存到數據目錄的version-2子目錄):
save
退出客戶端:
quit
sudo systemctl stop zookeeper
data目錄、config目錄和快照文件可用。將數據目錄和配置文件的備份解壓到原路徑:
# 解壓數據目錄
sudo tar -xzvf /path/to/zookeeper-data-backup-*.tar.gz -C /
# 解壓配置文件
sudo tar -xzvf /path/to/zookeeper-config-backup-*.tar.gz -C /etc/zookeeper/
解壓完成后,啟動Zookeeper服務:
sudo systemctl start zookeeper
使用zkCli.sh連接Zookeeper,檢查數據是否恢復:
./zkCli.sh -server localhost:2181
ls /
# 查看具體節點數據
get /your_node_path
quit
若之前使用zkCli.sh save創建了快照,可將快照文件復制到數據目錄并重啟服務:
# 停止服務
sudo systemctl stop zookeeper
# 刪除原數據目錄內容(謹慎操作?。?/span>
sudo rm -rf /var/lib/zookeeper/*
# 復制快照文件(假設快照在/var/lib/zookeeper/version-2/snapshot.123)
sudo cp /var/lib/zookeeper/version-2/snapshot.123 /var/lib/zookeeper/
# 啟動服務
sudo systemctl start zookeeper
log.*),恢復時無需單獨處理,Zookeeper會自動合并快照和日志。通過以上步驟,可在Ubuntu上完成Zookeeper數據的備份與恢復,確保數據安全性和系統可靠性。