MySQL Dual Master 구성 (Replication) MySQL/MariaDB

Dual Master 구성은 동시에 두대의 DBMS에 UPDATE를 가능하게 사용하고
두대 중 한대에 장애가 발생했을 때 UPDATE기능을 사용할 수 있다.
단, 두대의 서버에서 거의 동시에 동일한 컬럼이 DML(Data Manipulation Language, 데이터 조작어)이 발생한다면(특히,update)결과 내용이 서로 달라지는 현상이 발생할 수 있다.
(1번서버의 update는 2번서버로 적용, 2번서버의 update는 1번으로 적용 ^-^;)

설정은 my.cnf에서 아래의 방식을 간단하게 설정이 가능하다.

[ 1번 Master 서버 ]

server-id       = 1
replicate-same-server-id = 0
auto-increment-increment = 2
auto-increment-offset = 1

master-host = 2번 Master서버 IP
master-user = replica
master-password = replica
master-connect-retry = 60
replicate-do-db = 동기화 DB Name1
binlog-do-db = 동기화 DB Name1
replicate-do-db = 동기화 DB Name2
binlog-do-db = 동기화 DB Name2
log-bin=mysql-bin

[ 2번 Master 서버 ]

server-id       = 2
replicate-same-server-id = 0
auto-increment-increment = 2
auto-increment-offset = 2

master-host = 1번 Master서버 IP
master-user = replica
master-password = replica
master-connect-retry = 60
replicate-do-db = 동기화 DB Name1
binlog-do-db = 동기화 DB Name1
replicate-do-db = 동기화 DB Name2
binlog-do-db = 동기화 DB Name2
log-bin=mysql-bin

-------------------------------------
[mysqld]
# 에러 발생시 동기화가 안되는 부분을 조치함
max_connect_errors = 100000
slave-skip-errors = 1062 #이것은 key가 겹칠 때 무시하는 방법이다.
# 아래는 slow query로 sql튜닝에 사용된다.
log-slow-queries = log-slow-queries.log
long_query_time = 10

--------------------------------------
에러사항 조치
1. 동기화 시 slave에서 동기화를 못했을때 중요하지않은 비동기화에러 넘기기
stop slave;
set global sql_slave_skip_counter=no;
start slave;


덧글

댓글 입력 영역