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

MySQL강좌26편: MYSQL의 전체 데이터베이스 데이터 백업하기

작성자 정보

  • 관리자 작성
  • 작성일

컨텐츠 정보

본문

MySQL강좌26: MYSQL의 전체 데이터베이스 데이터 백업하기

 

MYSQL의 모든 데이터베이스의 스키마와 데이터들을 전체 백업하는 방법에 대해서 알아보겠다. 앞의 예들에서는 특정데이터베이스들에 대한 백업방법을 설명하였다.  서버관리자의 입장에서 본다면 개별적인 데이터베이스를 백업하여 저장하는 방법도 필요하겠지만 전체 데이터베이스를 한번에 백업해두는 것이 매우 편리할 것이다.

 

MYSQL의 전체 데이터베이스를 백업하는 사용형식은 다음과 같다.

 

사용형식 : ./mysqldump -u root -p --all-databases > 파일명.sql

 

위의 사용형식에서 보면 알 수 있듯이 --all-databases옵션을 사용하면 MYSQL의 모든 데이터베이스 데이터를 하나의 파일에 SQL문으로 백업하게 된다. 참고로 이 방법은 앞의 예에서 보았던 --databases옵션을 사용하여 모든 데이터베이스를 지정하는 것과 --all-databases와 동일하게 모든 데이터베이스 데이터를 하나의 파일에 백업할 수 있다.

 

아래의 예는 현재 필자가 사용하고있는 리눅스 서버의 MYSQL에 저장되어있는 모든 데이터베이스와 데이터들을 ALLDATA.sql파일에 저장한 예이다.

 

[root@sulinux bin]# pwd

/usr/local/mysql/bin

[root@sulinux bin]#
[root@sulinux bin]# ./mysqldump -u root -p --all-databases > ALLDATA.sql

Enter password: ********

[root@sulinux bin]#

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

-rw-r--r--    1 root     root        14929  2 14 12:25 ALLDATA.sql

[root@sulinux bin]#

 

이렇게 백업이 된 ALLDATA.sql파일의 내용을 살펴보면 MYSQL의 관리데이터베이스인 mysql데이터베이스와 일반 데이터베이스들의 스키마(각 데이터베이스와 테이블구조)와 모든 데이터들이 SQL의 형태로 백업되어있다.

 

위와같이 --all-databases라는 옵션을 사용하여 백업된 파일에는 일반적인 백업파일과는 달리 “CREATE DATABASE”라는 SQL문과 “USE DB…”라는 SQL 문이 추가되어 저장되어 있다.  이것은 백업된 파일로 복구를 할 때에 원본 데이터베이스명과 동일한 데이터베이스를 생성하고 생성된 데이터베이스에 데이터를 복구하기 위한 것이다.

 

아래의 예는 위에서 백업된 ALLDATA.sql파일을 cat명령어로 살펴본 것이다. 보는 바와같이 CREATE DATABASE문과 USE문이 추가되어있는 것을 확인할 수 있다.

 

[root@sulinux bin]# cat ALLDATA.sql

-- MySQL dump 9.08

---- Host: localhost    Database:

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

-- Server version       4.0.14

--

-- Current Database: locli

--

CREATE DATABASE /*!32312 IF NOT EXISTS*/ locli;

 

USE locli;

--

-- Current Database: mysql

--

CREATE DATABASE /*!32312 IF NOT EXISTS*/ mysql;

 

USE mysql;
--

-- Table structure for table 'columns_priv'

--

CREATE TABLE columns_priv (

  Host char(60) binary NOT NULL default '',

  Db char(64) binary NOT NULL default '',

  User char(16) binary NOT NULL default '',

  Table_name char(64) binary NOT NULL default '',

  Column_name char(64) binary NOT NULL default '',

  Timestamp timestamp(14) NOT NULL,

  Column_priv set('Select','Insert','Update','References') NOT NULL default '',

  PRIMARY KEY  (Host,Db,User,Table_name,Column_name)

) TYPE=MyISAM COMMENT='Column privileges';

--

 

이 방법은 MYSQL의 재설치나 서버이전 및 정규백업의 경우에 사용되는 방법으로 필자도 자주 이용하는 방법이다.

 

 

 

관련자료

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

공지사항


뉴스광장


  • 현재 회원수 :  60,156 명
  • 현재 강좌수 :  36,513 개
  • 현재 접속자 :  280 명