1. Mysql replication 설정
- Master / Slaver 공통
# vi /etc/my.cnf
ü Master
[mysqld]
Server-id = 1
Log_bin = mysql-bin
ü Slaver
[mysqld]
Server-id = 2
Log_bin = mysql-bin
Master서버와 slave서버의 server-id는 다르게 설정해줘야 하며, slave가 추가되면 3, 4, 5, 6 이런식으로 동일한 server-id가 없도록 설정해야한다.
*추가옵션 설명 (slave 설정시)
binlog_do_db=db명 -> 특정 db만 리플리케이션 하고자 하는경우, 생략시 전체db리플리케이션
slave-skip-errors=all -> 모든에러를 무시하고 싱크를 맞춘다(코드번호로도 지정 가능)
read_only -> 해당옵션이 있어야 슬레이브서버에서읽기만 가능, 필수 옵션중 하나
è slave에서 데이터 입력 및 삽입시 리플리케이션이 꼬이기 때문에 꼭 넣어주는게 좋다.
- Master의 mysql 접속
mysql> GRANT REPLICATION SLAVE ON *.* TO ‘추가할 유저명’@’%’ IDENTIFIED BY ‘설정할 패스워드’’
mysql> FLUSH PRIVILEGES;
mysql> FLUSH TABLES WITH READ LOCK; -> DB Write 금지
이후 리플리케이션 대상 DB를 백업
# mysqldump –u root –p –all-databases –master-data=2 > 백업명.sql
이후 마스터DB에 접속후 slave에서 연결설정시 필요한 pos번호 및 binlog 파일명 확인
mysql> show master status\G
*************************** 1. row ***************************
File: mysql-bin.000003
Position: 287
Binlog_Do_DB:
Binlog_Ignore_DB:
1 row in set (0.00 sec)
mysql> UNLOCK TABLES; -> DB Write 금지 해제
*bin파일과 pos는 mysql 재시작시 변동될 수 있다.
-slave 설정
master에서 백업한 파일을 slave에 넣어준다.
# mysql –u root –p < 백업명.sql
- Master & slave 접속설정
Slave mysql 접속 후
mysql> CHANGE MASTER TO
MASTER_HOST='마스터서버ip',
MASTER_USER='추가한 유저명' ,
MASTER_PASSWORD='설정한 패스워드',
MASTER_PORT=3306,
MASTER_LOG_FILE='mysql-bin.0000009', -> 마스터에서 확인 후 기입
MASTER_LOG_POS='204' -> 마스터에서 POS번호 확인 후 기입
2. 리플리케이션 확인
slave에서 master와 정상적으로 연결되었는지 확인한다.
mysql> show slave status\G
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 49.247.212.11
Master_User: ohrohi_master
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: mysql-bin.000003
Read_Master_Log_Pos: 287
Relay_Log_File: mysqld-relay-bin.000002
Relay_Log_Pos: 433
Relay_Master_Log_File: mysql-bin.000003
--- 중략 ---
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Seconds_Behind_Master: 0
Master_SSL_Verify_Server_Cert: No
Last_IO_Errno: 0
Last_IO_Error:
Last_SQL_Errno: 0
Last_SQL_Error:
Replicate_Ignore_Server_Ids:
Master_Server_Id: 1
1 row in set (0.00 sec)
Slave_IO_Running, Slave_SQL_Running, Seconds_Behind_Master 부분이 위와같이 설정되어 있으면 정상적으로 연걸된것이다.
'Mysql' 카테고리의 다른 글
mysql 쿼리문으로 slow쿼리, 시간 설정하기 (0) | 2019.08.07 |
---|---|
mysql 쿼리 로그 만들기 (0) | 2019.07.30 |
mysql 덤프시 한글 깨질때 혹은 언어셋 다를때 (0) | 2016.11.15 |
mysql 5.7 설치시 (0) | 2016.09.07 |
mysql replication 설정 초기화 (5.5 -v) (0) | 2016.09.05 |