17.1.1.6 로우 데이터 파일을 사용하여 데이터 스냅 샷 생성
데이터베이스가 큰 경우 로우 데이터 파일을 복사하는 것이 mysqldump를 사용하여 각 슬레이브에서 파일을 가져올보다 효율이 높아지는 경우가 있습니다. 이 방법에서는 INSERT
문이 반복 될 때 인덱스 업데이트의 오버 헤드가 생략됩니다.
복잡한 캐시 또는 로깅 알고리즘을 가진 스토리지 엔진의 테이블에서이 방법을 사용하면 완전한 "시점"스냅 샷을 작성하기위한 추가 단계가 필요합니다. 글로벌 읽기 잠금을 획득 한 경우 첫 번째 복사 명령은 캐시 정보와 로깅 업데이트가 제외 될 수 있습니다. 스토리지 엔진이 이에 어떻게 반응하는지 그 충돌 복구 능력에 따라 다릅니다.
마스터와 슬레이브로 ft_stopword_file
, ft_min_word_len
또는 ft_max_word_len
값이 달리 전체 인덱스를 가진 테이블을 복사하는 경우에도이 방법이 제대로 작동하는 것은 아닙니다.
InnoDB
테이블을 사용하는 경우 MySQL Enterprise Backup 구성 요소에서 mysqlbackup 명령을 사용하여 일관된 스냅 샷을 만들 수 있습니다. 이 명령은 나중에 슬레이브로 사용하기 위해 스냅 샷에 대응하는 로그 명과 오프셋을 기록합니다. MySQL Enterprise Backup은 MySQL Enterprise 구독의 일부로 포함되는 제품입니다. 자세한 내용은 섹션 25.2 "MySQL Enterprise Backup" 을 참조하십시오.
또는 콜드 백업 기술을 사용하여 InnoDB
테이블의 신뢰할 수있는 바이너리 스냅 샷을 가져옵니다. MySQL Server의 슬로우 종료 를 실행 한 후 모든 데이터 파일을 복사합니다.
MyISAM
테이블의 로우 데이터 스냅 샷을 생성하려면 MySQL 데이터 파일을 단일 파일 시스템에 존재하는 조건에서 cp, copy와 같은 표준 복사 툴, scp, rsync와 같은 원격 복사 툴, zip, tar 등의 아카이브 도구 dump 등의 파일 시스템 스냅 샷 도구를 사용할 수 있습니다. 특정 데이터베이스 만 복제하면 그 테이블에 관련된 파일 만 복사합니다. ( InnoDB
의 경우 모든 데이터베이스의 모든 테이블은 innodb_file_per_table
옵션을 사용하는 경우를 제외하고는 system tablespace 파일에 저장됩니다.)
다음 파일은 명확하게 아카이브에서 제외하는 것이 좋습니다.
mysql
데이터베이스 관련 파일.(사용하는 경우) 마스터 정보 저장소 파일 ( 섹션 17.2.2 "복제 릴레이 및 상태 로그" 를 참조하십시오).
마스터의 바이너리 로그 파일.
릴레이 로그 파일.
로우 데이터 스냅 샷에서 가장 일관성있는 결과를 얻으려면 다음과 같이 과정에서 마스터 서버를 종료합니다.
읽기 잠금을 획득 마스터의 상태를 가져옵니다. 섹션 17.1.1.4 "복제 마스터 바이너리 로그 좌표 얻기" 를 참조하십시오.
개별 세션에서 마스터 서버를 종료합니다.
shell>
mysqladmin shutdown
MySQL 데이터 파일의 복사본을 만듭니다. 다음 예제에서는이를 수행하는 일반적인 방법을 보여줍니다. 이 중 하나를 선택해야합니다.
shell>
tar cf
shell>/tmp/db.tar
./data
zip -r
shell>/tmp/db.zip
./data
rsync --recursive
./data
/tmp/dbdata
마스터 서버를 다시 시작합니다.
InnoDB
테이블을 사용하지 않는 경우 다음 단계에 설명 된대로 서버를 종료하지 않고 마스터 시스템의 스냅 샷을 얻을 수 있습니다.
읽기 잠금을 획득 마스터의 상태를 가져옵니다. 섹션 17.1.1.4 "복제 마스터 바이너리 로그 좌표 얻기" 를 참조하십시오.
MySQL 데이터 파일의 복사본을 만듭니다. 다음 예제에서는이를 수행하는 일반적인 방법을 보여줍니다. 이 중 하나를 선택해야합니다.
shell>
tar cf
shell>/tmp/db.tar
./data
zip -r
shell>/tmp/db.zip
./data
rsync --recursive
./data
/tmp/dbdata
읽기 잠금을 획득 한 클라이언트에서 잠금을 해제합니다.
mysql>
UNLOCK TABLES;
데이터베이스의 보관이나 복사를 작성한 후 슬레이브 복제 프로세스를 시작하기 전에 각 슬레이브에 파일을 복사합니다.