공부?/국비 지원 일기장

프로젝트 - DB backup 서버 만들고 메인 DB서버 백업서버로 연동

무무요 2024. 10. 6. 05:05

 

 

=======

 

메인 DB서버는 구축이 완료 되었으므로 백업서버 구축과 연동만 써보도록 하겠다

마스터 - 슬레이브 설정을 통해 복제를 구연하는 방식으로 구현

두개의 DB서버다 mariaDB 가 설치 되어있다는 기준으로 작성했다.

 

1. 연동을 위한 설정 파일 수정

vi /etc/mysql/my.cnf 

맨 밑에 추가

[mysqld]
log-bin = mysql-bin # 바이너리 로그 활성화 옵션, 복제 작업을 기록한다.
server-id = 1
binlog-do-db = projects  # 복제하려는 데이터베이스 이름

server-id 는 고유하여야 한다. 마스터가 1이면 백업은 달라야 한다.

 

mariaDB 재시작

systemctl restart mariadb

 

2. 복제 계정 생성

슬레이브 서버에서 복제를 위해 마스터 서버에 복제 전용 사용자 계정을 생성한다

GRANT ALL ON *.* to 'back'@'%' IDENTIFIED by '1234';
GRANT REPLICATION SLAVE ON *.* to 'back'@'%';
FLUSH PRIVILEGES;

 

마스터 서버의 바이너리 로그 파일 이름과 위치를 확인 하는 법

SHOW MASTER STATUS;

 

3. 슬레이브 서버로 전송하기 위한 데이터베이스 덤프

mkdir -p /path/to/backup # 디렉터리가 없어서 생성
chmod 755 /path/to/backup # 쓰기 권한이 없을시 문제가 발생할 수 있기에 권한 부여
mysqldump -u root -p --all-databases --master-data > /path/to/backup/dumpfile.sql

 

4. 슬레이브 서버 설정

설정 파일 수정

vi/etc/mysql/my.cnf

[mysqld]
server-id=2               # 슬레이브 서버의 고유 ID, 마스터와 중복되지 않게 설정
relay-log=relay-bin       # 릴레이 로그 파일 설정
log-bin=mysql-bin         # 바이너리 로그를 활성화하여 데이터 변경 추적

 

5. 마스터 서버에서 덤프한 데이터 복원

마스터 서버에서 생성한 덤프 파일을 슬레이브 서버로 복사한 후 복원 한다.

mkdir -p /path/to/backup # 마스터 서버와 같은 디렉터리 생성
chmod 755 /path/to/backup # 쓰기 권한이 없을시 문제가 발생할 수 있기에 권한 부여
mysql -u root -p < /path/to/backup/dumpfile.sql # 마스터 서버에서 만든 덤프 파일을 가지고 와서 복원

 

5. 슬레이브 설정 및 마스터 서버와의 연결

슬레이브 서버에서 마스터 서버와 연결할 정보를 설정,

앞서 마스터 서버에서 SHOW MASTER STATUS; 에서 나온 로그 파일과 POSITION 정보를 입력해야된다.

CHANGE MASTER TO
MASTER_HOST='10.255.255.26', # 마스터 서버 IP
MASTER_USER='back',  # 마스터 서버에서 생성한 복제 계정 
MASTER_PASSWORD='1234',  # 마스터 서버에서 생성한 복제 계정 비밀번호
MASTER_LOG_FILE='mysql-bin.000002',  # 마스터 서버에서 기록한 로그 파일
MASTER_LOG_POS=342;                # 마스터 서버에서 기록한 로그 위치

 

6. 복제 시작

START SLAVE;

 

7. 복제 상태 확인

SHOW SLAVE STATUS\G;

 

8. 복제 테스트

 

앞서 세팅한 was - java 연동 회원가입을 통해 두개의 DB 서버에 회원가입 정보가 들어오는지 테스트 해보았다,

 

마스터 DB 서버

슬레이브 DB 서버

 

두곳의 DB에서 정상적으로 회원가입 정보가 들어오는걸 볼 수 있다.

 

=======

했던것 중에서 오류가 제일 없었다.. 다음은 WEB서버 두개를 생성해 WAS와 연결을 할것이다.