etcd單節點數據備份與恢復


插入測試數據

# etcdctl put  smith  7369
# etcdctl put  allen  7499
# etcdctl put  ward   7521
# etcdctl put  jones  7566
# etcdctl put  martin 7654
# etcdctl put  blake  7698
# etcdctl put  clark  7782
# etcdctl put  scott  7788
# etcdctl put  king   7839
# etcdctl put  turner 7844
# etcdctl put  adams  7876
# etcdctl put  james  7900
# etcdctl put  ford   7902
# etcdctl put  miller 7934

查看數據

# etcdctl get --prefix ""
adams
7876
allen
7499
blake
7698
clark
7782
ford
7902
james
7900
jones
7566
king
7839
martin
7654
miller
7934
scott
7788
smith
7369
turner
7844
ward
7521

做快照

# etcdctl snapshot save backup.db
{"level":"info","ts":1570085496.5022638,"caller":"snapshot/v3_snapshot.go:109","msg":"created temporary db file","path":"backup.db.part"}
{"level":"warn","ts":"2019-10-03T14:51:36.503+0800","caller":"clientv3/retry_interceptor.go:116","msg":"retry stream intercept"}
{"level":"info","ts":1570085496.5036564,"caller":"snapshot/v3_snapshot.go:120","msg":"fetching snapshot","endpoint":"127.0.0.1:2379"}
{"level":"info","ts":1570085496.5214782,"caller":"snapshot/v3_snapshot.go:133","msg":"fetched snapshot","endpoint":"127.0.0.1:2379","took":0.018938519}
{"level":"info","ts":1570085496.521635,"caller":"snapshot/v3_snapshot.go:142","msg":"saved","path":"backup.db"}
Snapshot saved at backup.db

查看快照信息

# etcdctl snapshot status backup.db --write-out=table
+----------+----------+------------+------------+
|   HASH   | REVISION | TOTAL KEYS | TOTAL SIZE |
+----------+----------+------------+------------+
| 6d1803a9 |      110 |        146 |      37 kB |
+----------+----------+------------+------------+

清空數據

# etcdctl del --prefix ""
14

刪除當前etcd的data目錄,否則會報錯目錄已存在

# rm -rf /usr/local/etcd/data

恢復數據

# etcdctl snapshot restore backup.db --data-dir="/usr/local/etcd/data"
{"level":"info","ts":1570085656.639806,"caller":"snapshot/v3_snapshot.go:286","msg":"restoring snapshot","path":"backup.db","wal-dir":"/usr/local/etcd/data/member/wal","data-dir":"/usr/local/etcd/data","snap-dir":"/usr/local/etcd/data/member/snap"}
{"level":"info","ts":1570085656.7266932,"caller":"membership/cluster.go:392","msg":"added member","cluster-id":"cdf818194e3a8c32","local-member-id":"0","added-peer-id":"8e9e05c52164694d","added-peer-peer-urls":["http://localhost:2380"]}
{"level":"info","ts":1570085656.7834268,"caller":"snapshot/v3_snapshot.go:299","msg":"restored snapshot","path":"backup.db","wal-dir":"/usr/local/etcd/data/member/wal","data-dir":"/usr/local/etcd/data","snap-dir":"/usr/local/etcd/data/member/snap"}

恢復完成后需要將從備份重新生成的data目錄的屬主和屬組修改為etcd系統服務中的對應屬主和屬組

# chown -R tnuser.dba /usr/local/etcd/data

重啟etcd系統服務

# systemctl stop etcd
# systemctl start etcd

再次查看恢復的數據

# etcdctl get --prefix ""
adams
7876
allen
7499
blake
7698
clark
7782
ford
7902
james
7900
jones
7566
king
7839
martin
7654
miller
7934
scott
7788
smith
7369
turner
7844
ward
7521

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM