zookeeper 數據遷移及恢復操做

host1爲源zookeeper主機 host2爲目的zookeeper主機 如今將host1的zookeeper數據遷移到host2ide

從host1中找到最新的zookeeper日誌和快照文件

#登陸到host1,切換到zookeeper數據目錄,以下
#(可從zoo.cfg配置文件中獲得數據目錄位置)
$> cd /var/lib/zookeeper/version-2
$> ls -alh
-rw-r--r-- 1 root root 65M Jun 20 13:20 log.1f00059ce3
-rw-r--r-- 1 root root 65M Jul 5 15:33 log.1f0006b6ed
-rw-r--r-- 1 root root 65M Jul 26 16:07 log.2100000001
-rw-r--r-- 1 root root 415K May 17 09:37 snapshot.1f000157ec
-rw-r--r-- 1 root root 414K May 20 14:10 snapshot.1f000275b9
-rw-r--r-- 1 root root 416K May 23 07:02 snapshot.1f0003617e
-rw-r--r-- 1 root root 467K May 26 10:04 snapshot.1f00048346
-rw-r--r-- 1 root root 544K May 29 14:22 snapshot.1f00059ce1
-rw-r--r-- 1 root root 556K Jun 20 13:20 snapshot.1f0006b6ebui

找到最新的日誌文件和快照文件,如上表就是log.2100000001和snapshot.1f0006b6eb

日誌文件存放zookeeper 所有數據記錄 ,快照文件則是內存增量文件。

從host1複製最新的zookeeper日誌和快照文件到host2

$> scp log.2100000001 snapshot.1f0006b6eb root@host2:/tmp日誌

host2載入最新日誌和快照文件並啓動zookeeper服務

#(可從zoo.cfg配置文件中獲得數據目錄位置)
$> rm -fr /var/lib/zookeeper/* #清空host2的zookeeper數據目錄內容
$> cd /tmp
$> cp log.2100000001 snapshot.1f0006b6eb /var/lib/zookeeper
$> systemctl start zk OR zkServer.sh start #啓動zookeeper服務code

驗證host2的zookeeper數據

#客戶端登陸到host2,進行驗證
$> zkCli.sh -server host2:2181 #可從zoo.cfg配置文件中獲得服務端口
$> ls / # 列出全部節點server

關於zookeeper的數據恢復

5.1 上述方法也用於zookeeper的數據恢復
5.2 如host1誤刪了zookeeper數據,能夠先將數據目錄(如/var/lib/zookeeper)備份
5.3 確認好恢復到那一天的數據(不能恢復到當天的數據,會發生錯亂)
5.3 中止zookeeper服務
5.4 進入到zookeeper數據目錄,把其餘的日誌文件和快照刪掉,只保留恢復當天的日誌文件和快照文件
5.5 重啓zookeeper服務
5.6 客戶端驗證zookeeper數據內存

zkui配置過鏈接信息後,再切換到到其餘,報以下錯誤

KeeperErrorCode = ConnectionLoss for /
修改 ./config.cfg zkSessionTimeout=60 zkServer ./target/config.cfg
zkSessionTimeout=60 zkServerget

相關文章
相關標籤/搜索