Debian上Zookeeper备份策略
/var/lib/zookeeper目录(可通过grep "dataDir" /etc/zookeeper/conf/zoo.cfg命令验证)。/etc/zookeeper/conf/zoo.cfg(部分安装可能位于/opt/zookeeper/conf/)。适用场景:需要完整数据备份(如首次备份、重大变更前)。
操作步骤:
sudo systemctl stop zookeeper。tar命令打包数据目录(排除日志文件以减少体积):sudo tar -czvf zookeeper-backup-$(date +%Y%m%d%H%M%S).tar.gz --exclude='*.log' /var/lib/zookeeper。sudo mv zookeeper-backup-*.tar.gz /path/to/backup/location/。sudo systemctl start zookeeper。适用场景:无需停机即可快速备份当前数据状态(适用于生产环境)。
操作步骤:
zkCli.sh客户端连接Zookeeper:./zkCli.sh -server localhost:2181。snapshot命令生成快照(默认保存在数据目录的version-2子目录中)。scp username@zookeeper_host:/var/lib/zookeeper/version-2 /path/to/local/backup。适用场景:确保配置信息不丢失(如集群参数、客户端端口等)。
操作步骤:
cp /etc/zookeeper/conf/zoo.cfg /path/to/config/backup/。适用场景:长期保持数据安全,减少人工干预。
操作步骤:
/usr/local/bin/backup_zookeeper.sh):#!/bin/bash
BACKUP_DIR="/path/to/backup/zookeeper"
TIMESTAMP=$(date +%Y%m%d%H%M%S)
DATA_DIR=$(grep "dataDir" /etc/zookeeper/conf/zoo.cfg | awk '{print $2}')
mkdir -p "$BACKUP_DIR"
sudo systemctl stop zookeeper
tar -czvf "$BACKUP_DIR/zookeeper-backup-$TIMESTAMP.tar.gz" --exclude='*.log' "$DATA_DIR"
sudo systemctl start zookeeper
# 记录日志
echo "Backup completed at $(date), file: $BACKUP_DIR/zookeeper-backup-$TIMESTAMP.tar.gz" >> /var/log/zookeeper-backup.log
chmod +x /usr/local/bin/backup_zookeeper.sh。crontab -e
添加以下内容:0 2 * * * /usr/local/bin/backup_zookeeper.sh。数据一致性:
备份存储安全:
gpg工具),防止敏感数据泄露。备份验证:
保留策略:
若需恢复数据,可参考以下步骤(以数据目录备份为例):
sudo systemctl stop zookeeper。rm -rf /var/lib/zookeeper/*。tar -xzvf /path/to/backup/zookeeper-backup-*.tar.gz -C /var/lib/zookeeper/。sudo systemctl start zookeeper。zkCli.sh连接集群,检查数据是否完整。