Insert test data
# 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
View data
# 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
Snapshots do
# 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
View a snapshot of information
# etcdctl snapshot status backup.db --write-out=table +----------+----------+------------+------------+ | HASH | REVISION | TOTAL KEYS | TOTAL SIZE | +----------+----------+------------+------------+ | 6d1803a9 | 110 | 146 | 37 kB | +----------+----------+------------+------------+
Clear data
# etcdctl del --prefix "" 14
Delete the current etcd the data directory, otherwise it will error directory already exists
# rm -rf /usr/local/etcd/data
Data recovery
# 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"}
After the completion of the need to restore from a backup group to modify the owner and regenerate the data directory is etcd system service owners should belong to the genus of the group
# chown -R tnuser.dba /usr/local/etcd/data
Restart etcd system services
# systemctl stop etcd
# systemctl start etcd
Check again recovered data
# 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