2011-05-16 4 views
2

데이터베이스에서 mysqldump를 시작한 다음 새 데이터로 새 테이블을 만든 경우이 테이블이 덤프됩니까? 동시성 동작은 무엇입니까?mysqldump 동시성

답변

1

음, 즉 Mysql Manual에서 확인되지 않습니다 :이 옵션은 덤핑 데이터 전에 서버에 START의 TRANSACTION SQL 문을 전송

- 단일 거래. InnoDB 및 BDB와 같은 트랜잭션 테이블이 인 경우에만 유용하며 데이터베이스가 일치하는 상태 ( )가 응용 프로그램을 차단하지 않고 BEGIN이 발행 된 시간 인 에 덤프합니다.

이 옵션을 사용하면 InnoDB 테이블 만이 일관된 상태로 덤프된다는 점에 유의해야합니다. 예제의 경우,이 옵션을 사용하는 동안 임의의 MyISAM 또는 MEMORY 테이블 을 덤프하면 상태가 계속 변경 될 수 있습니다.

- 단일 트랜잭션 덤프 과정에서 , 유효한 덤프 파일 (올바른 테이블 내용과 바이너리 로그 좌표), 다른 연결에 다음 문을 사용해서는 안 보장하는 동안 : ALTER TABLE 문을, CREATE TABLE, 드롭 테이블, 이름 테이블, 트렁크 테이블. 일관된 읽기는 그 문에서 고립되지 , 그래서 잘못된 내용 을 얻거나 실패 할 테이블을 내용을 검색 할 수 mysqldump에 의해 수행되는 선택을 일으킬 수 덤프하는 테이블에 그들의 를 사용합니다.

- 단일 트랜잭션 옵션 --lock-tables 옵션은 상호 독점 때문에 LOCK의 테이블 암시 적 노력으로 대기중인 트랜잭션을 발생합니다.

이 옵션은 MySQL 클러스터 테이블에서 지원되지 않습니다. 결과는 일 수 있으므로 엔진은 엔진이 READ_COMMITTED 트랜잭션 격리 레벨 만 지원한다는 사실 때문에 결과가 일치 할 수 없습니다. 대신 항상 NDB 백업 및 복원을 사용해야합니다.

큰 테이블을 덤프하려면 --single-transaction 옵션을 --quick과 결합해야합니다. 백업 할 경우

/라이브 DB를 이동, 당신은 고려해야한다 MySQL replication