티스토리 뷰

DEVELOPE/MYSQL&MARIADB

mysql db 동기화

소찾나 2017. 1. 31. 10:38
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

mysql db 동기화

mysql db 동기화


mysql db 동기화




mysql 리플리케이션

mysql 같은경우 rsync 로는 동기화 할수가없다.

mysql 같은경우 당연히 리플리케이션(동기화) 기능이 있으므로 이용하면되겠다.

우선 간단하게 서버 2대를 이용

 

마스터서버 <ㅡ> 슬레이브서버 (두서버모두 mysql5.5버전)

 

 

마스터서버에서셋팅

 

1. my.cnf파일설정

 

[root@ssongacademy data]# vi /etc/my.cnf

log-bin=mysql-bin

# required unique id between 1 and 2^32 - 1
# defaults to 1 if master-host is not set
# but will not function as a master if omitted
server-id = 1
binlog-do-db = 동기화할db명
# Replication Slave (comment out master section to use this)
#
# To configure this host as a replication slave, you can choose between
# two methods : 

 

2. 리플리케이션에 이용할 계정생성.

 

mysql접속후


mysql> GRANT REPLICATION SLAVE ON *.* TO '리플리케이션 사용할 아이디'@'슬레이브서버IP' IDENTIFIED BY '비번';

 

3. 동기화진행할 데이터베이스를 백업해놓는다. (덤프이용)

 

4. mysql 접속후 show master status; 입력하여 로그값가 포지션값을 기억해놓는다

 

mysql> show master status;
+------------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000023 | 27542 | | |
+------------------+----------+--------------+------------------+ 

 

마스터서버는 설정끝!!!

 

 

◎슬레이브서버에서 설정

 

1. my.cnf파일설정

 

#log-bin=mysql-bin (마스터서버와반대로 주석처리)

# required unique id between 1 and 2^32 - 1
# defaults to 1 if master-host is not set
# but will not function as a master if omitted
server-id = 2 (마스터서버와 번호가같으면 안됨)
replicate-do-db = 동기화할 db명
# Replication Slave (comment out master section to use this)
#
# To configure this host as a replication slave, you can choose between
# two methods : 

 

2. 아까 마스터서버에서 백업해놓은 DB를 슬레브서버에 적용시켜준다. (첫 db데이터 동기화는 수동으로 해줘야한다.)

 

3. mysql접속후 마스터서버정보입력

 

우선 mysql> slave stop; 을 입력후

 

mysql> CHANGE MASTER TO
MASTER_HOST='마스터서버IP',
MASTER_USER='2번에서 생성한 아이디',
MASTER_PASSWORD='2번에서 생성한 비번',
MASTER_LOG_POS=마스터서버의 포지션 번호,
MASTER_LOG_FILE='마스터 서버의 로그파일 명';
입력

 

mysql> slave start; 그리고 스타트 그럼 끝!!!

 

참고로 mysql5.5 버전에서는 슬레이브서버 my.cnf 파일설정을통해 마스터서버정보를 입력하면 mysql 이 실행되지 않는 현상이 발생.

그래서 위에3번처럼 직접 mysql 접속해서 입력해주었다.

 

동기화 확인하는방법은 마스터서버 mysql 접속후 mysql>show processlist; 또는

각각 서버 mysql접속후 밑에내용입력해본다

 

mysql> show master status;

mysql> show slave status;

 

확인해보면 마스터서버와 슬레이브서버 통신상태확인.

실제테스트해보는방법은 테이블은 지우거나 만들어보면 된다.

댓글