Mariabackup Galera4 Cluster Joiner node 추가

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/

답글 남기기