마스터포유(Master4U)
Monday, 17 of January
 

로그인 Category
mysql의 백업과 복구 (backup & restore)
관리자  2009-08-22 02:00:51 Hit:1928
링크 #1: http://kurapa.com/content-a6219_mysql

우선.. mysql을 접속합니다.
접속까지의 명령어는 기본 명령어 설명에 있으니 생략을;;

로그파일이 많이 쌓여서 디스크 용량이 부족한 경우 일단 로그파일을 지웁니다.

mysql>RESET MASTER

로그 파일은 XXX-bin.000001 같은 형식으로 쌓입니다.
위치는 디폴트로 설치했다면 /usr/local/mysql/var/에 있을 겁니다.
RESET MASTER를 입력하면 로그 파일들이 지워집니다.

백업을 하는 방법은 쉘에서 하는 법과 mysql내에서 하는법 두가지가 있습니다.

mysql내에서 백업하는 법

mysql>backup table <table1>[, table2, table3...] to ''/usr/local/backup'';

의 형식이구요. 물론 뾰족괄호같은건 입력하는거 아니구요 대괄호안은 여러 테이블 백업시 입력하는 겁니다. to다음은 저장할 디렉토리명입니다. 작은따옴표에 넣어서 입력하면 됩니다.
리스토어는

mysql>restore table <table1>[, table2, table3...] from ''/usr/local/backup'';

★쉘에서 백업하는 방법
mysqldump란 실행프로그램은 /usr/local/mysql/bin 에 있습니다.(물론 기본설치시)
그러므로 거기까지 들어가서 실행합니다.
mysqldump를 이용해서 백업을 하면 텍스트형태로 백업이 되기 때문에vi에서 열어서 볼 수 있습니다. DB생성, 테이블생성구조등이 나와있기 때문에 이용해서 다른 작업도 가능합니다.

전체 데이터베이스 백업하기
>./mysqldump -uroot -ppass -e --all-databases > /usr/local/backup/alldata.sql
데이터베이스 단위로 백업하기
>./mysqldump -uroot -ppass -e --databases db1 > /usr/local/backup/db1.sql

*옵션에서 e를 붙이는 이유는 extended-insert로 리스토어시 보다 빠르게 하기 위해 쿼리를 변형하는 옵션입니다.

리스토어 하기
>./mysql -uroot -ppass < /usr/local/backup/alldata.sql
innodb로 리스토어 하려면 alldata.sql을 vi로 열어서 Type=MyISAM부분을 삭제하면 자동으로 innodb로 저장됩니다.

물론 -u다음에 붙어있는 root는 mysql아이디이기 때문에 알맞는 아이디로 바꾸시구요 -p뒤에 있는 pass란 글자도 마찬가지..
-p라고만 입력하고 엔터를 치면 비밀번호를 물어봅니다. 그 때 비밀번호를 입력해줘두 됩니다.
본문인쇄본문메일발송
초보자를 위한「MySQL 백업·복구」강좌
DB정보와 테이블정보를 알수있는 방법
Copyright 1999-2019 Zeroboard / skin by ChanBi