17.3.1.1 mysqldump를 사용하여 슬레이브 백업
mysqldump를 사용하여 데이터베이스의 복사본을 생성하여 MySQL Server의 다른 인스턴스에 정보를 가져올 수있는 형식으로 데이터베이스의 모든 데이터를 검색 할 수 있습니다 ( 섹션 4.5.4 "mysqldump - 데이터베이스 백업 프로그램" 을 참조하십시오). 정보의 형식이 SQL 문이기 때문에 긴급 데이터에 액세스 할 필요가있는 경우 파일을 실행중인 서버에 배포하고 적용하는 일도 간단하게 할 수 있습니다. 그러나 데이터 세트의 크기가 매우 큰 경우, mysqldump 실용적 않을 수 있습니다.
mysqldump를 사용하는 경우, 일관된 데이터 세트가 덤프에 포함되도록 슬레이브에 복제를 중지하고 덤프 프로세스를 시작하십시오.
슬레이브에서 요청 처리를 중지합니다. mysqladmin을 사용하여 슬레이브에 복제를 완전히 중단 할 수 있습니다.
shell>
mysqladmin stop-slave
이벤트 실행을 중지하기 위해 슬레이브 SQL 쓰레드만을 중지 할 수 있습니다.
shell>
mysql -e 'STOP SLAVE SQL_THREAD;'
따라서 슬레이브는 계속 마스터의 바이너리 로그에서 데이터 변경 이벤트를 받아, I / O 스레드를 사용하여 그들을 릴레이 로그에 저장할 수 있지만, 슬레이브는 이러한 이벤트를 실행하거나 데이터를 변경할 수 없습니다 . 바쁜 복제 환경에서 백업하는 동안 I / O 스레드의 실행을 허용하는 것으로, 슬레이브 SQL 쓰레드 다시 시작할 때 따라 붙는 프로세스의 속도가 향상 될 수 있습니다.
mysqldump를 실행하여 데이터베이스를 덤프합니다. 모든 데이터베이스를 덤프하고 덤프 데이터베이스를 선택할 수 있습니다. 예를 들어, 모든 데이터베이스를 덤프하려면 :
shell>
mysqldump --all-databases > fulldb.dump
덤프가 완료되면 슬레이브 작동을 재개합니다.
shell>
mysqladmin start-slave
앞의 예에서 로그인 자격 증명 (사용자 이름, 암호)를 명령에 추가하고 매일 자동으로 수행 할 수있는 프로세스를 스크립트에 번들 할 것을 권장합니다.
이 방법을 사용하는 경우, 슬레이브 복제 프로세스를 모니터하여 백업 시간이 마스터에서 이벤트에 슬레이브가 따라 잡을 능력에 영향을주지 않도록하십시오. 섹션 17.1.5.1 "복제 상태 확인" 을 참조하십시오. 슬레이브가 따라 가지 않으면 다른 슬레이브를 추가하여 백업 프로세스를 분산하는 것이 좋습니다. 이 시나리오의 구성 방법의 예는 섹션 17.3.4 "다른 데이터베이스를 다른 슬레이브에 복제" 를 참조하십시오.