서버 구성
MySQL을 2개의 경로에 설치했다.
- Master : /usr/local/mysql
- Slave : /usr/local/mysql-slave
같은 서버에서 포트를 다르게 주어 Master와 Slave를 구분했다.
- Server : 192.168.4.37
- Master port : 3306
- Slave port : 3307
Conf 파일 수정
MySQL은 실행할 때 my.cnf 를 참조하여 작동한다. 보통 /etc에 my.cnf 파일이 위치해있는데, 이 경로에 없을 경우 자신의 data 디렉토리 안을 다음 순위로 살펴본다. 따라서 /etc/my.cnf 파일을 지우고 각 MySQL 경로의 data 디렉토리에 my.cnf 파일을 생성했다.
- Master : --defaults-file=/usr/local/mysql/data/my.cnf
- Slave : --defaults-file=/usr/local/mysql-slave/data/my.cnf
먼저 Master server의 my.cnf 파일에 아래 내용을 추가해준다.
[mysqld]
log-bin=mysql-bin
server-id=1
→ master와 slave의 server id가 겹치면 안된다.
Master의 server id는 1, Slave의 server id는 2,
id 증가폭은 모두 2로 두어 server id가 겹치지 않도록 설정했다.
Replication 세팅
Slave server가 Master server를 바라보도록 설정하는 방법은 두가지이다.
1) MySQL 접속 후 설정
2) my.cnf 파일 내에서 설정
먼저 MySQL 커맨드 창에서 직접 입력하는 방법이다.
1.1) Slave의 my.cnf 파일에 아래 내용을 추가해준다.
[mysqld]
server-id=2
replicate-do-db='repl_db'
1.2) Master의 데이터베이스를 dump하여 Slave server에 복원한다.
- Dump 백업 Command :
/usr/local/mysql/bin/mysqldump -uroot –p repl_db > /tmp/repl_db_dump.sql
- Dump 복원 Command :
/usr/local/mysql-slave/bin/mysqldump -uroot –p repl_db < /tmp/repl_db_dump.sql
1.3) MySQL 접속 후 command를 입력하여 설정한다.
mysql> change master to
master_host='192.168.4.37',
master_user='repl_user',
master_password='masterpw',
master_log_file='mysql-bin.000010',
master_log_pos=154;
→ master_log_file과 master_log_pos 정보는 Master server에서 show master status 커맨드를 통해 확인할 수 있다.
1.4) Slave MySQL을 재시작한다.
다음은 My.cnf 파일 내에서 설정하는 방법이다.
2.1) Slave의 my.cnf 파일을 설정해준다.
[mysqld]
replicate-do-db='repl_db'
master-host=192.168.4.37
master-user=repl_user
master-password=masterpw
master-port=3306
server-id=2
2.2) Master의 데이터베이스를 dump하여 Slave server에 복원한다.
: 1.2와 동일하게 진행한다.
2.3) Slave MySQL을 재시작한다.
Replication 상태 확인
* Master에서 show processlist 커맨드를 실행한 결과
mysql> show processlist\G
프로세스가 정상적으로 실행되는 것을 확인할 수 있다.
* Slave에서 show slave status 커맨드를 실행한 결과
mysql> show slave status\G
(일부 생략)
→ Slave_IO_Running : yes
→ Slave_SQL_Running : yes
→ Last_IO_Error / Last_SQL_Error : 0
위 항목을 보고 정상적으로 돌아가는 것을 알 수 있다.
'Dev > MySQL' 카테고리의 다른 글
[MySQL] yum으로 MySQL 설치 (CentOS 7) (0) | 2022.09.03 |
---|---|
[MySQL] MySQL MMM (0) | 2022.07.26 |
[Database] 백업 방식별 특징/장점/단점 (0) | 2022.07.16 |
5. XtraBackup 소요 시간 산정 (0) | 2022.07.15 |
4. XtraBackup 상황별 스크립트 (0) | 2022.07.03 |
댓글