mysqldump 클라이언트 유틸리티는 논리 백업(logical backup)을 수행한다. 원본 데이터베이스와 테이블을 재생할 수 있는 실행 가능한 SQL 문 세트를 생성한다. 백업 혹은 다른 SQL 서버로 전송하기 위해서 주로 사용한다. mysqldump는 SQL 문 외에도 CSV, XML, 기타 구분자를 가진 텍스트 형태로 출력 할 수 있다.
--single-transaction : 덤프를 실행하기 전에 트랜잭션을 수행한다. 이렇게 하면 전체 데이터베이스를 잠그지 않고도 일관된 덤프를 받을 수 있다. InnooDB 엔진에서만 사용 할 수 있다.
--lock-tables, -l : 덤프를 하기 전에 모든 테이블을 잠근다. 데이터베이스 별로 테이블을 잠그기 때문에, 여러 데이터베이스를 덤프하는 경우 일관성을 보장하지 않는다.
--lock-all-tables, -x : 모든 데이터베이스의 테이블을 잠근다. 이 옵션을 사용하면 --single-transaction, --lock-tables 를 오프(off)시킨다.
--no-create-db, -n : databases 또는 all-databases 옵션을 사용 할 경우 덤프에 CREATE DATABASE 명령이 들어간다. 이 옵션을 이용해서 CREATE DATABASE 명령을 무력화 시킬 수 있다.
--no-data, -d : 테이블의 데이터를 저장하지 않는다. 데이터베이스 스키마를 추출하고자 할 때 유용하게 사용 할 수 있다.
--single-transaction : 데이터를 덤프하기 전에 BEGIN SQL 문을 시작한다. InnoDB와 같은 트랜잭션을 지원하는 테이블을 덤프하기에 좋다. 이 옵션을 이용하면 애플리케이션 블락(block)없이 데이터를 덤프 할 수 있다. 덤프전에 transaction isolation level을 REPEATABLE READ상태로 변경한다. 즉 1. 아직 COMMIT 되지 않은 신뢰 할 수 없는 데이터는 읽지 않으며, 2. 한 트랜잭션에서 동일한 SELECT 쿼리에 대해서 결과가 동일하며, 3. 이전의 SELECT 쿼리 결과에 없던 row 가 생기지 않는다.
--flush-logs, -F : dump를 하는 시점에 binary log를 rotation 한다.
예제
특정 데이터베이스 백업
wiki 데이터베이스와 테이블, 데이터를 백업한다.
# mysqldump -u root -p wiki -h 172.17.0.2 > db.sql
Contents
mysqldump
사용 방법
DB 접속 옵션들
주요 옵션들
예제
특정 데이터베이스 백업
모든 데이터베이스 백업
스키마 백업
참고
논리백업과 물리백업
Recent Posts
Archive Posts
Tags