개발자의 끄적끄적

[sql] MySQL Replication(미러링) [펌] 본문

개발/sql

[sql] MySQL Replication(미러링) [펌]

효벨 2020. 8. 22. 01:00
728x90
반응형

[sql] MySQL Replication(미러링) [펌]

 

 - 필요성 - 

서버 운영중에 발생하는 예기치 못한 서비스 중단에 대해 최신 자료의 복구를 위해

 

- REPLICATION 란? - 

Master DB를 복제하는 Slave DB를 만들어 데이터 백업, 복구, 부하 분산 등에 이용하는 것 

 

- Mysql Replication 의 특징 - 

1. 마스터-> 슬레이브로의 일방향 복제기능. 

2. 바이너리 로그(binlog)를 이용한 미러링. 

3. 쿼리에 의한 부하 분산. 

4. 다수의 슬레이브 서버를 이용한 부하 분산. 

 

- REPLICATION 설정 방법 - 

1. Master DB와 Slave DB에 Mysql 을 설치 

2. Master DB와 Slave DB의 Mysql 의 데이터를 일치시킴. (mysqldump 등을 이용)

 

3. Master DB와 Slave DB의 my.cnf(보통 /etc/my.cnf에 존재) 수정

 

<<<Master DB>>>

[mysqld] 

log-bin 

server-id=1 

 

<<<Slave DB>>>

[mysqld] 

master-host=마스터의 IP/도메인 주소 

master-user=아이디 

master-password=패스워드 

master-port=3306 (마스터 Mysql 포트번호) 

server-id=2 

 

마스터에 슬레이브가 접근 가능하도록 권한 수정

GRANT FILE ON *.* TO 'ID'@"%" IDENTIFIED BY 'password'; 

(이걸 빠뜨린다면 아래와 같은 오류가 발생할 수 있다)

  • error connecting to master 'repl@192.168.0.22:3306' - retry-time: 60  retries: 86400

 

여기서 '%'는 모든 ip주소를 의미하고 특정 ip만 접근가능하도록 하기 위해서는 '%' 대신에 ip주소를 적어도 된다 

 

만일 여러 대의 슬레이브 서버를 구축하는 경우, server-id 라는 고유넘버를 달리하여 슬레이브 설정과 같이 해 주면 된다. 

 

 

이제 모든 설정이 완료되면 마스터와 슬레이브 서버를 재시작한다. (mysql.server restart)

 

 

- REPLICATION 작동 확인 방법 - 

 

설정과 Mysql 재시작이 완료되면 Replication 작동 상태를 확인한다. 

먼저 마스터의 Mysql Shell로 로그인 하여 

 

> show master status ; 

 

를 하여 다음과 같은 메시지가 나온다면 정상이다. 

 

+-------------+----------+--------------+------------------+ 

| File | Position | Binlog_do_db | Binlog_ignore_db | 

 

+-------------+----------+--------------+------------------+ 

| sim-bin.002 | 73 | | | 

+-------------+----------+--------------+------------------+ 

 

다음으로 슬레이브의 Mysql Shell로 로그인 하여 작동 상태를 확인한다. 

 

> show slave status; 

 

를 하여 다음과 같은 메시지가 나온다면 정상적이다. 

 

+--------------+-------------+-------------+---------------+--------- 

----+-----+ 

| Master_Host | Master_User | Master_Port | Connect_retry | Log_File 

| Pos | Slave_Running | 

+--------------+-------------+-------------+---------------+--------- 

----+-----+ 

| sim.tt.co.kr | chodong | 3306 | 60 | sim-bin.002 | 73 | Yes | 

+--------------+-------------+-------------+---------------+--------- 

----+-----+ 

 

 

또한 show processlist; 명령을 통해 각각의 프로세스 정보를 확인하는 방 

법도 있다. 

마스터 서버에서 show processlist ; 를 한 결과이다. 

Id User Host db Command Time State Info 

1 chodong 211.47.65.106 Binlog Dump 336959 Slave connection: waiting 

for binlog update 

 

위와 같이 슬레이브 서버의 접속 상태와 접속시간 등의 정보를 볼 수 있 

다. 

슬레이브에서 show processlist ; 한 결과이다. 

Id User Host db Command Time State Info 

57 system user none Connect 502778 Reading master update 

 

마찬가지로 마스터 서버에 대한 접속 상태와 접속시간 등을 알 수 있다. 

 

 

미러링 참고로 퍼왔습니다!

 

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

 

꼭 원문 사이트가서 다시 확인하고 참고하세용!

 

 

출처 : https://intro0517.tistory.com/8

반응형
Comments