Database (django 3tier app host locally)

Database

유저 데이터및 정보를 저장할 수 있는 데이터베이스 서버 이중화 구성

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

← back