18.6.2 MySQL Cluster 복제의 일반 요구 사항
복제 채널에는 복제 서버로 작동하는 2 대의 MySQL 서버 (마스터와 슬레이브에 각 1 대)가 필요합니다. 예를 들어, 2 개의 복제 채널을 가진 복제를 설정하는 경우 (중복성 예비 채널을 준비) 총 4 개의 복제 노드 (클러스터 당 2 개의 노드)입니다.
이 절 이후에서 설명하는 MySQL Cluster의 복제는 행 기반 복제에 의존하고 있습니다. 즉, 복제 마스터의 MySQL 서버는 섹션 18.6.6 "MySQL Cluster 복제의 시작 (복제 채널이 하나)" 에서 볼 수 있듯이 --binlog-format=ROW
또는 --binlog-format=MIXED
로 작동 있을 필요가 있습니다. 행 기반 복제의 일반적인 정보는 섹션 17.1.2 "복제 형식" 을 참조하십시오.
--binlog-format=STATEMENT
로 MySQL Cluster 복제를 사용하려고하면 마스터 ndb_binlog_index
테이블 및 슬레이브 ndb_apply_status
테이블의 epoch
컬럼이 갱신되지 않기 때문에 복제가 제대로 작동하지 않습니다 ( 섹션 18.6.4 "MySQL Cluster 복제 스키마 및 테이블 " 을 참조하십시오). 대신 복제 마스터로 동작하는 MySQL 서버의 업데이트 만 슬레이브로 전파되고 마스터 클러스터의 다른 SQL 노드에서의 업데이트는 복제되지 않습니다.
MySQL Cluster NDB 7.3 --binlog-format
옵션의 기본값은 MIXED
입니다.
어느 클러스터의 복제에 사용되는 각 MySQL 서버는 어느 클러스터에 참여하는 MySQL 복제 서버에서 고유하게 식별해야합니다 (마스터 및 슬레이브 클러스터의 복제 서버 동일한 ID를 공유 할 수 없습니다). 이것은 --server-id=
옵션을 사용하여 각 SQL 노드를 시작하고 실행할 수 있습니다. 여기서 id
id
는 고유의 정수입니다. 필수는 아니지만 여기에서는 모든 MySQL Cluster 바이너리는 동일한 릴리스 버전의 바이너리 인 것으로합니다.
MySQL 복제는 일반적으로 사용하는 복제 프로토콜 및 서버에서 지원하는 SQL 기능 세트의 두 버전에 관여하는 두 MySQL 서버 (mysqld 프로세스)에 호환되어야합니다 ( 섹션 17.4.2 "MySQL 버전 간의 복제 호환성 " 을 참조하십시오). 이것은 MySQL Cluster 바이너리와 MySQL Server 5.6 배포판의 이진의 차이점은 MySQL Cluster의 복제는 모두 mysqld 바이너리를 MySQL Cluster 배포판의 바이너리한다는 추가 요구 사항이 있기 때문입니다. mysqld 서버의 호환성을 확보하는 가장 간단하고 쉬운 방법은 마스터와 슬레이브의 모든 mysqld 바이너리 동일한 MySQL Cluster의 배포판을 사용하는 것입니다.
슬레이브 서버 또는 클러스터 마스터 복제 전용이며 다른 데이터가 저장되지 않은 것으로합니다.
문 기반 복제를 사용하면 MySQL Cluster를 복제 할 수 있습니다. 그러나이 경우 다음과 같은 제한이 적용됩니다.
마스터로 작동하는 클러스터에서 데이터 행에 대한 모든 업데이트가 하나의 MySQL 서버에서 수행해야합니다.
동시에 여러 개의 MySQL 복제 프로세스를 사용하여 클러스터를 복제 할 수 없습니다.
SQL 레벨에서 변경된 내용 만 복사됩니다.
이들은 행 기반 복제와 대조적으로, 문 기반 복제의 기타 제한 사항에 추가됩니다. 2 개의 복제 형식 간의 차이점에 대한 자세한 내용은 섹션 17.1.2.1 "문 기반 및 열 기반 리플리케이션의 장점과 단점" 을 참조하십시오.