본문 바로가기

SERVER/mysql

[mysql] mysqldump command/option 정리

mysqldump command/option 정리


커맨드 : mysqldump [DB 접속 정보] [dump옵션] [dump 대상 옵션] > [dump file.sql]


모든 DB 및 stored procedure/function 덤프

mysqldump --single-transaction --routines --adll-databases -h IP -u user -ppasswd > dumpfilename.sql


db1,db2만 백업

mysqldump --single-transaction --databases db1 db2 -h IP -u user -ppasswd > mydump.sql


db1내에 table1,table2를 제외하고 덤프

mysqldump --single-transaction --databses db1 --ignore-table=db1.table1 --ignore-table=db1.table2 -h IP -u user -ppasswd > dump.sql


옵션 설명 

* --single-transaction

innoDB 스토리지 엔진을 사용해서 테이블 lock없이 일관된 덤프를 받을 수 있다.(단, transaction을 지원하는 table만 사용가능.)


* --flush-logs 

dump를 시작할 떄 binary log를 로테이션 시킨다.(증분 백업과 풀백업을 구분)


* --master-data

dump 파일의 헤더 부분에 CHANGE MASTER TO 구문을 포함시킴, slave서버 구축시 용의하다.

덤프 시작 시점에 Binary log 파일명, 위치 정보, 호스트 정보등을 포함시킨다.


* --opt | --skip-opt

(--add-drop-table, -- add-locks, --create-option, --disable-keys, --extended-insert,--lock-tables, --quick, --ser-charset)

여러 옵션들을 포함하고, 상세한 옵션으로 제어시에는 비활성화시키고 필요한것만 명시해서 사용.


* --quick

client의 메모리에 버퍼링하지 않고 파일이나, 화면에 출력. 이 옵션은 opt옵션에 포함되어 있어서 자동으로 활성화 


* --extended-insert

확장된 insert문장으로 데이터를 덤프해줘서 로드시 작업이 빠르다 .


* --add-drop-database

DROP DATABASE 명령을CRAETE DATABASE 문앞에 추가


* --add-drop-table

DROP DATABASE 명령을CRAETE TABLE 문앞에 추가


* --all-databases

현재 서버 내에 모든 데이터베이스를 덤프.


*--databases [database1][database2]

database1,database2 를 덤프 (덤프시 use database1, database  명령이 포함) 


* [database1]

use database1 명령어가 없어서 database 명을 사용자가 임의로 만들어서 로드가 용의

.

* [database1] [table1][table2]

각각의 table1,table2만 덤프.


*--no-create-db

CREATE DATABASE 명령어를 포함하지 않는다.


*--no-create-info(t)

덤프 파일에 CRAETE TABLE 명령을 포함치 않는다.


* --create-options

초기 테이블 생성시에 사용한 옵션들을 모두 포함해서 덤프.


* --no-data(d)

테이블 구조만 덤프


* --verbose(v)

dump 진행 상황에 대해 표시


* --result-file(r)

dump 진행 내용을 파일로 실시간 로그를 만들어 준다.