MySQL dump를 이용한 방법으로 DB를 백업해봅시다!
A서버는 본 DB서버이고, B서버는 백업 DB 서버입니다.
A서버에서 dump파일을 생성한 후 cron작업으로 매일 일정 시간이 되면
B서버에 dump파일을 전송하고, B서버에서 이를 실행시키는 작업을 해보겠습니다.
1. A 서버
DUMP 쉘스크립트 파일 생성
vi backup_db.sh
#!/bin/sh
## yyyy-mm-dd_hh:mm format
TIME=$(date "+%Y-%m-%d-%H")
mysqldump -u (계정명 default는 root) -p(비밀번호) -A > DUMP_${TIME}.sql
scp ${HOME}/DUMP_${TIME}.sql 계정이름@ip주소:저장할 디렉터리 경로
ssh 포트를 바꾼 경우 scp -P 포트번호 ~~~~
스크립트 실행 시 B서버에 비밀번호가 걸려있는 등의 문제가 생기면 다음 포스팅을 참고하세요!
쉘스크립트 파일 실행 권한 주기
chmod +x backup_db.sh
매일 3시에 쉘스크립트 파일 실행 -cron 이용
crontab -e * 3 * * * ${HOME}/backup_db.sh
2. B서버
Import 쉘 스크립트 작성
vi import_db.sh
#!/bin/sh
## yyyy-mm-dd_hh:mm format
TIME=$(date "+%Y-%m-%d-%H")
mysql -u(계정명 default는 root) -p(비밀번호) < DUMP_${TIME}.sql
쉘스크립트 파일 실행 권한 주기
chmod +x backup_db.sh
매일 3시 5분에 쉘스크립트 파일 실행 -cron 이용
crontab -e 5 3 * * * ${HOME}/import_db.sh
<번외>
cron이 실행 될 때마다 메일이 옴. 메일이 계속 쌓이면 메모리 차지 - email 안오게 하는 법
vi /etc/crontab MAILTO=root -> MAILTO="" 변경
- clone서버 keypair 없이 접속하게 한 다음에, scp로 파일 전송
- aws 디렉터리 snapshot 기능 찾아보기
서버 시간 맞추기
sudo mv /etc/localtime /etc/localtime_org sudo ln -s /usr/share/zoneinfo/Asia/Seoul /etc/localtime
cron시간이 제대로 작동되지 않을 경우 재시작
sudo /etc/init.d/crond restart
728x90
'Database > MySQL' 카테고리의 다른 글
MySQL(MariaDB) 포트 번호 변경 :: DANIDANI (0) | 2020.11.24 |
---|---|
MySQL(MariaDB) Replication - DB 실시간 이중화 :: DANIDANI (1) | 2020.11.23 |
MySQL(MariaDB) 사용법 on Linux (2) - 계정 생성, 삭제, 테이블 생성, select, delete, update, drop... :: DANIDANI (0) | 2020.10.28 |
MySQL(MariaDB) 사용법 on Linux (1) - 설치, 데이터 베이스 설정 :: DANIDANI (0) | 2020.10.27 |