티스토리 뷰
반응형
아래와 같이 쉘 스크립트를 만들어서 crontab 에 등록하여 자동 백업할 수 있다.
- 무결성 보장 : --single-transaction
- 프로시저 포함 : --routines
- 한글지원 : default-character-set=utf8
#!/bin/sh
## yyyymmdd_hhmm format
DATE=$(date "+%Y%m%d")
TIME=$(date "+%Y%m%d_%H%M")
PATH="/home/woohaeng/MyDisk/Backup/MySql"
PATHTIME=${PATH}/${DATE}/${TIME}
#/bin/mv ${PATH}*.sql "/media/vf-db/Seagate Backup Plus Drive/DB백업"
cd ${PATH}
/bin/mkdir ${DATE}
/usr/bin/mysqldump --single-transaction --routines --databases qhedge_dev_daily -h localhost -u root -p*** --default-character-set=utf8 > ${PATHTIME}_qhedge_dev_daily.sql
/usr/bin/mysqldump --single-transaction --routines --databases vf_pattern -h localhost -u root -p*** --default-character-set=utf8 > ${PATHTIME}_vf_pattern.sql
/usr/bin/mysqldump --single-transaction --routines --databases vf_stockdb -h localhost -u root -p*** --default-character-set=utf8 > ${PATHTIME}_vf_stockdb.sql
/usr/bin/mysqldump --single-transaction --routines --databases mysql -h localhost -u root -p*** --default-character-set=utf8 > ${PATHTIME}_mysql.sql
zip ${PATH}/${DATE}.zip ${PATH}/${DATE}/*
특정 테이블만 백업할 경우 데이터베이스명 뒤에 테이블명을 나열하면 되는데 "--databases" 옵션이 있을경우 동작하지 않아 제거 후 아래와 같이 수행한다.
또한 DROP문을 생성하지 않게 하려면 "--skip-add-drop-table" 옵션을 추가하고, CREATE문은 생성하지 않으려면 "--no-create-info" 옵션을 추가한다.
/usr/bin/mysqldump --single-transaction --routines 데이터베이스명 테이블명 -h localhost -u 아이디 -p --default-character-set=utf8 --skip-add-drop-table --no-create-info > ~/저장파일명.sql
>> 복구
$ mysql -u root -p < vf_stockdb_us.sql
또는 mysql 로 로그인 하고 source 문을 이용하여 복구할 수 있다.
$ mysql -u root -p
MariaDB> use 데이터베이스명
MariaDB> source ~/파일명.sql
반응형
댓글
공지사항
최근에 달린 댓글
- Total
- 116,418
- Today
- 1
- Yesterday
- 33
링크
TAG
- 이중반복
- 우분투#한글
- 도커
- 환경설정
- DBBackup
- auto
- docker
- torch
- 타임리프
- thymeleaf
- 한달살이
- 자동실행
- 광치기해변
- cuda
- 외부서버연동
- 오조리해변
- WolfNCU
- GPU
- Delta
- 제주도한달살기
- NCU
- 울프NCU
- 울프프로그램
- Kossel
- 리치유클래시아
- DB백업
- container
- Spring boot
- 스프링부트
- 제주아쿠아플래닛