donor, joiner node version : mariabackup-10.5.8, mariadb-10.5.8
Donor Node
#mariabackup 준비
mkdir /data/tmp
#SST user = root 일 경우 아래와 같이 설정(SST user가 별도로 존재할 경우 sst user id/password를 넣어준다.
mariabackup –backup –galera-info –target-dir=/data/tmp –user=root –password=ROOTPW
#Joiner node 준비
systemctl stop mariadb
mkdir /mariabackup
# Rsync backup data from Donor to Joiner(rsync 추가 설정 필요)
rsync -avP -e ssh [email protected]_IP:/data/tmp/ /mariabackup/
# joiner node backup 준비
mariabackup –prepare –target-dir=/mariabackup
# donor node 에서의 Galera Cluster version ID 가져오기(grastate.dat 파일)
cat /var/lib/mysql/grastate.dat|grep version
–> donor node에서 실행
일반적으로 version “2.1”
# node cluster state from file xtrabackup_galera_info
(rsync로 가져온 joiner node의 백업 dir에서 실행)
cat /mariabackup/xtrabackup_galera_info
–> 아래와 같이 정보가 나옴
8dd68972-223c-11eb-a5ad-5e22cc6bbb8b:137554
wsrep_local_state_uuid:wsrep_last_committed
# joiner node의 grastate.dat 파일 생성
tee /mariabackup/grastate.dat << EOF
# GALERA saved state version: 2.1 uuid: 8dd68972-223c-11eb-a5ad-5e22cc6bbb8b: seqno: 137554 safe_to_bootstrap: 0 EOF 앞선 xtrabackup_galera_info에서 확인한 wsrep_local_state_uuid 값을 uuid에 넣고 wsrep_last_committed 값을 seqno 에 넣는다. # 준비는 다 됐으니, Joiner Node의 mysql data dir 내의 모든 파일을 제거한다. rm -rf /var/lib/mysql/* # Hidden dir 이 혹시나 있으면 다 제거한다. mariabackup --copy-back --target-dir=/var/lib/mysql #완료후 permission 변경 chown mysql.mysql -R /var/lib/mysql systemctl start mariadb tail -f /var/log/mysql/error.log 참조 : https://mariadb.com/kb/en/manual-sst-of-galera-cluster-node-with-mariabackup/