2012-12-18 4 views
1

둘 사이에 순환 복제가 설정된 2 개의 mysql 서버가 있습니다. 두 서버에서 슬레이브 상태 검사를 수행하면 모든 것이 정상임을 보여줍니다. 그러나 server1의 테이블에 대한 업데이트가 완료되면 server2는 즉시 동기화되지 않습니다. 때로는 몇 분 후에 동기화됩니다. 때로는 server2가 다시 시작될 때 mysqld가 동기화 된 후에 만 ​​동기화됩니다.MySQL 복제가 제대로 동기화되지 않습니다.

내가

에서 innodb_flush_log_at_trx_commit = 1

sync_binlog을이 = 내의 my.cnf 파일 1

.

아이디어가 있으십니까?

답변

1

sync-binlog이 주요한 용의자 일 수 있습니다. 충돌의 경우에 당신이 바이너리 로그에서 하나의 명령문 또는 거래에서 손실 때문에

MySQL Documntation on sync-binlog says

1의 값은 가장 안전한 선택입니다. 그러나 디스크가 배터리 백업 캐시를 사용하지 않는 한 동기화가 매우 빠릅니다.

나는 또한

[mysqld] 
innodb_flush_method=O_DIRECT 

내가 서버는 가상 CentOS는 서버가 앉아있다 DBA StackExchange

+0

에 대한 innodb_flush_method을 썼다 사용하는 것이 좋습니다 마스터

에 디스크 컨트롤러의 배터리를 확인 할 Windows Server 2008 호스트에서 실행됩니다. 따라서 전원이 꺼지더라도 가상 디스크가 어떻게 작동하는지 잘 모르겠습니다. – mmeyer2k

+0

지금 binlog 제안을 시도 중입니다 ... – mmeyer2k

+0

이것은 잘 작동하는 것 같습니다. 고맙습니다! – mmeyer2k

관련 문제