一、数据备份
1.1 zk数据备份采用的是冷备份方案中的方案:
- 将 /tmp/zookeeper/version-2/snapshot.* 文件按时间排序,找到第二新的 snapshot 文件(最新的可能正在写入而导致数据不完整,故使用第二新的)。
cp /tmp/zookeeper/version-2/snapshot.xxx snapshot.xxx.`date "+%Y-%m-%d %H:%M:%S"`
二、数据恢复
2.1 停止集群服务
停止集群中所有服务器(一般3个)的zk服务。
/opt/zookeeper/bin/zkServer.sh stop
2.2 删除 snapshot 和事务 log 文件
删除所有节点上的 snapshot 和 事务日志 log 文件,包括 leader 和所有的 follower。否则可能导致恢复数据时发现本机上事务日志文件较新而无法同步数据。
#删除 dataDir 中所有的 snapshot.xxx 和 log.xxx 文件
rm -f /tmp/zookeeper/version-2/*
2.3 依次启动zk服务器
/opt/zookeeper/bin/zkServer.sh start
注意:
- 当至少启动两台服务器时,集群才会处于可用状态,此时才能通过 zkCli.sh 连接集群进行验证。
- 所以最好在启动两台服务器时验证服务器是否正常启动,是否可用,数据是否同步,当处于可用状态时再启动其他的服务器。