DB

[MariaDB (2/5)] MariaDB 이중화 실습(Master - Slave)

제익 2025. 2. 9. 16:05
반응형

이중화 프로세스

  1. Master 서버가 데이터 변경에 대한 event 발생 내역을 binary log에 기록
  2. Master 서버가 binary log를 Slave에게 전달
  3. Slave는 이 binary log 를 읽어 본인 DB에 반영

binary log 란?

  • mysql(mariadb)에서 발생하는 모든 내역들이 기록되는 파일
  • default는 비활성화 상태이기 때문에, 이중화를 하기 위해 이를 활성화시키는 작업이 선행되어야 함

 

Master - Slave로 이중화 구축하기 위해선 각각의 서버 설정을 따로 수행필요

 

1. 이중화 시킬 2대의 Maria DB 구축

- maria1를 Master로, maria2를 Slave로 구축할 예정

 

2. Master 서버 설정

    2-1. Master 서버 접속

   

   2-2. vi 편집기로 config 파일 열기

        * 파일 위 치 : /etc/mysql/my.cnf

 

   2-3. 설정 내용 입력

log-bin = mysql-bin      // log-bin : binary log 파일 명
server-id = 1                // server-id : 서버의 고유 id값 (slave와 다른 값 입력)
binlog_format = row    // binlog_format : 로그 포맷 설정
                                    // STATEMENT(기본 값) 
                                    // ROW : 변경된 데이터 자체를 기록 
                                    // MIXED : 자동으로 STATEMENT 혹은 ROW 선택 
expire_logs_days = 2 // expire_logs_days : 로그 보관 기간

 

   2-4. 서버 재부팅 후 Slave 에서 접속할 계정 생성 (Dbeaver)

grant replication slave on to 'slave_db'@'%' identified by '12345678';

 

   2-5. binary log 생성 확인 (Dbeaver)

show master status;

  • File 명과 Position 번호는 Slave 연결 과정에서 필요

3. Slave 서버 설정

   3-1. Master 서버 접속

 

   3-2. vi 편집기로 config 파일 열기

        * 파일 위 치 : /etc/mysql/my.cnf

 

   3-3. 설정 내용 입력

log-bin = mysql-bin      // log-bin : binary log 파일 명
server-id = 2                // server-id : 서버의 고유 id값 (Master와 다른 값 입력)
binlog_format = row    // binlog_format : 로그 포맷 설정
                                    // STATEMENT(기본 값) 
                                    // ROW : 변경된 데이터 자체를 기록 
                                    // MIXED : 자동으로 STATEMENT 혹은 ROW 선택 
expire_logs_days = 2 // expire_logs_days : 로그 보관 기간

 

   3-4. 서버 재부팅 후 Master와 연동설정 (Dbeaver)

CHANGE MASTER TO
MASTER_HOST='[IP 주소]',                         -- Master 서버 IP
MASTER_USER='slave_db',                        -- Master 서버에서 생성한 계정
MASTER_PASSWORD='12345678',            -- Master 서버 생성 계정 암호
MASTER_PORT=[포트번호],                        -- Master 서버 Maria DB 포트
MASTER_LOG_FILE='mysql-bin.000001',   -- Master 서버 binary-log 파일명
MASTER_LOG_POS= 2171;                        -- Master 서버 position 값

 

   3-5. slave 실행 후 연동 상태 확인 (Dbeaver)

start slave; -- slave 실행 명령어
stop slave; -- slave 중지 명령어
show slave status; -- 상태 확인 명령어

  • - Waiting for master to send event 값이 나오면 연동 성공
반응형