Database (django 3tier app host locally)
유저 데이터및 정보를 저장할 수 있는 데이터베이스 서버 이중화 구성
Master DB 설정
# MariaDB 패키지 설치
yum -y install MariaDB-server MariaDB-client
# MariaDB 데몬 시작
systemctl enable mariadb
systemctl start mariadb
# 방화벽 설정
firewall-cmd --permanent --add-port=3306/tcp
success
firewall-cmd --reload
success
# MariaDB 최초 설정 스크립트 실행
mysql_secure_installation
# MariaDB 설정 파일안에 추가
character-set-server=utf8
log-bin=mysql-bin
server-id=1
# MariaDBMS 접속
mysql -u root -p
Enter Password:
# 사용할 PROmetDB 생성
MariaDB [(none)]> create database PROmetDB
# Master DB 계정 생성 및 Privileges 설정
MariaDB [mysql]> grant all privileges on PROmetDB.* to 'Master'@'%' identified by '1';
Query OK, 0 rows affected (0.003 sec)
# SlaveDB replication 설정
MariaDB [mysql]> grant replication slave on *.* to 'Slave'@'%'identified by '1';
Query OK, 0 rows affected (0.001 sec)
# Position ID 확인
mysql -u root -p -e "show master status"
+------------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000001 | 328 | | |
+------------------+----------+--------------+------------------+
# DB Backup 설정
mysqldump -u root -p --all-databases > all_Backup.sql
SlaveDB 설정
# 패키지 설치 및 방화벽 작업은 MasterDB와 동일
# MariaDB 설정 파일에 추가
character-set-server=utf8
server-id=2
replicate-do-db='PROmetDB'
# MasterDB Backup 데이터 받기
scp 10.1.4.10:/root/all_Backup.sql ./
mysql -u root -p < all_Backup.sql
Enter password:
# MariaDBMS 접속
mysql -u root -p
Enter password:
# MasterDB과 동일한 DB 확인
MariaDB [(none)]> show databases;
+--------------------+
| Database |
+--------------------+
| PROmetDB |
| information_schema |
| mysql |
| performance_schema |
+--------------------+
5 rows in set (0.007 sec)
# Slave 설정
MariaDB [(none)]> change master to master_host='10.1.4.10',
-> master_user='Slave',
-> master_password='1',
-> master_log_file='mysql-bin.000001',
-> master_log_pos=328;
Query OK, 0 rows affected (0.004 sec)
# Slave 계정 Read-Only 권한 부여
GRANT SELECT ON PROmetDB.* TO 'Slave'@'%';
# MariaDB 재시작
systemctl restart mariadb