개발자의 끄적끄적

[mysql] 이중화 구성 (Replication / 리눅스 + 윈도우) [펌] 본문

개발/sql

[mysql] 이중화 구성 (Replication / 리눅스 + 윈도우) [펌]

효벨 2020. 8. 21. 03:00
728x90
반응형

[mysql] 이중화 구성 (Replication / 리눅스 + 윈도우) [펌]

 

 

최근에 프로젝트를 진행하던중

 

디비 백업과 관련하여 자료를 찾던중

 

참고할만한 내용이라 퍼왔습니다!

 

출처는 맨 아래 명시했습니다!

 

 

리눅스 서버와 윈도우 서버에 mysql 을 설치 했으니, 이중화를 구성하려고 한다.

MS-SQL 이중화와는 방식이 다르긴 하지만 뭐, 그냥 저냥 해보면 될 것 같다. 

 

1.  Master 와 Slave 할당

 

검색을 통해서 알아보니깐 DB 버전이 완전히 같을 필요는 없지만, Slave 가 버전이 높아야 한다고 한다. 

 

그래서 Master 는 리눅스 mysql 5.1 을, Slave 는 윈도우 mysql 5.6 으로 정했다. 

 

M : Linux / mysql 5.1 / 192.168.1.10

S : Window / mysql 5.6 / 192.168.1.20

 

 

 

2.  M 의 my.cnf 설정 추가

 

[mysqld] 하단에 아래의 구문 추가

 

log-bin=mysql-bin

server-id = 1

 

mysqld 서비스 재시작

 

# service mysqld restart

 

 

 

3.  M 의 mysql 에 S 에서 접속할 사용자 계정 생성

 

mysql> use mysql;

mysql> grant replication slave on *.* to 'repluser'@'192.168.1.20' identified by 'password';

 

 

 

4.  S 의 my.ini 설정 추가

 

[mysqld] 하단에 아래의 구문 추가

 

log-bin=mysql-bin

server-id = 2

 

윈도우 서비스에서 mysql 재시작

 

 

 

5.  S 에서 M 에 접속하는 정보 등록

 

my.ini 에 아래와 같이 구문을 추가 하고, 서비스 재시작 했더니 구동 실패가 발생했다.

 

[mysqld] 

master-host=192.168.1.10

master-user=repluser

master-password=password

master-port=3306

 

mysql 에서 직접 M 의 접속 정보 입력을 진행 했다. 

 

mysql> CHANGE MASTER TO MASTER_HOST='192.168.1.10',MASTER_USER='repluser',MASTER_PASSWORD='password', MASTER_PORT=3306, MASTER_CONNECT_RETRY=30;

mysql > start slave;

 

하고 나면, my.ini 에 해당 설정이 추가 되는게 아니라  C:\ProgramData\MySQL\MySQL Server 5.5\data\master.info 파일이 생성되어 저장 된다. 

 

윈도우 환경이라서 다른 것일 수도 있다. (리눅스 끼리 연동 후 확인 필요)

 

 

 

6.  M 의 mysql 에서 replication 작동 상태 확인

 

mysql> show master status;

 

 

 

7.  S 의 mysql 에서 replication 작동 상태 확인

 

mysql> show slave status;

 

 

 

8.  M 의 mysql 에 접속하여 테이블 생성 및 데이타 입력

 

mysql> use test;

mysql> create table gunnm ( no int(5), date int(10), text char(50), primary key(no) );

mysql> insert into gunnm values ('1', '20180321', 'replication test success, gunnm.tistory.com');

mysql> select * from gunnm;

 

 

 

9.  S 의 mysql 에 접속하여 gunnm 테이블 조회

 

mysql> use test;

mysql> select * from gunnm;

 

 

 

10.  결과

MS-SQL 의 미러링을 구성하는 Slave 서버에서는 대부분의 기능이 제한적인데 반해, mysql 에서는 slave 이지만 데이타값 조회가 가능한 것을 확인했다. 

그래서 slave 에서 데이타를 입력하면 master 에도 반영이 되는가를 테스트 해보았는데, 결과는 

 

master 의 테이블에는 slave 에서 입력한 데이타값 저장이 되지 않았다. 

 

 

결과적으로 Master 로 부터 데이타를 가져와서 저장을 하지만, 양방향 동기화가 되는 것은 아니다. 

즉, Master 에서 Slave 로의 데이타 백업만 진행되는 것을 확인 했다. 

구성 방식을 바꾸면 가능한지를 확인해 봐야겠다. 

 

OS 가 상이하여도 (리눅스 + 윈도우), mysql 을 DBMS 로 사용 한다면 이중화 구성이 가능함을 확인했다.



출처: https://gunnm.tistory.com/146 [독까의 이야기]

반응형
Comments