본문 바로가기
IT기술/Linux 계열

[Linux] MySQL 이중화 소개 및 사용

by Travelo 2023. 3. 14.
728x90
반응형

#MySQL #DB #DataBase #Replication #디비 #고가용성 #복구 #이중화 #데이터베이스이중화

 

MySQL 이중화(Dual-Primary Replication) MySQL 데이터베이스의 고가용성과 장애 대응력을 높이기 위해 사용하는 방법 중 하나이다. MySQL 이중화를 설정하는 방법에 대해서 기록해본다.

  • Master : 웹서버로부터 데이터 등록/수정/삭제 요청시 바이너리로그를 생성하여 Slave서버로 전달하게 된다.
  • Slave : Master로 부터 전달받은 바이너리로그를 데이터로 반영하게 된다.

 

사전 요구사항
  • MySQL 클라이언트
  • MySQL 서버 2대

 

MySQL 서버 설정

MySQL 서버를 설치하고 설정하는 방법은 여러 가지가 있지만, yum을 이용한 설치 및 설정 방법을 알아본다.

  • MySQL 설치

다음 명령어를 사용하여 MySQL 서버를 설치한다.

$ sudo yum install mysql-server

 

  • MySQL 설정

MySQL 설정 파일을 열고 다음과 같이 수정한다.

$ sudo vi /etc/my.cnf
[mysqld]
server-id=1
log-bin=mysql-bin
binlog-do-db=<database_name>
binlog-ignore-db=mysql

위 설정은 MySQL 서버의 ID를 1로 설정하고, 이중화를 위해 이벤트를 기록할 수 있도록 로그 바이너리 파일을 생성한다. binlog-do-db 옵션은 이벤트를 기록할 데이터베이스 이름을 설정한다.

 

  • MySQL 시작

MySQL 서버를 시작한다.

$ sudo service mysqld start

 

  • MySQL 접속

MySQL 클라이언트를 사용하여 MySQL 서버에 접속한다.

$ mysql -u <username> -p

 

 

반응형

 

MySQL 이중화 설정

이제 MySQL 서버의 이중화를 설정하는 방법에 대해서 설명하겠습니다.

  • MySQL 서버 설정

MySQL 서버의 설정 파일을 다음과 같이 수정한다.

$ sudo vi /etc/my.cnf
[mysqld]
server-id=2
log-bin=mysql-bin
binlog-do-db=<database_name>
binlog-ignore-db=mysql

위 설정은 MySQL 서버의 ID를 1로 설정하고, 이중화를 위해 이벤트를 기록할 수 있도록 로그 바이너리 파일을 생성합니다. binlog-do-db 옵션은 이벤트를 기록할 데이터베이스 이름을 설정합니다.

 

  • MySQL 이중화 설정

MySQL 클라이언트를 사용하여 MySQL 서버에 접속하고 다음과 같이 명령어를 실행한다.

mysql> STOP SLAVE;
mysql> CHANGE MASTER TO MASTER_HOST='<master_ip>', MASTER_USER='<replication_user>', MASTER_PASSWORD='<replication_password>', MASTER_AUTO_POSITION=1;
mysql> START SLAVE;

위 명령어는 먼저 이전에 설정된 슬레이브를 정지한다. 그리고 마스터 MySQL 서버의 IP 주소, 복제용 사용자 이름, 비밀번호 등을 설정한다. 마지막으로 슬레이브를 시작한다.
이제 두 대의 MySQL 서버는 이중화가 설정되어 데이터베이스에 대한 작업이 양쪽 서버에 동일하게 수행한다.

 

 

728x90
반응형

댓글