插入測試數據
# 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