/etc/my.cnf 설정 파일 수정
Master DB
/etc/my.cnf 설정 파일 수정
vi /etc/my.cnf
[mysqld]
server-id=10
log-bin=mariadb-bin # 바이너리 기록
autocommit=0
...
서비스 재시작
systemctl restart mariadb.service
DB 사용자 설정
[사용자 생성 + 권한 설정]
GRANT 권한 ON 데이터베이스.테이블 TO 사용자@'호스트'
mysql -u root -p
# replica 사용자에게 모든 데이터베이스의 모든 테이블에 대한 권한 지정
# @'localhost': 로컬 호스트만
# @'%': 모든 사용자
GRANT replication slave ON *.* TO replica@'%' identified by '123';
# 사용자 설정에 대한 변경 값 적용
flush privileges
Slave DB
/etc/my.cnf 설정 파일 수정
vi /etc/my.cnf
[mysqld]
server-id=20
log-bin=mariadb-bin
read_only=1
report-host=slave.goorm.com
서비스 재시작
systemctl restart mariadb
데이터 백업 구성
Master DB: 데이터 백업 전에 DB 잠금 설정
MariaDB [(none)]> flush tables with read lock;
Query OK, 0 rows affected (0.01 sec)
MariaDB [(none)]> show master status;
+--------------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+--------------------+----------+--------------+------------------+
| mariadb-bin.000001 | 460 | | |
+--------------------+----------+--------------+------------------+
1 row in set (0.00 sec)
# Position 번호 확인
Master DB: 논리적 백업 (새로운 터미널에서 작업)
mysqldump -u root -p --all-databases --lock-all-tables --events > mysql_dump.sql
Enter password:
# 생성된 파일 확인
ls
mysql_dump.sql
Master DB: 원래 터미널에서 잠금 해제
MariaDB [(none)]> unlock tables;
Master DB: 백업 파일을 Slave DB로 복사
scp mysql_dump.sql root@10.0.2.20:/tmp
Slave DB: 백업 데이터 복원
[root@slave ~]# mysql -u root -p < /tmp/mysql_dump.sql
-> 복원만 하는 작업 (로그인 아님)
[root@slave ~]# mysql -u root -p
-> 설정을 위해 로그인
Slave DB: 마스터 지정 및 설정
# IP주소, 사용자 이름/패스워드 , log_file / log_pos 는
# 마스터에서 show master status; 로 확인 후 입력
MariaDB [(none)]> change master to master_host='10.0.2.10' ,
-> master_user='replica', master_password='123',
-> master_log_file='mariadb-bin.000001',
-> master_log_pos=460;
MariaDB [(none)]> start slave;
Slave DB: 설정 확인
MariaDB [(none)]> show slave status \G
데이터 동기화 확인
Master DB: 데이터 수정
[root@master ~]# mysql -u root -p
Enter password:
MariaDB [(none)]> USE testdb;
MariaDB [testdb]> INSERT INTO first_tab VALUE(5,'n');
Query OK, 1 row affected (0.00 sec)
MariaDB [testdb]> COMMIT;
Query OK, 0 rows affected (0.04 sec)
MariaDB [testdb]> SELECT * FROM first_tab;
+------+------+
| id | name |
+------+------+
| 1 | k |
| 2 | a |
| 5 | n |
+------+------+
3 rows in set (0.00 sec)
* 만약 커밋을 하지 않으면 변경 사항이 저장되지 않기 때문에 서로 데이터가 다르게 보일 수 있음
Slave DB: 수정된 데이터 확인
MariaDB [(none)]> use testdb;
MariaDB [testdb]> SELECT * FROM first_tab;
+------+------+
| id | name |
+------+------+
| 1 | k |
| 2 | a |
| 5 | n |
+------+------+
3 rows in set (0.00 sec)
'쿠버네티스 교육 > 프로젝트' 카테고리의 다른 글
220525_2_세미 프로젝트_웹 서비스 구축_NFS-WEB 연동 (0) | 2022.05.25 |
---|---|
220525_1_세미 프로젝트_웹 서비스 구축_WEB-DB 연동 (0) | 2022.05.24 |
220524_1_세미 프로젝트_웹 서비스 구축_DB 서버 이중화 구성-1 (0) | 2022.05.24 |
220523_2_세미 프로젝트_웹 서비스 구축_iSCSI 구성-2 (0) | 2022.05.24 |
220523_1_세미 프로젝트_웹 서비스 구축_iSCSI 구성-1 (0) | 2022.05.23 |