插入测试数据
# 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
===================来自一泽涟漪的博客,转载请标明出处 www.cnblogs.com/ilifeilong===================