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

MYSQL의 전체 데이터베이스 데이터 백업하기

작성자 정보

  • 관리자 작성
  • 작성일

컨텐츠 정보

본문

MYSQL의 전체 데이터베이스 데이터 백업하기




 

MYSQL의 모든 데이터베이스의 스키마와 데이터들을 전체 백업하는 방법에 대해서 알아보겠습니다.   

 

 

 앞의 예들에서는 특정 데이터베이스들에 대한 백업방법을 설명하였습니다.   

 

 

  서버관리자의 입장에서 본다면 개별적인 데이터베이스를 백업하여 저장하는 방법도 필요하겠지만 전체 데이터베이스를 한번에 백업해 두는 것이 매우 편리할 것입니다.   

 

 

 

 

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

 

 

 

 

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

 

위의 사용형식에서 보신바와 같이 --all-databases옵션을 사용하면 MYSQL의 모든 데이터베이스 데이터를 하나의 파일에 SQL문으로 백업을 하게 됩니다.   

 

 

 참고로 이 방법은 앞의 예에서 보았던 --databases옵션을 사용하여 모든 데이터베이스를 지정하는 것과 --all-databases와 동일하게 모든 데이터베이스 데이터를 하나의 파일에 백업할 수 있습니다.   

 

 

 

 

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

 

 

 

 

 

[root@file bin]# pwd

/usr/local/mysql/bin

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

Enter password: ********

[root@file bin]#

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

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

[root@file bin]#

 

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

 

 

 

 

위와 같이 --all-databases라는 옵션을 사용하여 백업된 파일에는 일반적인 백업파일과는 달리 “CREATE DATABASE”라는 SQL문과 “USE DB…”라는 SQL 문이 추가되어 저장되어 있습니다.   

 

 

  이것은 백업된 파일로 복구를 할 때에 원본 데이터베이스명과 동일한 데이터베이스를 생성하고 생성된 데이터베이스에 데이터를 복구하기 위한 것입니다.   

 

 

 

 

아래의 예는 위에서 백업된 ALLDATA.sql파일을 cat명령어로 살펴본 것입니다.   

 

 

 보시는 바와 같이 CREATE DATABASE문과 USE문이 추가되어 있는 것을 확인하실 수 있습니다.   

 

 

 

 

 

[root@file 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,033 명
  • 현재 강좌수 :  35,783 개
  • 현재 접속자 :  177 명