본문 바로가기
데이타베이스

DB 이중화(MariaDB Replication)

by minimax95 2020. 4. 25.

MariaDB를 Master서버와  Slave서버 구조로 이중화하기 위한 방법입니다.

 

OS : Windows 10

Master - Slave에서 DB 설치버전이 같거나 Slave가 더 높은 버전이면 가능합니다.

my.ini 설정 변경 후에는 반드시 서비스 재시작을 통해 변경된 설정 내용을 반영하도록 합니다.

my.ini 파일 위치는 설치시 개인 설정에 따라 달라질 수 있지만 보통 아래의 경로를 참조하세요.

C:\program files\mariaDB 10.0\data

DB 이중화 작업에 대한 정리 내용은 아래와 같습니다.

 

[Master]

1. Master my.ini 수정

[mysqld] 하위에 아래 구문 추가

Server-id=1

log-bin=mysql-bin

=> log-bin은 Slave에서 Master와 연결할 file 참조명이 됩니다.

2. Slave 계정 추가

cmd 창에서 MariaDB 10.0\bin\ 으로 이동

mysql -u root -p 입력

passwort 입력 후 MariaDB[]> 프롬프트에서 아래의 명령을 입력

grant replication slave on *.* to ‘사용자ID’@'%' identified by ‘password’;

=> 사용자와 password는 Master에 접속할 계정임

=> 쿼리 Okey 출력 확인

3. mysql 서비스 재시작

=> 윈도 키+R을 눌러 실행창에 services.msc를 입력하고 엔터를 치면 서비스 관리 화면이 나옵니다.

 

4. cmd 창에서 mysql 로그인

show master status;

=>mysql-bin.00000x 파일의 position 등 정보를 확인할 수 있습니다.

[Slave]

1. Slave my.ini 수정

[mysqld] 하위에 아래 구문 추가

Server-id=2

log-bin=mysql-bin

2. mysql 서비스 재시작

3. Slave 설정

DB에 데이타베이스 테이블을 생성해 줌(또는 Master의 덤프를 떠서 복사해도 무방)

cmd 창에서 mysql 로그인

show slave status;

=> 정상 연동을 확인할 수 있습니다.

Change 명령=>

change master to

master_host=’192.168.0.31’,

mastet_user=’사용자ID’,

master_password=’password’,

master_log_file=’mysql-bin.000002’,

master_connect_retry=10;

 

=> 위의 mysql-bin.000002는 Master에서 show master status; 입력 시 확인한 logfile의 Position위치 정보입니다.

 

4. 미러링 시작

start slave;

5. 미러링 정지

stop slave;

 

미러링이 시작되면 Master에 저장되는 모든 DB 저장 항목이 Slave에서도 동일하게 저장됩니다.

개발자가 직접 미러링을 위한 ​기능을 구현할 필요가 없지요.

 

참고사항

mysql 서비스 재시작 시 1067 오류가 발생할 수 있습니다.

이러한 경우의 원인은 보통 아래와 같습니다.

=> my.ini 설정이 잘못되었을 경우 발생할 수 있습니다.

=> Character-set 설정 오류 시에도 발생(character-set-server=utf8)할 수 있습니다.

=> 설정이 맞는지 확인 후 재시작 시 정상 시작됩니다.

'데이타베이스' 카테고리의 다른 글

MySQL Workbench 사용법  (2) 2020.05.15
R 프로그래밍[1]  (0) 2020.05.11
R 프로그래밍[0]  (0) 2020.05.09
데이터베이스 연동(C#)  (2) 2020.05.06
빅 데이터 개요 및 처리 기술 소개  (0) 2020.04.29

댓글