강좌

HOME > 강좌 >
강좌| 리눅스 및 오픈소스에 관련된 강좌를 보실 수 있습니다.
 
mysqldump로 백업하기
조회 : 5,981  


mysqldump로  백업하기


mysqldump는  MySQL 백업 프로그램 이며 이는 MySQL에서 MySQL뿐만 아니라
다른 이기종 간의 SQL전달할때 역시 사용된다.

그리고 MySQL의 버전간 이동에도 유용하게 사용된다.

만약 단순히 백업 용도로 사용하기를 원한다면 mysqldump보다는 mysqlhotcopy가
보다 빠른 백업과 복원을 해준다 .

물론 백업 데이터를 어떻게 사용하느나에 따라 mysqldump가 보다 더유용하게 사용되기도하지만
이는 백업 사용 방법에따라 직접 결정해야한다.

 

1. mysqldump의 사용법에 대해 알아보자.

사용방법은 간단하다 .

mysqldump u<사용자 계정명> -p[사용자패스워드] [option] dbname [tablename]

위와 같이 사용하며  mysqldump에서 사용되는 옵션에 대해 알아보자

--skip-extended-insert
해당옵션은 MySQL덤프를 뜨는경우 VALUES뒤에 여러 개의 데어터셋이 붙어있는 다중열 신텍스 형태로
덤프 뜨지않아 구문어서 해당라인을 찾기가 용의

--allow-keywords
MySQL예약어와 동일한 필드명이 있을경우 복원시에 에러가 발생시
이옵션을 이용하여 덤프를 받으면 테이블명와 필드명에 ``해당 기호가 삽입되어 정상적으로 인식

--complet-insert -c
완전한 인서트문을 구성한다 .
 ex) insert into table_name(field1,field2) values(value1,value2)

--no-data
덤프시 데이터를 구성하지 말라는 옵션이다 .
이는 스키마 만 덤프를 받아 개발이나 구성서시 주로이용

--no-create-db
테이블 생성 쿼리를 구성하지 말라는 옵선

--quick, -q
대용량 데이타베이스를 덤프뜰때 유용
한번에 한열씩 축출하며 쓰기전에 메로리에 버퍼링을 하록 하는옵션

--xml -x
XML형태로 덤프 받을시 이용

--default-chareter-set
덤프받을시 지정하는게릭터셋으로 연결하여 덤프 받는 옵션
하지만 테이블의 언어셋을 변경하여 받아주지는않음.


실제 mysqldump의 옵션은 많지만 주로사용하는것만 기술하였다.

 

2. 간단한 사용법에 대해 알아보자

분명히 euc_kr 데이터가 쌓여있는데 덤프를 받으면 깨지는경우

     -  이는 MySQL 서버가 다른언어셋으로 구성되어 있어 이중으로 인코딩되어
        한글이나 다른언어들이 깨지는 현상이 발생한다 .
 이경우는 다음고 같이 덤프 받는다.

 mysqldump --default-chareter-set=euckr -u user -p  dbname > dbname.sql


버전이 달라  mysql디비가 인서트가안될경우
     - 메이져 버전이 다를경우 MySQL데이터베이스안의 user,db,hot등의 테이블 구조가 달라
       일반적으로 덤프를든경우  정상적으로 인서트되니않는다.
 이경우는 다음고 같이 덤프 받는다.

 mysqldump --complet-insert -u user -p  dbname > dbname.sql


예약어와 동일한 필드명 때문에 인서트가안될경우
     - 필드명으로 인식하기전에 예약어로 인식하여 에러를 발생시킨다.
 이경우는 다음고 같이 덤프 받는다.

 mysqldump --allow-keywords -u user -p  dbname > dbname.sql

 

보통 덤프를 받을때
 mysqldump --allow-keywords --default-chareter-set=euckr --skip-opt  -u user -p  dbname > dbname.sql
        위와 같은 형테로 받는다면 큰무리없이 복원이 가능할것이다.


 


[원글링크] : https://www.linux.co.kr/home2/board/subbs/board.php?bo_table=lecture&wr_id=1494


이 글을 트위터로 보내기 이 글을 페이스북으로 보내기 이 글을 미투데이로 보내기

 
이재석
본명 : 이재석
e-mail : locli앳superuser.co.kr
소속 : (주)수퍼유저코리아