[선행 작업]
- 마스터 서버의 mysql 에서 복제 전용 계정을 새로 만들던가 기존 계정에 복제 관련 권한을 추가해 줘야한다.
mysql> GRANT REPLICATION SLAVE ON *.* TO 'id'@'ip' IDENTIFIED BY 'password';
- 마스터, 슬레이브에서 replication 할 db 의 데이터를 맞춰둔다. (덤프 이용)
* DB 데이터 백업
# mysqldump -u계정명 -p비밀번호 db > db.sql
* 함수, 프로시저, 트리거 를 함께 백업해야 할 경우
# mysqldump --routines --trigger -u계정명 -p비밀번호 db > db.sql
* 함수, 프로시저, 트리거 만 백업해야 할 경우 (테이블 제외)
# mysqldump --routines --no-create-info --no-data --no-create-db --skip-opt db > db_no_tables.sql
* 백업 데이터 복원
# mysql -u계정명 -p비밀번호 db < db.sql
[설정]
1) 마스터 설정파일 수정
/etc/my.cnf.d/server.cnf
----
[mysqld]
log-bin=mysql-bin
server-id=1
----
위 항목 추가
2) 마스터 mysql 실행 & 마스터 설정 확인
# service mysql start
mysql> show master status;
+------------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000001 | 906 | | |
+------------------+----------+--------------+------------------+
* file, position 기록해놓기.
3) 슬레이브 설정파일 수정
/etc/my.cnf.d/server.cnf
----
[mysqld]
server-id=2
# replicate-do-db='repl'
# 위 설정을 통해 하나의 db 만 replication 가능. 없으면 모든 db 를 replication 함.
# 몇몇개의 db 만 replication 할 경우 replicate-do-db 항목을 여러개 추가
----
위 항목 추가
4) 슬레이브 mysql 실행 & 슬레이브 마스터 연결 설정
# service mysql start
mysql> change master to
master_host='192.168.0.1',
master_user='id',
master_password='password',
master_log_file='mysql-bin.000001', # 마스터 설정에서 확인한 file 이름
master_log_pos=906; # 마스터 설정에서 확인한 position 번호
5) 슬레이브 replication start
mysql> start slave;
[참고 링크]
http://we-minarida.tistory.com/entry/%EC%8B%A4%EC%82%AC%EC%9A%A9-db-%EC%97%90%EC%84%9C-mysql-replication
http://server-talk.tistory.com/241
https://blurblah.net/1490
'Programming > DB' 카테고리의 다른 글
[Mysql] Procedure 호출 시 오류 (The user specified as a definer does not exist) (0) | 2018.12.28 |
---|---|
[Mysql & MariaDB] 백업 & 복원 (0) | 2018.10.04 |
[MariaDB] Clustering (0) | 2018.09.18 |
[MariaDB] Character Set 변경 (0) | 2018.09.17 |