DB 백업 명령어


DB 를 백업하기 위해서는 mysqldump라는 명령어를 사용해야 합니다.

 

 단일 데이터베이스 백업


mysqldump 명령어를 이용하여 백업하는 방법은 다음과 같습니다.

mysqldump -u root -p [dbname] > [filename].sql


여기서 [dbname]은 데이터베이스 이름을 말하며, CREATE 명령어로 생성한 하나의 데이터베이스를 의미합니다.

또한 [filename]은 여러분이 저장하고자 하는 이름을 저장하면 됩니다.


 

 전체 데이터베이스 백업


만약 MySQL 내부에 있는 모든 데이터베이스를 한 번에 백업하고자 하면 다음과 같이 사용할 수 있습니다.

mysqldump -u root -p --all-databases > [filename].sql


여기서는 전체 데이터베이스를 백업하는 명령어입니다.

따라서 명령어 내부에 특정 데이터베이스를 특정하는 부분이 존재하지 않습니다.


 

 캐릭터 셋 옵션을 이용한 백업


데이터를 백업할 때 캐릭터 셋을 지정해줄 수 있습니다.

단일 데이터베이스 백업과 거의 비슷한 명령어입니다.

# euckr 캐릭터셋 설정으로 백업함
mysqldump -u root -p --default-character-set=euckr [dbname] -> [filename].sql

# utf8 캐릭터셋 설정으로 백업함
mysqldump -u root -p --default-character-set=utf8 [dbname] -> [filename].sql


 

 특정 테이블만 백업


만약 데이터베이스가 아닌 특정 테이블 데이터만 백업하고자 한다면 다음과 같은 방법으로 명령어를 사용하면 됩니다.

# [dbname] 내에 있는 [table_name] 테이블을 백업함
mysqldump -u root -p [dbname] [table_name] > [filename].sql

# [dbname] 내에 있는 여러 테이블을 백업함
mysqldump -u root -p -B [dbname] --tables [table_name_1] [table_name_2] ... > [filename].sql


만약 백업 명령어에서 [dbname].[table_name] 이런 식으로 사용하시는 걸로 착각하시면 안 됩니다아아!

또한 여러 테이블을 백업할 때 -B 옵션과 --tables 옵션을 적용해주시면 됩니다.


 

 테이블 구조만 백업


만약 테이블의 구조만 백업하고자 하면, 다음과 같은 명령어로 백업하면 됩니다.

테이블의 구조란 데이터베이스 내에 있는 테이블들의 데이터를 제외하고 나머지를 모두 백업한다는 의미입니다.

mysqldump -u root -p --no-data [dbname] > [filename].sql


구조만 백업하기 때문에 --no-data 옵션을 넣어줍니다.


 

 데이터베이스를 XML 형태로 백업


MySQL에서는 데이터베이스를 백업할 때 XML 형태로 백업이 가능합니다.

mysqldump -u root -p --xml [dbname] > [filename].sql







 

 DB 복구 명령어


MySQL에서는 위와 같은 명령어로 백업을 했을 때 해당 파일을 이용하여 복구가 가능합니다.


 

 개별 데이터베이스 복구


데이터베이스를 하나씩 복구하고자 할 때 다음과 같은 명령어로 복구하면 됩니다.

# 쉘에서 복구하는 명령어
mysql -u root -p [dbname] < [filename].sql


-- mysql 내부에서 복구하는 명령어
use [dbname];
source [filename].sql;


 

 전체 데이터베이스 복구


전체 데이터베이스를 한 번에 복구하고자 할 때 다음과 같은 명령어로 복구하면 됩니다.

# 쉘에서 복구하는 명령어
mysql -u root -p < [filename].sql


-- mysql 내부에서 복구하는 명령어
-- use를 이용하여 db를 선택하지 않음
source [filename].sql




+ Recent posts