리눅스

MySQL 슬레이브 서버에서 다른 슬레이브로 리플리케이션을 설정하는 방법

코드버스 2023. 5. 30. 23:29
728x90
반응형

MySQL(에서 마스터-슬레이브(Master-Slave) 리플리케이션을 설정하고) 슬레이브 서버에서 다른 슬레이브로 리플리케이션을 설정하는 방법

MySQL에서 마스터-슬레이브(Master-Slave) 리플리케이션을 설정하여 슬레이브 서버에서 다른 슬레이브로 리플리케이션을 수행하는 방법을 자세히 설명해드리겠습니다.

1. 마스터-슬레이브(Master-Slave) 리플리케이션 설정

먼저, 마스터-슬레이브 리플리케이션을 설정해야 합니다. 이 단계에서는 마스터 서버와 슬레이브 서버 간의 리플리케이션을 설정합니다. 다음은 설정 절차입니다.

 

  • 마스터 서버 설정

마스터 서버의 MySQL 설정 파일(my.cnf 또는 my.ini)을 열고, 다음 옵션을 추가합니다.

[mysqld]
server-id = <unique_id>
log-bin = mysql-bin
binlog-format = ROW

<unique_id>는 각 서버마다 고유한 값으로 설정해야 합니다.

MySQL 서비스를 재시작하여 설정을 적용합니다.

 

  • 슬레이브 서버 설정

슬레이브 서버의 MySQL 설정 파일을 열고, 다음 옵션을 추가합니다.

[mysqld]
server-id = <unique_id>

마스터 서버와는 다른 고유한 <unique_id> 값을 설정해야 합니다.

MySQL 서비스를 재시작하여 설정을 적용합니다.

 

  • 마스터 서버에서 슬레이브에 대한 계정 생성

마스터 서버에 슬레이브 서버가 사용할 리플리케이션 계정을 생성합니다. 예를 들어, replication_user라는 사용자를 생성하고 필요한 권한을 부여합니다.

2. 슬레이브 서버에서 슬레이브로 리플리케이션 설정

이제 슬레이브 서버에서 다른 슬레이브로 리플리케이션을 설정해야 합니다. 다음은 설정 절차입니다.

  • 슬레이브 서버에서 다른 슬레이브로 복제할 서버에 접속합니다.
  • CHANGE MASTER TO 문을 사용하여 슬레이브 서버의 리플리케이션 설정을 변경합니다. 다음과 같은 정보를 설정해야 합니다.
    • MASTER_HOST: 이전 슬레이브 서버의 호스트명 또는 IP 주소
    • MASTER_PORT: 이전 슬레이브 서버의 포트 번호 (기본값은 3306)
    • MASTER_USER: 이전 슬레이브 서버에서 사용한 리플리케이션 계정
    • MASTER_PASSWORD: 이전 슬레이브 서버에서 사용한 리플리케이션 계정의 비밀번호
    • MASTER_LOG_FILE 및 MASTER_LOG_POS: 이전 슬레이브 서버의 마지막 복제 위치 정보
CHANGE MASTER TO
  MASTER_HOST='<master_host>',
  MASTER_PORT=<master_port>,
  MASTER_USER='<master_user>',
  MASTER_PASSWORD='<master_password>',
  MASTER_LOG_FILE='<master_log_file>',
  MASTER_LOG_POS=<master_log_pos>;
  • START SLAVE 문을 실행하여 슬레이브 서버를 시작합니다.
START SLAVE;

3. 리플리케이션 설정 확인

슬레이브 서버에서 SHOW SLAVE STATUS\G 명령어를 실행하여 리플리케이션 상태를 확인할 수 있습니다. Slave_IO_RunningSlave_SQL_RunningYes로 표시되는지 확인하고, Seconds_Behind_Master 값이 지연 시간을 나타내지 않는지 확인합니다. 이를 통해 리플리케이션이 정상적으로 동작하는지 확인할 수 있습니다.

4. 이전 슬레이브 설정 확인

먼저, 이전 슬레이브 서버의 리플리케이션 설정을 확인해야 합니다. 이전 슬레이브 서버의 SHOW SLAVE STATUS\G 명령어를 실행하여 MASTER_LOG_FILEMASTER_LOG_POS 값을 확인합니다. 이 값들은 새로운 슬레이브 서버가 복제를 시작할 위치를 나타냅니다.

5. 새로운 슬레이브 서버 설정

이제 새로운 슬레이브 서버에서 리플리케이션을 설정합니다. 다음은 설정 절차입니다.

  • MySQL 서버에 접속하여 새로운 슬레이브 서버로 설정할 서버로 연결합니다.
  • CHANGE MASTER TO 문을 사용하여 새로운 슬레이브 서버의 리플리케이션 설정을 변경합니다. 이전 슬레이브 서버의 MASTER_LOG_FILEMASTER_LOG_POS 값을 설정해야 합니다.
CHANGE MASTER TO
  MASTER_HOST='<previous_slave_host>',
  MASTER_PORT=<previous_slave_port>,
  MASTER_USER='<previous_slave_user>',
  MASTER_PASSWORD='<previous_slave_password>',
  MASTER_LOG_FILE='<previous_master_log_file>',
  MASTER_LOG_POS=<previous_master_log_pos>;

<previous_slave_host>, <previous_slave_port>, <previous_slave_user>, <previous_slave_password>, <previous_master_log_file>, <previous_master_log_pos>는 이전 슬레이브 서버의 설정 값에 대응해야 합니다.

  • START SLAVE 문을 실행하여 새로운 슬레이브 서버를 시작합니다.
START SLAVE;

6. 리플리케이션 설정 확인

새로운 슬레이브 서버에서 SHOW SLAVE STATUS\G 명령어를 실행하여 리플리케이션 상태를 확인합니다. Slave_IO_RunningSlave_SQL_RunningYes로 표시되는지 확인하고, Seconds_Behind_Master 값이 지연 시간을 나타내지 않는지 확인합니다. 이를 통해 리플리케이션이 정상적으로 동작하는지 확인할 수 있습니다.

 

위의 절차를 따라 새로운 슬레이브 서버에서 다른 슬레이브로 리플리케이션을 설정할 수 있습니다. 이때 이전 슬레이브 서버와의 연결이 안정적이고 보안 설정이 적절하도록 주의해야 합니다.

728x90
반응형