etcd single-node data backup and recovery

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

 

Guess you like

Origin www.cnblogs.com/ilifeilong/p/11619795.html