Debian 10에서 MySQL(MariaDB) 마스터 복제를 구성하는 방법

Debian 10에서 MySQL(MariaDB) 마스터 복제를 구성하는 방법

2022-05-17 last update

7 minutes reading mysql mariadb debian
MySQL 복제는 한 데이터베이스 서버(주 서버)에서 한 개 이상의 서버(서버로)로 데이터를 복제하는 과정이다.MySQL은 여러 종류의 복제 토폴로지를 지원하는데 그 중에서 주/종 토폴로지는 가장 유명한 토폴로지 중 하나로 그 중 한 대의 데이터베이스 서버는 주 서버를 충당하고 한 대 또는 여러 대의 서버는 종 서버를 충당한다.기본적으로 복제는 비동기적이다. 그 중에서 주 서버는 데이터베이스 수정을 설명하는 이벤트를 바이너리 로그에 보내고 서버에서 준비가 다 되었을 때 이 이벤트를 요청한다.이 설명서에서는 Debian 10에서 마스터 서버와 슬레이브 서버에서 MariaDB 마스터/슬레이브 복제를 설정하는 방법을 보여 줍니다.MariaDB는 Debian에서 MySQL의 기본 구현입니다.동일한 절차는 Oracle MySQL에도 적용됩니다.이러한 유형의 복제 토폴로지는 확장된 읽기 복사본을 읽고 재난 복구를 위한 실시간 데이터베이스 백업을 배치하고 분석 작업에 사용하기에 가장 적합하다.

선결 조건

Debian 10을 실행하는 두 대의 서버가 전용 네트워크를 통해 서로 통신한다고 가정합니다.호스트 공급자가 개인 IP 주소를 지원하지 않을 경우 공용 IP 주소를 사용하고 신뢰할 수 있는 3306 포트 트래픽만 허용하도록 방화벽을 구성할 수 있습니다.이 예에서 사용된 서버는 다음과 같은 IP 주소를 가집니다.
Master IP: 10.10.8.12
Slave IP:  10.10.8.164

MariaDB 설치

기본 Debian 10 저장소에는 MariaDB 버전 10.3이 포함되어 있습니다.동일MariaDB version
두 서버에서 잠재적인 문제를 피하십시오.Install MariaDB
주 서버와 슬레이브 서버에서 다음 명령을 실행합니다.
sudo apt-get updatesudo apt-get install mariadb-server

주 서버 구성

첫 번째 단계는 주 서버를 설정하는 것입니다.
  • 설정MariaDB server to listen on the private IP
  • 고유한 서버 ID를 설정합니다.
  • 바이너리 로깅을 사용합니다.
  • MariaDB 프로필을 열고 다음 줄을 취소하거나 설정합니다.
    sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf
    master:/etc/mysql/MariaDB.conf.d/50-server.cnf
    bind-address           = 10.10.8.12
    server-id              = 1
    log_bin                = /var/log/mysql/mysql-bin.log
    
    가 완료되면 파일을 저장하고 MySQL 서비스를 다시 시작하여 변경 사항을 적용합니다.
    sudo systemctl restart mariadb
    다음 단계는 새로운 복제 사용자를 만드는 것입니다.MariaDB 서버에 루트 사용자로 로그인:
    sudo mysql
    다음 SQL 조회를 실행하여 replica라는 사용자를 만들고 REPLICATION SLAVE 권한을 부여합니다.
    CREATE USER 'replica'@'10.10.8.164' IDENTIFIED BY 'replica_password';
    GRANT REPLICATION SLAVE ON *.* TO 'replica'@'10.10.8.164';
    종속 IP 주소로 IP를 변경해야 합니다.필요에 따라 사용자 이름을 지정할 수 있습니다.MySQL 프롬프트에서 다음 명령을 실행하여 바이너리 파일 이름과 위치를 인쇄합니다.파일 이름 "mysql bin"을 주의하십시오.위치'320000'1'.이러한 값은 보조 서버를 구성할 때 필수적이며 서버에서는 다를 수 있습니다.

    보조 서버 구성

    MySQL 서버를 전용 IP 스누핑으로 설정하여 마스터 서버와 동일한 변경 사항을 보조 서버에서 수행합니다.
  • 고유한 서버 ID를 설정합니다.
  • 바이너리 로깅을 사용합니다.
  • MariaDB 프로필을 열고 다음 줄을 편집합니다.
    SHOW MASTER STATUS\G
    slave:/etc/mysql/MariaDB.conf.d/50-server.cnf
    *************************** 1. row ***************************
                File: mysql-bin.000001
            Position: 328
        Binlog_Do_DB: 
    Binlog_Ignore_DB: 
    1 row in set (0.001 sec)
    
    MariaDB 서비스를 다시 시작합니다.
    sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf
    다음 단계는 보조 서버가 주 서버에 연결하는 데 사용할 파라미터를 설정하는 것입니다.MariaDB 셸에 로그인: (adsbyGoogle=window.adsbyGoogle |||[]).추진({});
    bind-address           = 10.10.8.164
    server-id              = 2
    log_bin                = /var/log/mysql/mysql-bin.log
    
    먼저 슬레이트를 중지합니다.
    sudo systemctl restart mariadb
    다음 쿼리를 실행하여 마스터/슬레이브 복제를 구성합니다.
    sudo mysql
    올바른 IP 주소, 사용자 이름 및 암호를 사용해야 합니다.로그 파일 이름과 위치는 주 서버에서 얻은 값과 같아야 합니다.완성되면 종속 라인을 시작합니다.
    STOP SLAVE;

    구성 테스트

    이 때 작업의 주/종 복제 설정이 있어야 합니다.모든 설정이 올바른지 확인하려면 주 서버에 새 데이터베이스를 만드십시오:
    CHANGE MASTER TOMASTER_HOST='10.10.8.12',MASTER_USER='replica',MASTER_PASSWORD='replica_password',MASTER_LOG_FILE='mysql-bin.000001',MASTER_LOG_POS=328;
    START SLAVE;
    MySQL 셸에 로그인:
    sudo mysql
    다음 명령을 실행하십시오 list all databases
    :
    CREATE DATABASE replicatest;
    마스터 서버에 생성된 데이터베이스가 서버에서 복사됨을 알 수 있습니다.
    sudo mysql

    결론

    이 자습서에서는 Debian 10에 MariaDB 마스터/슬레이트 복사를 만드는 방법을 보여 줍니다.질문이 있으시면 언제든지 의견을 달아 주십시오.