mysql 또는 mariadb의 db replication 에 대해서 살펴보려한다. 서비스가 커지면서 db traffic에 대한 이슈, 또는 데이터 장애에 대한 대비책으로 replication 가 갖는 이점들이 분명 존재한다. 하지만 db replication 를 한다고 해서 무조건 좋은것은 아니며 그만큼 관리가 힘든 부분도 존재하는것 같다. 이전에 설치한 setup mariadb 롤 통해 replication 를 진행해보려한다.
config
replication 를 하기위해 2대의 db로 테스트를 진행하며, 필자는 양방향 replication으로 서로가 master 와 slave가 되는 방법으로 진행하려한다. 먼저 db의 고유 server-id를 부여해야하며 db1에서 다음과 같이 설정하였다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
# db1 shell
$ vi /etc/my.cnf
...
[mysqld]
## replication config
log-bin=binlog
relay-log=relaylog
log-slave_updates # master에서 받아온 변경사항을 자신의 log에 기록
server-id=1 # 각 db는 반드시 고유한 server-id를 가져야한다.
## replication config
...
$ service maridb restart
db2에서도 다음과 같이 진행하며 server-id 값만 다를뿐 다른 설정은 동일하다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
# db2 shell
$ vi /etc/my.cnf
...
[mysqld]
## replication config
log-bin=binlog
relay-log=relaylog
log-slave_updates # master에서 받아온 변경사항을 자신의 log에 기록