그림은 압축파일로 첨부되어 있습니다. 필요할 경우 다운받아서 풀어서 같이 보시기 바랍니다.
원본 출처 : http://www.phpleader.co.kr/study/studycontent.php?study2_seq=39#
이번 시간에는 mysql 데이터베이스의 백업 과 복구에 대해서 알아보도록 하겠습니다..
데이터베이스를 다루어 본 사람들은 데이터 백업의 중요성을 알고있을 것입니다.
저자도 ‘소 잃고 외양간 고친다’ 는 속담처럼 데이터를 날려버린 다음에야 알았지만…
지금 이 글을 읽고 있다면 백업에 대해 더 많은 시간을 투자하라고 권하고 싶습니다..
그러면 우선 백업 명령인 mysqldump 에 대해서 알아보겠습니다..
[그림1]
1. $ mysqldump [Option] database [table] > ???.dump
2. $ mysqldump [Option] --databases db1 [db2 db3 ... ] > ???.dump
3. $ mysqldump [Option] --all-databases > ???.dump
설명 => 1번은 하나의 데이터베이스와 그 안의 테이블들을 덤프 시키는 명령입니다.
테이블이름을 생략하면 모든 테이블이 덤프 됩니다.
2번은 여러 개의 데이터베이스 전체를 한 번에 덤프 시키는 명령입니다.
3번은 모든 데이터베이스를 덤프 시키는 명령입니다.
[Option] 설명
--quick : C API의 mysql_use_result()함수를 사용하므로 속도가 빠르다.
--add-drop-table : 덤프 결과에서 create table 앞에 drop table 절을 추가합니다.
--add-locks : 덤프하기 전에 LOCK table을 이용하여 테이블을 잠그고 덤프후 UNLOCK table을 합니다.
--extended-insert : insert 문 하나에서 모든 레코드를 삽입하는 insert 문을 생성합니다.
--opt : 위에 나온 옵션을 동시에 사용한 것과 같은 결과를 가져옵니다.
--no-data(-d) : 테이블의 스키마만 덤프합니다.
--no-create-info(-t) : create table을 출력하지 않고 데이터만 덤프합니다.
개인적으로는 –opt 옵션을 주로 사용합니다. 한가지 예를 보도록 하겠습니다.
[그림2]
mysqldump –opt support test > /PATH/support_test.dump
이 구문은 support 데이터베이스 안에 있는 test 테이블을 지정한 경로에 백업 받는 명령입니다.
[그림3]
그러면 이제 백업 받은 파일을 복구하는 방법을 알아보겠습니다.
구문은 mysql database_name < backup_filename
예로든 support_test.dump 파일을 복구해 보겠습니다.
[그림4]
이제 mysql에 연결한 상태에서 test 란 테이블이 생성된 것을 확인하는 이미지를 마지막으로 이번 강좌를 끝내도록 하겠습니다.
[그림5]
|