[Linux] Mariadb Replication

전우석·2022년 5월 25일
0
post-thumbnail

Replication

서비스 제공 중 발생할 수 있는 장애를 대비하기 위해 사용한다. Master 와 Slave로 나눠서 구성하게 된다.

테스트 환경

CentOS7
Master ip 10.0.2.10, Slave ip 10.0.2.20
hostname Master, Slave

두 개의 VM 사용하여 Master는 읽기, 쓰기가 가능하고 Slave는 읽기작업만 가능하게 설정할 것이다.

Master 설정

my.cnf 설정

vi /etc/my.cnf

mysqlid 부분에 작성해주면 된다.

서비스 재시작

systemctl restart mariadb.service

사용자 계정 생성 및 권한 부여

mariadb 접속 후 계정생성

mysql -u 계정 -p

GRANT replication slave ON . TO replica@'%' identified by '1234';

GRNAT 권한 ON 데이터베이스.테이블 TO 사용자@'호스트' 사용자 비밀번호 설정

flush privileges;

변경사항 저장

데이터 잠금

flush tables with read lock;

데이터 잠금 후 백업 진행 (File, Position 확인)

데이터 백업

mysqldump -u root -p --all-databases --lock-all-tables --events > mysql_dump.sql

mysql_dump.sql 백업파일 생성

데이터 잠금 해제

unlock tables;

백업파일 전송

scp mysql_dump.sql root@ip:/폴더위치

Slave 설정

my.cnf 설정

vi /etc/my.cnf

mysqlid 부분에 작성해주면 된다.

서비스 재시작

systemctl restart mariadb.service

전송받은 파일 복원 및 mariadb 접속

mysql -u root -p </백업파일
mysql -u root -p

마스터 지정 및 설정

change master to master_host='마스터 주소', master_user='마스터 계정', master_password='마스터 비밀번호', master_log_file='master 데이터 잠금시 나온 파일', master_log_pos=데이터 잠금시 position 번호;

확인

show slave status \G

0개의 댓글