zookeeper数据迁移及恢复
在应用系统上云迁移的时候经常会遇到中间件的数据迁移,今天就和大家介绍一下zookeeper的数据如何迁移与恢复。
第一步:从原系统环境zookeeper服务器的数据目录下复制最新的日志和快照文件。
先去zookeeper的配置文件中找到data目录存放路径:
cd /usr/local/zookeeper/conf
cat zoo.cfg
打开zoo.cfg文件找到具体配置的zookeeper的data目录,例如:
# the directory where the snapshot is stored.
# do not use /tmp for storage, /tmp here is just
# example sakes.
dataDir=/home/zookeeper
进入到dataDir下的version-2文件夹,version-2文件夹下存放的是zookeeper的日志和快照文件,我们找到最新的日志和镜像文件,例如log.***和snapshot.***
快照文件是全量数据,而日志文件存放的则是增量数据。
ps.这里要注意找最新的日志和快照文件
zookeeper的日志和快照文件的清理可以看这篇文章:Zookeeper事务日志和snapshot清理方式
第二步:传输日志和快照文件
如果源端和目标端网络是通的话可以通过scp/rsync的方式同步过去,如果网络不通则通过中转机来过渡。
第三步:停掉需要恢复数据的zk服务,删除数据目录下的文件,复制刚才的两个文件到数据目录下
假设需要恢复数据的服务器上zookeeper数据目录也是在/home/zookeeper下
rm -fr /home/zookeeper/*
cp log.*** snapshot.*** /home/zookeeper
cd /usr/local/zookeeper/bin
./zkServer.sh start
如果是三台需要全部服务停掉,恢复其中的一台,然后等数据恢复完成后,再启动其余的两台服务让zk自己同步数据过去
第四步:验证数据是否真的恢复了
cd /usr/local/zookeeper/bin
./zkCli.sh
ls /
ls查看zk中的数据.
Zookeeper日志与快照文件的分析可以参考这篇文章:ZooKeeper日志与快照文件简单分析
来源于:https://blog.csdn.net/xiao_7_syf/article/details/120454618