1. MariaDB 설치
sudo apt-get install software-properties-common
sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xF1656F24C74CD1D8
sudo add-apt-repository 'deb [arch=amd64,i386,ppc64el] http://ftp.kaist.ac.kr/mariadb/repo/10.2/ubuntu xenial main'
sudo apt update
sudo apt -y install mariadb-server
Bash
2. my.cnf 사전 세팅
3. percona-xtrabackup 2.4 설치
wget https://repo.percona.com/apt/percona-release_0.1-4.$(lsb_release -sc)_all.deb
sudo dpkg -i percona-release_0.1-4.$(lsb_release -sc)_all.deb
sudo apt-get update
sudo apt-get install percona-xtrabackup-24
Bash
4. qpress 설치 (innobackupex –decompress에 사용됨)
# slave 서버에서
cd /tmp
wget http://www.quicklz.com/qpress-11-linux-x64.tar
tar xvf qpress-11-linux-x64.tar
chmod 755 qpress
chown root:root qpress
mv qpress /usr/bin/qpress
Bash
4. MariaDB Stop & 초기화
•
innobackupex 실행을 위해 mysql 서비스 정지
# slave 서버에서
service mysql stop
Bash
•
/storage/mysql 비우기
# slave 서버에서
rm -rf /storage/mysql
mkdir /storage/mysql
cd /storage/mysql
Bash
5. innobackupex로 복제
•
slave 역할을 할 곳 (ip: 192.168.0.A)
cd /storage/mysql
nc -l -p 1234 | xbstream -x
Bash
•
master역할을 할 곳
sudo innobackupex --defaults-file=/etc/mysql/my.cnf --no-lock --compress --compress-threads=8 --password=$DB_PASSWORD --stream=xbstream /storage/mysql/ | nc $slave_ip 1234
# 주의사항
$DB_USER, $DB_PASSWORD는 master서버의 /etc/mysql/debian.cnf 파일내의 user, password 값
Bash
6. 압축해제
# slave 서버에서
innobackupex --decompress --parallel=4 /storage/mysql/
innobackupex --apply-log --parallel=4 --ibbackup=xtrabackup_56 /storage/mysql/
chown -R mysql:mysql /storage/mysql/
Bash
7. Replication 적용
#slave 서버에서
echo "SET GLOBAL gtid_slave_pos = {GTID};" | mysql -uroot -p$DB_PASSWORD
echo "CHANGE MASTER TO master_host="$MASTER_HOST", master_user="replicator",master_password="$DB_PASSWORD", master_use_gtid=slave_pos" | mysql -uroot -p$DB_PASSWORD
echo "START SLAVE" | mysql -uroot -p$DB_PASSWORD
sleep 2
echo "SHOW SLAVE STATUS" | mysql -uroot -p$DB_PASSWORD
# 주의사항
$DB_USER, $DB_PASSWORD는 master서버의 /etc/mysql/debian.cnf 파일내의 user, password 값
Bash
8. 압축파일 삭제
•
XtraBackup 2.2.10부터 qp 파일을 자동으로 삭제하지 않아 수동으로 삭제 필요. 아래 명령 실행하여 삭제.
sudo find /storage/mysql -type f -name "*.qp" -exec rm -rf {} \;
Bash