강좌
클라우드/리눅스에 관한 강좌입니다.
데이터베이스 분류

mysqldump로 백업시에 create table문을 생략하여 백업하기

작성자 정보

  • 관리자 작성
  • 작성일

컨텐츠 정보

본문

mysqldump로 백업시에 create table문을 생략하여 백업하기





 

MYSQL의 백업유틸리티인 mysqldump명령어로 백업을 하면 기본값으로 백업대상 데이터베이스의 스키마(테이블 구조)를 생성하는 “CREATE TABLE”문과 데이터를 입력하는 INSERT문이 백업 결과파일에 기본적으로 저장됩니다.   

 

 

 

 

이때 “CREATE TABLE”문을 생략하고 데이터를 입력하는 SQL문만을 저장해야하는 경우가 흔하지 않게 있습니다.   

 

 

 즉 데이터베이스의 스키마를 제외한 데이터복구 SQL문만을 백업하려면 mysqldump명령어 사용시에 -t옵션을 사용하시면 됩니다.   

 

 

 

 

사용하는 형식은 다음과 같습니다.   

 

 

 

 

사용형식 : mysqldump -u DB사용자명 -p -t  DB > 파일명

 

위의 형식에서 -t대신 --no-create-info를 사용할 수도 있습니다.   

 

 

 

 

아래의 예는 MYSQL sspark이라는 데이터베이스를 백업하여 sspark5.sql파일에 저장하는 예입니다.   

 

 

 이때 -t옵션을 사용하였기 때문에 sspark데이터베이스의 스키마생성 SQL문은 결과에서 제외하여 백업되었습니다.   

 

 

  즉 데이터를 생성하는 SQL문만을 결과파일에 저장하게 됩니다.   

 

 

 

 

[root@file bin]# pwd

/usr/local/mysql/bin

[root@file bin]#

[root@file bin]# ./mysqldump -u root -p -t sspark > sspark5.sql

Enter password: ********

[root@file bin]#

[root@file bin]# ls -l sspark5.sql

-rw-r--r--    1 root     root         4753  2 14 15:52 sspark5.sql

[root@file bin]#

 

아래는 위의 백업결과로 생성된 sspark5.sql파일의 예를 본 것입니다.   

 

 

  아래 파일을 보시면 mysqldump명령어로 백업하였을 때 기본적으로 생성되는 “CREATE TABLE”이라는 SQL문이 존재하지 않는다는 것을 알 수 있습니다.   

 

 

 이는 mysqldump명령어로 백업할 때에 -t옵션을 사용한 결과입니다.   

 

 

 

 

[root@file bin]# cat sspark5.sql

-- MySQL dump 9.08

--

-- Host: localhost    Database: temp_db2

---------------------------------------------------------

-- Server version       4.0.14

 

--

-- Dumping data for table 'Demo_Domain'

--

 

INSERT INTO Demo_Domain VALUES (1,'2000','.co.kr','2002/3/18','2004/3/18

','papa@superuser.co.kr','수퍼유저코리아','1','수퍼유저','www.2000.co.kr

','11000','2002/11/18','2002/11/18','');
…..
…..

 

이번예는 특정 데이터베이스의 실제 데이터들만을 복구하기 위한 백업방법으로 자주 사용되는 방법입니다.   

 

 

  다음 예는 이번 예와 반대로 데이터베이스 스키마만 백업하는 예입니다.   

 

 

 

관련자료

댓글 0
등록된 댓글이 없습니다.

공지사항


뉴스광장


  • 현재 회원수 :  60,032 명
  • 현재 강좌수 :  35,772 개
  • 현재 접속자 :  215 명