- 5.6 레퍼런스
- 의견
- 대형테이블이냐 아니냐에 따라 속성이 달라지기도 함(1.b 링크 참조)
--lock-all-tables, -x
모든 데이터 베이스에 걸쳐서 모든 테이블을 잠근다. 이것은 전체 덤프 주기에 대한 글로벌읽기 잠금을 통해 얻을 수 있다. 이 옵션은 자동으로 --single-transaction --lock-tables를 오프(Off)시킨다.--lock-tables, -l
덤프를 하기 전에 모든 테이블을 잠근다.MyISAM
테이블의 경우에는 동시 삽입을 허용하기 위해서 테이블을READ LOCAL
로 잠근다.InnoDB
및BDB
와 같은 트랜젝션이 되는 테이블의 경우, --single-transaction이 보다 좋은 옵션이 되는데, 그 이유는 이것은 테이블을 전혀 잠글 필요가 없기 때문이다.여러 개의 데이터 베이스를 덤프할 때에는, --lock-tables은 각각의 데이터 베이스에 대해서 테이블을 개별적으로 잠근다는 점을 알아두기 바란다. 따라서, 이 옵션은 덤프 파일에 있는 테이블이 데이터 베이스간에 논리적으로 일관성을 가지는 것에 대해서는 보장을 하지 않는다. 서로 다른 데이터 베이스에 있는 테이블들은 완벽하게 틀린 상태에서 덤프가 된다.--quick, -q
이 옵션은 대형 테이블을 덤프할 때 유용하다. 이것은 mysqldump로 하여금 테이블에 대한 열을 서버에서 한번에 한 열씩 추축하도록 만들고 추출한 열을 쓰기 전에 메모리에 버퍼링 하도록 만든다.
--single-transaction
이 옵션은 서버에서 데이터를 덤프하기 전에BEGIN
SQL 명령문을 실행한다. 이것은InnoDB
및BDB
와 같은 트랜젝션이 되는 테이블에서만 유용한데, 그 이유는 이것이BEGIN
이 다른 어플리케이션을 블러킹하지 않은 채로 입력될 때 데이터 베이스를 일관성 있게 담프하기 때문이다.이 옵션을 사용할 때, 여러분은InnoDB
테이블만이 일관성 있게 덤프된다는 점을 알고 있어야 한다. 예를 들면, 이 옵션을 사용할 때 덤프되는MyISAM
또는MEMORY
테이블은 상태가 변경될 수도 있다.--single-transaction 옵션과 --lock-tables 옵션은 상호 배타적인데(mutually exclusive), 그 이유는
LOCK TABLES
이 암묵적으로 실행되는 트랜젝션을 연기 시키기 때문이다.대형 테이블을 덤프하기 위해서는, 이 옵션을 –quick과 결합해서 사용한다.
- 대형테이블이냐 아니냐에 따라 속성이 달라지기도 함(1.b 링크 참조)
2번에 대해 상황에 따라 달라지겠지만 현재 추출된 최적의 옵션은 아래와 같다. (2017.03.30)
mysqldump -f --lock-all-tables --add-locks --all-databases -u root -p[띄어쓰기없이비밀번호입력] | gzip -9 > mysql.sql.gz
'데이터베이스 이야기 > MySQL' 카테고리의 다른 글
[MySQL] IFNULL 함수 (0) | 2019.05.09 |
---|---|
[MySQL] case 문 (0) | 2019.05.09 |
[MySQL] 날짜형 함수 EXTRACT (0) | 2019.05.09 |
[MySQL] UTC(GMT) 저장/전환 (0) | 2019.04.29 |
[MySQL ] dump적용 (리눅스) (0) | 2019.04.29 |
댓글