본문 바로가기

Others/데이터베이스

mysql dual replication으로 mysql HA 구성하기

mysql dual replication이란 일반적인 리플리케이션과 달리 서로가 마스터이자 슬레이브로

 

서로 양쪽의 db를 리플리케이션 함으로 어느쪽에서든 데이터가 생성되면 서로 복제하며

 

한쪽 DB가 죽어도 나머지 한쪽은 정상 작동되며 죽은 DB가 다시 살아날 경우 작동이 중지되어있던 시간동안 생긴 데이터가 바로 복제된다

 

# replication 설정

 

# db 1

#my.cnf 수정

vi /etc/my.cnf

[mysqld]

log-bin=mysql-bin

server-id   = 1   

binlog_format = 'MIXED'

 

#mysql 재시작

/etc/init.d/mysqld restart

 

 

#리플리케이션에 이용할 db사용자 생성

mysql -u root -p

mysql> create user 'repli'@'서버2번 아이피 입력' identified by'비밀번호';

 

 

#mysql replication user 생성 및 master 정보 확인

mysql> grant replication slave on *.* to 'repli'@'서버2번 아이피 입력' identified by '비밀번호';

mysql> flush privileges;

mysql> show master status;

+------------------+----------+--------------+------------------+-------------------+

| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |

+------------------+----------+--------------+------------------+-------------------+

| mysql-bin.000001 |     2516 |              |                  |                   |

+------------------+----------+--------------+------------------+-------------------+

 

# server 2

# my.cnf 수정

vi /etc/my.cnf

[mysqld]

log-bin=mysql-bin

server-id   = 2      

binlog_format = 'MIXED'

 

 

# mysql 재시작

/etc/init.d/mysqld restart

 

#리플리케이션에 이용할 db사용자 생성

mysql -u root -p

mysql> create user 'repli2'@'서버1번 아이피 입력' identified by'비밀번호';

 

# mysql replication 설정, user 생성 및 master 정보 확인

mysql> stop slave;

mysql> change master to master_host='서버1번 아이피 입력', master_user='repli', master_port=3306, master_password='암호입력', master_log_file='mysql-bin.000001(위에나온 서버1 파일명)', master_log_pos=2516(위에나온 서버1 포지션번호);

mysql> start slave;

mysql> grant replication slave on *.* to 'repli2'@'서버1번 아이피 입력' identified by '암호입력';

mysql> flush privileges;

mysql> show master status;

+------------------+----------+--------------+------------------+-------------------+

| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |

+------------------+----------+--------------+------------------+-------------------+

| mysql-bin.000001 |     2365 |              |                  |                   |

+------------------+----------+--------------+------------------+-------------------+

 

# server 1

# mysql replication 설정

mysql -u root -p 

mysql> stop slave;

mysql> change master to master_host='서버2번 아이피 입력', master_user='repli2', master_port=3306, master_password='암호입력', master_log_file='mysql-bin.000001(위에나온 서버2 파일명)', master_log_pos=2365(위에나온 서버2 포지션번호);

mysql> start slave;

 

 

 

확인작업으로 한쪽에서 testdb 생성

 

다른쪽에 정상적으로 생겼는지 조회해본후

 

한쪽 mysql stop 후 나머지 한쪽에서 testdb2 생성

 

다시 mysql start후 testdb2 생기는지 확인

출처: https://puham.tistory.com/71 [리눅스 SUPERUSER]

 

mysql dual replication으로 mysql HA 구성하기

mysql dual replication이란 일반적인 리플리케이션과 달리 서로가 마스터이자 슬레이브로 서로 양쪽의 db를 리플리케이션 함으로 어느쪽에서든 데이터가 생성되면 서로 복제하며 한쪽 DB가 죽어도 나

puham.tistory.com