MYSQL2012. 6. 22. 21:40

MYSQL 을 백업하는 방법은 2가지가 있습니다.

 

1.  파일 복사 하기 

- data 디렉토리의 파일을 별도의 장소에 복사 놓는 방법입니다.  

 

 ① mysql 의 데이타가 저장되는 장소를 알아야 됩니다.  

      windows에 mysql이 설치된 경우 mysql 이 설치된 폴더의 my.ini 에서 저장된 곳을 알아 낼 수 있습니다. 
      메모장을 이용해서 my.ini를 열어 보면

      #Path to the database root
       datadir="C:/Documents and Settings/All Users/Application Data/MySQL/MySQL Server 5.1/Data/"

      

      datadir 이 mysql DB 가 저장되어 있는 위치 입니다.  

 

 ②  위의 경우 datadir의 위치의 해당 데이타베이스의 폴더를 다른 곳에 복사해서 저장해 놓으면 됩니다.

 

  ※  datadir폴더에 보면 여러 파일들이 있는데 그 용도는 다음과 같습니다. 

       *.frm - 테이블 구조 *.MYD - 데이타 *.MYI - index

  ※ 운영체제별 mysql DB 저장되는 곳의 위치는 아래 링크를 참고하세요.  

       http://www.mkyong.com/mysql/where-does-mysql-stored-the-data-in-my-harddisk/ 

 

  ※  InnoDB의 경우 조금 더 복잡한 과정을 거쳐야 한다고 합니다.  더 알게 되면 포스팅 하겠습니다.

       http://dev.mysql.com/doc/refman/5.0/en/innodb-backup.html 

     http://feedtome.springnote.com/pages/546778

      http://dev.mysql.com/doc/refman/5.0/en/mysqldump.html#option_mysqldump_databases


2. mysqldump를 이용해 테이블과 데이타를 쿼리문으로 백업하기

 

① 서버의 전체 DB 백업 하기

 mysqldump -u계정 -p비밀번호 -A > 모든DB.sql

(예) mysqldump -uroot -ppassword -A > All_database.sql


 특정 DB 백업 하기 

     mysqldump -u계정 -p비밀번호 특정DB명 > 저장할파일명.sql

    (예) mysqldump -uroot -ppassword northwind > northwind.sql

 

 특정 DB 의 특정 Table 만 백업

     mysqldump -u계정 -p비밀번호 특정DB명 특정Table명  > 저장할파일명.sql

     (예) mysqldump -uroot -ppassword northwind orders > northwind_orders.sql
 

④ 특정 DB 의 스키마만 백업하기

     mysqldump -u계정 -p비밀번호 -d 특정DB명   > 저장할파일명.sql

    (예) mysqldump -uroot -ppassword -d northwind > northwind.sql

 

⑤  InnoDB에서 트리거 , 프로시져, 함수 포함하여 백업하기

   - 트리거는 default값으로 백업이 실행되나 저장 프로시져는 백업되지 않는다. 

   - 저장 프로시져가 백업되게 하기 위해서는 옵션에  --routines 을 넣어줘야 한다.

     mysqldump -u계정 -p비밀번호 --routines 특정DB명 > 함수프로시져트리거.sql

     (예) mysqldump -uroot -ppassword --routines  northwind > northwind.sql

 

     ※ 트리거 , 프로시져, 함수 만 백업하기 - 쿼리문만  

       mysqldump -u계정 -p비밀번호 --routines  --no-create-info --no-data --no-create-db --skip-opt

       특정DB명 > 함수프로시져트리거.sql 


    (예) mysqldump -uroot -ppassword --routines --no-create-info --no-data --no-create-db --skip-opt 

           northwind > northwind_only_sp_trigger_function.sql

           이렇게 트리커 프로시져 함수만 백업한 경우는 반드시 Data와 테이블 스키마를 별도로 백업 받아 줘야 합니다.  

[출처] mysql 백업하기|작성자 불가사리

Posted by 다오나무