17.3.1.2 슬레이브에서 로우 데이터를 백업하기
복사되는 파일의 무결성을 보장하려면 MySQL 리플리케이션 슬레이브에서 로우 데이터 파일의 백업을 슬레이브 서버가 종료하는 동안 수행되어야합니다. MySQL 서버가 실행중인 경우, 백그라운드 작업이 데이터베이스 파일을 아직 업데이트 중 가능성이 있습니다 (특히 InnoDB
등의 스토리지 엔진을 백그라운드 프로세스에서 사용하는 것). InnoDB
의 경우 이러한 문제는 복구 시점에 해결해야하지만 백업 과정에서 마스터의 실행에 영향을주지 않고 슬레이브 서버를 종료 할 수 있기 때문에이 기능을 사용하는 것은 의미가 있습니다.
서버를 종료하고 파일을 백업하려면 :
슬레이브 MySQL 서버를 종료합니다.
shell>
mysqladmin shutdown
데이터 파일을 복사합니다. cp, tar, WinZip 등 사본 또는 아카이브에 적합한 유틸리티를 사용할 수 있습니다. 예를 들어, 데이터 디렉토리가 현재 디렉토리 아래의 경우 전체 디렉토리를 다음과 같이 보관할 수 있습니다.
shell>
tar cf /tmp/dbbackup.tar ./data
MySQL 서버를 다시 시작합니다. Unix의 경우 :
shell>
mysqld_safe &
Windows의 경우 :
C:\>
"C:\Program Files\MySQL\MySQL Server 5.6\bin\mysqld"
일반적으로 슬레이브 MySQL 서버의 데이터 디렉토리 전체를 백업하십시오. 데이터를 복원하여 그들을 노예로 운용 할 수있게하려면 (예를 들어, 노예 장애시), 슬레이브의 데이터뿐만 아니라, 슬레이브 상태 파일 마스터 정보 및 릴레이 로그 정보 저장소 및 릴레이 로그 파일을 백업하십시오 . 이러한 파일은 슬레이브의 데이터를 복원 한 후 복제를 다시 시작하기 위해 필요합니다.
릴레이 로그를 잃은 그러나 relay-log.info
파일이있는 경우이를 검사하여 SQL 쓰레드가 마스터 바이너리 로그에서 얼마나 실행되었는지를 확인할 수 있습니다. 그 때 MASTER_LOG_FILE
및 MASTER_LOG_POS
옵션 CHANGE MASTER TO
를 사용하여 그 지점에서 바이너리 로그를 다시 읽도록 슬레이브에 지시 할 수 있습니다. 여기에는 마스터 서버에 바이너리 로그가 남아 있어야합니다.
슬레이브가 LOAD DATA INFILE
명령문을 복제 할 때 슬레이브가이를 위해 사용하는 디렉토리 내에 존재하는 SQL_LOAD-*
파일도 백업하십시오. 노예 중단 된 LOAD DATA INFILE
조작의 복제를 재개하기 위해이 파일을 필요로합니다. 이 디렉토리의 위치는 --slave-load-tmpdir
옵션의 값입니다. 옵션으로 서버를 시작하지 않은 경우, 디렉토리 위치는 tmpdir
시스템 변수의 값입니다.