1. 백업
mysqldump -u사용자 -p DB명 > DB백업파일명.sql
모든DB백업
mysqldump -u사용자 -p -A > DB백업파일명.sql
특정 테이블만 백업
mysqldump -u사용자 -p DB명 TABLE명 > DB백업파일명.sql
* -A 옵션 사용시 Warning 메시지 뜰때,
--events --ignore-table=mysql.event 옵션을 넣어주면 된다.
mysqldump -u사용자 -p -A --events --ignore-table=mysql.event > /backup/db_backup.sql
옵션
-A, --all-databases : 모든 DB를 한번에 덤프
--add-locks : 덤프 전에 lock, 덤프 후에 unlock
>lock기능은 백업 도중에 데이터에 변화가 생긴다거나(insert) 하는 경우를 방지하기위해 lock을 걸고 덤프하고 완료 후에 언락 한다.
--add-drop-table : 백업된 데이터 안에 drop table 명령을 추가한다.
>복구시 테이블이 이미 만들어져있더라도 drop table로 제거 후 테이블을 생성
2. 복구 (복구시에는 mysqldump가 아니고 mysql로 해야함)
mysql -u사용자 -p < DB백업파일명.sql
또는
mysql -u사용자 -p DB명 < DB백업파일명.sql
3. crontab 으로 자동백업 실행하기
3-1. 쉘스크립트 작성
vi /root/mysqlbackup.sh 등으로 적당한 쉘스크립트를 작성한다.
#!/bin/bash
/usr/local/mysql/bin/mysqldump -u root -p비번 -A --events --ignore-table=mysql.event > /backup/sql_backup/db_back_$(date +%Y%m%d).sql
find /backup/sql_backup -ctime +3 -exec rm -f {} \;
마지막 줄은 sql_backup 폴더에 있는 파일중에 3일이 지난 파일을 삭제하라는 명령
3-2. crontab 작성
#crontab -e
00 03 * * * /root/mysqlbackup.sh
매일 새벽 3시에 스크립트를 실행하라는 명령
#service crond restart
'Mysql' 카테고리의 다른 글
select 한 내용을 다른 table에 insert 하는 방법 (0) | 2019.10.30 |
---|---|
MySQL Workbench 로 DB 업데이트 하기 (0) | 2018.07.17 |
mysql table 초기화 (0) | 2015.07.14 |
Mysql 권한, 원격접속 설정방법 (0) | 2013.04.30 |
UNION 사용법 (0) | 2013.04.04 |