2013-03-27 2 views
3

필자는 최근에 DB 재 동기화를 수행하고 마스터에 DB를 덤프하기 전에 'RESET MASTER'를 발행하는 일반적인 관행에 관해 질문 할 필요가있다. .왜 mysql 슬레이브를 재 동기화 할 때 'reset master'를 발행 할까?

이 프로세스를 둘러싼 거의 모든 문서는 마스터에서 데이터베이스를 덤프하기 전에 '리셋 마스터'를 가지고 있습니다.

예 : 프로덕션 환경에서 https://stackoverflow.com/a/3229580/1570785

그러나, 이것은은 'MASTER 재설정'명령은 기존 바이너리 로그를 지 웁니다 주로하기 때문에 비생산적이 될 것으로 보인다. 따라서 복제가 손상된 동안 마스터에 문제가 발생하면 일치하지 않는/손상된 마스터 이 동기화되지 않은 슬레이브로 끝납니다.

처음부터이 프로세스를 수행해야한다는 점을 감안할 때 (즉, MySQL 복제에 문제가 발생했음을 감안할 때, 완전한 재해에서 복구하는 데 사용할 수있는 binlogs를 지우는 것은 현명한 방법이 아닙니다. 슬레이브를 재 동기화해야합니다.

나는 정말로 무엇을 묻고있다 : 나는 무엇을 놓쳤는가? 마스터로부터 덤프를 가져 오기 전에 'RESET MASTER'를 수행 할 유효한 이유가 있습니까?

답변

0

이것은 필요하지 않습니다. mysqldump를 사용하여 덤프를 생성하는 경우 다음 옵션을 추가하십시오. --single-transaction - innodb 테이블을 잠그지 않고 일관된 스냅 샷을 생성하지 않으려면. --master-data - 마스터의 바이너리 로그 위치를 추가하려면 해당 슬레이브가 복제를 시작해야합니다.