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

MySQL강좌32편: 데이터 백업시에 create table문을 생략하여 백업하기

작성자 정보

  • 관리자 작성
  • 작성일

컨텐츠 정보

본문

MySQL강좌32: 데이터 백업시에 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@sulinux bin]# pwd

/usr/local/mysql/bin

[root@sulinux bin]#

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

Enter password: ********

[root@sulinux bin]#

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

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

[root@sulinux bin]#

 

아래는 위의 백업결과로 생성된 sspark5.sql파일의 예를 본 것이다.  아래 파일을 보면 mysqldump명령어로 백업하였을 때 기본적으로 생성되는 “CREATE TABLE”이라는 SQL문이 존재하지 않는다는 것을 알 수 있다. 이는 mysqldump명령어로 백업할 때에 -t옵션을 사용한 결과이다.

 

[root@sulinux 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,156 명
  • 현재 강좌수 :  36,513 개
  • 현재 접속자 :  156 명