etcd3集群數據備份與恢復



ETCD3數據備份與恢復

1.備份數據

備份etcd集群任意一個節點的數據就行

export ETCD_ENDPOINTS="https://192.168.0.20:2379,https://192.168.0.21:2379,https://192.168.0.22:2379"
etcdctl --endpoints=${ETCD_ENDPOINTS} snapshot save "/home/snapshot.db"

2.恢復數據

將/home/snapshot.db拷貝到其他etcd集群節點同一目錄,之后在各個節點分別執行以下命令,--data-dir是新的數據目錄,原數據目錄是/data/apps/etcd/data/default.etcd,各個參數配置可查看原配置文件/data/apps/etcd/etc/etcd.conf
節點192.168.0.20執行

export ETCDCTL_API=3
etcdctl snapshot restore /home/snapshot.db \
--data-dir="/data/apps/etcd/data/etcd.restore" \
--name etcd-01 \
--initial-cluster "etcd-01=https://192.168.0.20:2380,etcd-02=https://192.168.0.21:2380,etcd-03=https://192.168.0.22:2380" \
--initial-cluster-token etcd-cluster \
--initial-advertise-peer-urls "https://192.168.0.20:2380"

節點192.168.0.21執行

export ETCDCTL_API=3
etcdctl snapshot restore /home/snapshot.db \
--data-dir="/data/apps/etcd/data/etcd.restore" \
--name etcd-02 \
--initial-cluster "etcd-01=https://192.168.0.20:2380,etcd-02=https://192.168.0.21:2380,etcd-03=https://192.168.0.22:2380" \
--initial-cluster-token etcd-cluster \
--initial-advertise-peer-urls "https://192.168.0.21:2380"

節點192.168.0.22執行

export ETCDCTL_API=3
etcdctl snapshot restore /home/snapshot.db \
--data-dir="/data/apps/etcd/data/etcd.restore" \
--name etcd-03 \
--initial-cluster "etcd-01=https://192.168.0.20:2380,etcd-02=https://192.168.0.21:2380,etcd-03=https://192.168.0.22:2380" \
--initial-cluster-token etcd-cluster \
--initial-advertise-peer-urls "https://192.168.0.22:2380"

 

3.停止各個節點的etcd服務

systemctl stop etcd

4.使用新的數據目錄啟動各個節點etcd

需要修改/data/apps/etcd/etc/etcd.conf配置文件中--data-dir對應的新的數據目錄為/data/apps/etcd/data/etcd.restore

#[Member]
ETCD_NAME="etcd-01"
#ETCD_DATA_DIR="/data/apps/etcd/data/default.etcd"
ETCD_DATA_DIR="/data/apps/etcd/data/etcd.restore"
ETCD_LISTEN_PEER_URLS="https://192.168.0.20:2380"
ETCD_LISTEN_CLIENT_URLS="https://127.0.0.1:2379,https://192.168.0.20:2379"
#
#[Clustering]
ETCD_INITIAL_ADVERTISE_PEER_URLS="https://192.168.0.20:2380"
ETCD_ADVERTISE_CLIENT_URLS="https://127.0.0.1:2379,https://192.168.0.20:2379"
ETCD_INITIAL_CLUSTER="etcd-01=https://192.168.0.20:2380,etcd-02=https://192.168.0.21:2380,etcd-03=https://192.168.0.22:2380"
ETCD_INITIAL_CLUSTER_TOKEN="etcd-cluster"
ETCD_INITIAL_CLUSTER_STATE="new"

#[Security]
ETCD_CERT_FILE="/data/apps/etcd/ssl/etcd.pem"
ETCD_KEY_FILE="/data/apps/etcd/ssl/etcd-key.pem"
ETCD_TRUSTED_CA_FILE="/data/apps/etcd/ssl/etcd-ca.pem"
ETCD_PEER_CERT_FILE="/data/apps/etcd/ssl/etcd.pem"
ETCD_PEER_KEY_FILE="/data/apps/etcd/ssl/etcd-key.pem"
ETCD_PEER_TRUSTED_CA_FILE="/data/apps/etcd/ssl/etcd-ca.pem"
#
[Logging]
ETCD_DEBUG="false"
ETCD_LOG_OUTPUT="default"

之后啟動etcd即可

systemctl start etcd

 


免責聲明!

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



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