[Database/MySQL] Backup & Recovery (백업과 복구)
1. Overview
아주 심플하게, 바로 써먹을 수 있는 백업과 복구 방법을 알아보자.
2. Backup
부분 백업도 가능하며, 아래 명령줄은 root 계정으로 전체 DB를 ${FILENAME} 으로 백업한다.
1
2
$ FILENAME="full_backup.sql_$(date "+%Y_%m_%d_:_%H:%M:%S")"
$ mysqldump -u root -p --all-databases > ${FILENAME}
3. Recovery
다음의 명령으로, 복구할 수 있다.
1
$ mysql -u root -p < ${FILENAME}
장애로 인하여 DB데이터를 잃어버린 경우 복구하는게 아니라,
데이터를 이전 백업본으로 돌아가는 경우라면..
위 명령을 수행하면, 덮어씌우는 게 아니라 새로 INSERT를 하게 되어 동일한 data가 삽입될 수 있다고 한다(?).
그럴 경우 복구 하기 전에 아래 명령어들을 모두 수행한다.
다음을 우선 실행하여, 데이터를 날린다.
1
$ mysql -u root -p <DB> -e "drop database <DB>"
DB를 재생성하고, 특정 유저에게 있던 권한도 날라갔으므로 DB권한을 다시 부여한다.
1
2
3
mysql> CREATE DATABASE <DB> CHARACTER SET utf8 COLLATE utf8_bin;
mysql> GRANT ALL PRIVILEGES ON <DB>.* TO '<USERNAME>'@'%' WITH GRANT OPTION;
mysql> FLUSH PRIVILEGES;