RSS구독하기:SUBSCRIBE TO RSS FEED
즐겨찾기추가:ADD FAVORITE
글쓰기:POST
관리자:ADMINISTRATOR

◘ MySQL 백업과 복구

 

 

▮ mysqldump


  mysqldump [옵션] db_name [table_name] > backup_filename

  mysqldump [옵션] --databases [옵션] db_name1, db_name2, .... > backup_filename

  mysqldump [옵션] --all-databases [옵션] > backup_filename

 

  [옵션]

     -A, --all-databases     : 모든 DB를 덤프

     --add-locks                : 덤프 전에 lock 덤프 후에 unlock

     --add-drop-table         : 덤프 이후에 출력물의 앞에 drop table 명령 추가 (복구 위해)

     -B, --databases          : 여러 DB를 동시에 덤프할 때 사용

     -f, --force                   : 에러를 무시

     -h, --host                   : 지정한 호스트의 데이터를 덤프

     -t                  : data만 덤프

     -d                 : 데이터를 제외하고 스키마만 덤프

     -p                 : 사용자의 암호를 지정

     -P                 : 포트번호 지정

     -u                 : 사용자명 지정

 

 

▮ Data만을 백업


  : LOAD DATA INFILE에서 사용한 파일의 경우 Data만 포함하는 것처럼 select 명령을 이용해서 Data만 포함된 형식으로 백업

 

   [문법]

       - SELECT column_name, output_type

        INTO OUTFILE '경로 및 파일명‘

        [FIELDS TERMINATED BY '종단문자‘]

        FROM table_name

        WHERE 조건구문 ;

 

ex) student table의 내용을 각 컬럼을 | 로 구분해서 성이 마씨인 학생만 ‘/root/student.dat'로 저장

 

 mysql> select *

       -> into outfile '/root/student.dat'

       -> fields terminated by '|'

       -> from student

       -> where sname like '마%';

 Query OK, 3 rows affected (0.00 sec)

  

 [root@linux /root]# cat student.dat

 012312|마량|남|3|물리|3.50

 013213|마초|남|2|화학|2.42

 013111|마대|남|1|생물|1.23
 
     

 ※ [= 외부 명령어]


     #  mysql -p -e "select * from school.student where sname like '마%';"

 

 

▮ 복구

  : 백업된 내용의 복구는 mysql 명령어나 mysqladmin 명령어를 사용함

 

  ex) root의 password가 12345인 상태에서 database1을 백업한 data.db라는 백업파일을 복구

 

   $ mysqladmin -u root -p12345 drop database1       // database1 삭제

   $ mysqladmin -u root -p12345 create database1   // database1 생성 

   $ mysql -u root -p12345 database1 < data.db        // data.db파일로 database1 복구

 ======================================================================================

백업파일을 생성할 위치로 이동한다.

 

MySQL 백업

mysqldump -u사용자명 -p패스워드 DB명 > 생성할 파일

 

예)

/usr/local/mysql/bin/mysqldump -uroot -p패스워드 system > backup.sql

 

가끔 한글이 깨져서 나올 때가 있다.

이럴 때는 character set 을 지정하여 백업파일을 만들면 된다.

 

예)

/usr/local/mysql/bin/mysqldump -uroot -p패스워드 system --default-character-set latin1 > backup.sql;

 

그럼 DB의 character set 은 어떻게 알까?

 

MySQL에 접속하신 다음 status 치면 된다.

 

...

Server characterset:    latin1
 Db     characterset:    latin1
 Client characterset:    latin1
 Conn.  characterset:    latin1
 ...

 

복구할때는

 

예)

mysqladmin -u root -p패스워드 create database명

mysql -u root -p패스워드 database명 < backup.sql

 

database 명을 지정하지 않고 전체를 다할 경우,,

 

-- 전체 백업
/usr/local/mysql/bin/mysqldump -u아이디 -p패스워드 --all-database > backup.sql

 

-- 전체 복원
/usr/local/mysql/bin/mysql -u아이디 -p패스워드 < backup.sql


 ==================================================================================


MySQL DUMP 백업 및 복원

 

백업/복구 모두 cmd모드에서 할것.

 

====백업====

 

1.cmd접속

-권한이 있는 계정으로 dump할것 .(보통 root계정)

 

2.명령어

-p[비밀번호]는 한칸 띄우지 말고 붙여서 할것.

 

3.저장위치를 파일명 앞에 적지않으면 현재 위치해 있는 폴더에 백업한다.

 

====복구====

 

1. Mysql 5.0 계정생성, 디비생성 참조.

-계정 및 계정에 권한을 주고 db까지 셋팅.

 

2.cmd접속

-권한이 있는 계정으로 dump할것 .(보통 root계정)

 

2.명령어(밑에)

-u[아이디] -p[비밀번호]는 한칸 띄우지 말고 붙여서 할것.

 

 

명령어

 

== 백업 ==


DB전체 덤프
mysqldump -u[아이디] -p[비밀번호] --all-databases > [저장될 파일명]

 

DB만 덤프
mysqldump -u[아이디] -p[비밀번호] [디비명] > [저장될 파일명]

 

테이블 구조만
mysqldump -u[아이디] -p[비밀번호] --no-data [디비명] [테이블명] > [저장될 파일명]

 

테이블구조를 제외한 데이터만 덤프
mysqldump -u[아이디] -p[비밀번호] --no-create [디비명] [테이블명] > [저장될 파일명]

 

==복구 ==


덤프파일을 이용한 복구
mysql -u[아이디] -p[암호][디비명] < [파일명]

 

패스워드 동시 입력시 복구 안되면
mysql -u[아이디] -p[공백][디비명] < [파일명]

2014/08/25 10:25 2014/08/25 10:25
http://zosel.net/trackback/157
ZOSEL:Too much is as bad as too little...!! 자공(子貢)이 공자에게 "사(師:子張의 이름)와 상(商:子夏의 이름)은 어느 쪽이 어집니까?" 하고 묻자, 공자는 "사는 지나치고 상은 미치지 못한다"고 대답하였다. "그럼 사가 낫단 말씀입니까?" 하고 반문하자, 공자는 "지나친 것은 미치지 못한 것과 같다(過猶不及)"고 말하였다.
Too much is as bad as too little...!! 자공(子貢)이 공자에게 "사(師:子張의 이름)와 상(商:子夏의 이름)은 어느 쪽이 어집니까?" 하고 묻자, 공자는 "사는 지나치고 상은 미치지 못한다"고 대답하였다. "그럼 사가 낫단 말씀입니까?" 하고 반문하자, 공자는 "지나친 것은 미치지 못한 것과 같다(過猶不及)"고 말하였다.
전체 (209)
리눅스시스템 (92)
윈도우시스템 (16)
프로그램 (7)
네트워크시스템 (7)
최근관심 (1)
«   2021/01   »
          1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31            
  1. Ugg Sito  2015
    Ugg Sito
  2. Ugg Online  2015
    Ugg Online
  3. Ugg Boots Outlet Italia  2015
    Ugg Boots Outlet Italia
  1. 2018/02 (1)
  2. 2017/03 (2)
  3. 2016/12 (2)