<환경>
CentOS Linux release 7.9.2009 (Core)
DB : MariaDB 10.5.9
[Master 설정]
1. DB, 계정생성 및 권한 설정
먼저 복제할 DB 와 해당 DB 관리가 가능한 계정을 생성한다 .
만약 모든 DB 를 복제하기를 원한다면 외부 접근 가능하며 , 모든 DB 에 권한을 가지고 있는 계정이 필요하다 .
root 계정을 이용하면 보안 상 좋지 않으므로 새로 생성하여 사용한다.
1) DB 생성 (repl_db)
MariaDB [(none)]> CREATE DATABASE repl_db DEFAULT CHARACTER SET utf8;
2) 계정 생성 (repl)
MariaDB [(none)]> CREATE USER repl@'%' IDENTIFIED BY 'test123';
3) 권한 부여
MariaDB [(none)]> GRANT ALL PRIVILEGES ON repl_db.* TO repl@'%' IDENTIFIED BY 'test123';
2. 리플리케이션 계정 생성
MariaDB [(none)]> GRANT REPLICATION SLAVE ON *.* TO allrepl@'%' IDENTIFIED BY 'test456';
3. my.cnf 설정
# vi /etc/my.cnf
[mysqld]
log-bin=mysql-bin
server-id=1 //서버 식별 ID 값
binlog-do-db=[리플리케이션 DB명] // 생략 시 전체 DB 리플리케이션을 하겠다는 의미
위와 같은 설정 추가 or 확인 후 재시작
# systemctl restart mysqld
4. MariaDB 접속 후 Master 정보 확인
MariaDB [(none)]> SHOW MASTER STATUS;
[Slave 설정]
1. DB, 계정생성 및 권한 설정
1) DB 생성 (repl_db)
MariaDB [(none)]> CREATE DATABASE repl_db DEFAULT CHARACTER SET utf8;
2) 계정 생성 (repl)
MariaDB [(none)]> CREATE USER repl@'%' IDENTIFIED BY 'test123';
3) 권한 부여
MariaDB [(none)]> GRANT ALL PRIVILEGES ON repl_db.* TO repl@'%' IDENTIFIED BY 'test123';
2. my.cnf 설정
# vi /etc/my.cnf
[mysqld]
server-id=2 // 서버 식별 ID 값, 고유 값
replicate-do-db='[리플리케이션 DB명]' // 생략 시 전체 DB 리플리케이션 하겠다는 의미
slave-skip-errors=all // 에러코드 발생 시 에러를 skip
위와 같은 설정 추가 or 확인 후 재시작
3. MySQL 복원
Master DBMSdptj 복제할 DB를 dump하여 복원
4. Master 서버로 연결하기 위한 설정
MariaDB [(none)]> change master to
MariaDB [(none)]> master_host='[마스터 IP]', // Master 서버 IP
MariaDB [(none)]> master_user='allrepl', // 리플리케이션 ID
MariaDB [(none)]> master_password='test456', // 리플리케이션 PW
MariaDB [(none)]> master_log_file='mysql-bin.000007', // Master Status 로그파일명
MariaDB [(none)]> master_log_pos=342; // Master Status에서 position값
※ master_log_file, master_log pos는 Master에서
MariaDB [(none)]> SHOW MASTER STATUS\G;
# systemctl restart mysqld
[MySQL Replication 상태 확인]
1. Master 서버 상태
1) 쓰레드 상태보기
MariaDB [(none)]> SHOW PROCESSLIST\G;
Master 서버에서 위 내용과 같이 명령어를 입력하면 Id:6 쓰레드의 Slave서버의 allrepl계정으로 연결되어 있는 것을 확인할 수 있음
2. Slave 서버 상태
1) 쓰레드 상태보기
MariaDB [(none)]> SHOW PROCESSLIST\G;
2) Slave 상태보기
MariaDB [(none)]> SHOW SLAVE STATUSs\G;
[MySQL Replication 작동 확인]
1. Master에서 간단한 테이블 생성
MariaDB [(none)]>USE repl_db;
MariaDB [repl_db]> CREATE TABLE TEST (
-> num int(10) not null,
-> name varchar(10) not null
-> );
MariaDB [repl_db]> SHOW TABLES;
2. Slave에서 확인
MariaDB [(none)]>USE repl_db;
MariaDB [repl_db]> SHOW TABLES;
'리눅스' 카테고리의 다른 글
[리눅스 에러] '미러사이트'의 주소를 알아내는데 임시로 실패했습니다. (0) | 2021.03.24 |
---|---|
MySQL 바이너리 로그파일을 이용한 데이터 복구 (0) | 2021.03.24 |
DBMS 이중화 - MySQL Replication 개념 (0) | 2021.03.22 |
Apache 웹 인증 설정하기 (0) | 2021.03.19 |
Apache 리다이렉트 (HTTP→HTTPS) (0) | 2021.03.19 |