2012-09-05 5 views
2

MYSQL 복제를 처음 사용했습니다. 그러나 나는 그것을 설정하는 법을 알고있다. (많은 책들과 다른 온라인 자원들 덕분에) 그러나 나는 그것이 정말로 낮은 수준에서 어떻게 작동 하는지를 이해할 필요가있다.MYSQL 복제가 실시간으로 작동합니까?

제 질문은 실시간으로 작동합니까? 또는 마스터와 슬레이브의 변경 사항 사이에 간격이 있는지 확인하십시오.

시나리오는 다음과 같습니다. 레코드가 마스터에 삽입되고 즉시 슬레이브에 삽입 된 다음 삽입이 완료되거나 마스터에 삽입되어 삽입이 완료된 후 변경 사항이 슬레이브에 복제됩니다 ?

내가 묻는 이유는 MS Sequel Server에 차이가 있음을 알고 있기 때문입니다. Sequel Server에는 Mirroring이라는 개념이 있습니다. 여기서 쿼리는 마스터에서 먼저 실행 된 다음 슬레이브에서 실행 된 다음 완료됩니다. 마스터에서 쿼리를 실행 한 다음 메시지가 슬레이브에 게시되고 (일반적으로 매우 빠르지 만 반드시 실시간으로는 필요하지 않음) 복제가 수행되며 해당 메시지를 구독하는 슬레이브는 동일한 쿼리를 실행합니다.

+1

중복 : http://stackoverflow.com/questions/1286233/mysql-replication-speed?rq=1 – Jocelyn

답변

1

MySQL에는 로그를 기반으로하는 다른 복제 메커니즘이 있습니다. 여기 MySQL official docs의 일부는 다음의 MySQL 서버간에

복제 이진 로깅 메커니즘에 기초한다. 마스터 (데이터베이스가 변경된 의 소스)로 작동하는 MySQL 인스턴스는 업데이트 및 변경 사항을 바이너리 로그에 "이벤트"로 기록합니다. 바이너리 로그의 정보는 기록중인 데이터베이스 변경 사항에 따라 서로 다른 로깅 형식으로 저장됩니다 ( ). 슬레이브는 마스터로부터 바이너리 로그를 읽도록 설정되고, 은 슬레이브의 로컬 데이터베이스에서 바이너리 로그의 이벤트를 실행한다.

1

기본적으로 MySQL 복제는 실시간으로 작동하지 않습니다. 거의 실시간 일 수 있지만 슬레이브 노드에있는 데이터는 셀 수 없습니다. 이는 기본적으로 복제가 비동기 복제이기 때문입니다. Galera와 같은 진정한 동기 복제를 목표로하는 신기술이 있습니다. MySQL에는 세미 동기화 (semi-sync)와 같은 새로운 복제 방법이있다. mysql을 포크로 달아 최적화 한 것뿐만 아니라 Galera에서 일했던 사람들도 있습니다.

https://dev.mysql.com/doc/refman/5.5/en/replication-semisync.html

http://codership.com/content/using-galera-cluster - 동기식 복제 엔진

http://www.percona.com/software/percona-xtradb-cluster - 갈레

https://mariadb.com/kb/en/what-is-mariadb-galera-cluster/ MariaDB의 구현 갈레의 Percona의 구현입니다.

관련 문제