본문 바로가기

System engineer

CentOS7 Mysql MHA 구성(active-active)



Centos7


구성을 위해 물리 서버 2대를 준비합니다.

hostname : HA1(192.168.0.7)

hostname : HA2(192.168.0.9)



mysql을 사용할 것이기 때문에 기존 mariadb 관련 패키지는 모두 삭제해주시고, mysql 재설치 진행합니다.

#rpm -qa | grep maria

#yum remove maria  ( maria 관련 패키지 삭제 )

#yum -y install http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm      

#yum -y install mysql-community-server

#service mysql start

 

mysql root 패스워드를 변경해줍니다.

#mysql -u root -p

> use mysql;

> update user set Password=password('패스워드') where user='root';

> flush privileges;

> exit


#vi /etc/my.cnf

 

HA1

[mysqld] 아래에 내용 추가

server-id=1

log-bin=mysql-bin

log-slave-updates 

 

HA2

[mysqld] 아래에 내용 추가

server-id=2

log-bin=mysql-bin

log-slave-updates 추가


위 설정을 추가 하고 mysql을 재시작 해줍니다. 

#service mysqld restart

 

replication 구성을 위해 binary logfile과 position을 확인해줍니다.

마스터1,2 바이너리 로그파일과 포지션 확인

mysql> show master status;

MASTER_LOG_FILE='mysql-bin.000001',

MASTER_LOG_POS=441;


두 정보 값은 기억해두어야 합니다.

 

 

replication을 위한 계정을 생성하고 권한 설정을 해줍니다.

HA1

create user 'repl_user'@'192.168.0.9' identified by 'flvmfflzpdltus1!';

grant replication slave on *.* to 'repl_user'@'192.168.0.9' ;

flush privileges;

HA2

create user 'repl_user'@'192.168.0.7' identified by 'flvmfflzpdltus1!';

grant replication slave on *.* to 'repl_user'@'192.168.0.7' ;

flush privileges;

 

replication을 위해 아래 정보 값을 복사해서 붙여 넣어 줍니다.

log-file과 log-pos 값은 위에서 확인한 값으로 수정해야 합니다.

 

HA1

mysql>

CHANGE MASTER TO

MASTER_HOST='192.168.0.9',

MASTER_USER='repl_user',

MASTER_PASSWORD='flvmfflzpdltus1!',

MASTER_PORT=3306,

MASTER_LOG_FILE='mysql-bin.000009',

MASTER_LOG_POS=2702;

 

HA2

mysql>

CHANGE MASTER TO

MASTER_HOST='192.168.0.7',

MASTER_USER='repl_user',

MASTER_PASSWORD='gndlwm!@34',

MASTER_PORT=3306,

MASTER_LOG_FILE='mysql-bin.000018',

MASTER_LOG_POS=120;

 

위 정보를 입력 한 후에 start slave 명령어를 실행해줍니다.


HA1, HA2

mysql>start slave;

 

리플리케이션이 정상적으로 작동하는 지 확인하여 줍니다.

mysql>show slave status\G

표시 되는 정보 중 아래 두 개의 정보가 yes, yes로 되어 있으면 정상적으로 replication이 완료된 것입니다.


Read_MasterLog_Pos : 3440

Exec_Master_Log_Pos : 3440

위 두 개의 postion 값이 동일하면 정상인 것입니다.


지금까지 MHA (active-active) 구성 방법이었습니다.