18.6.6 Starting MySQL Cluster Replication (Single Replication Channel)
이 섹션에서는 하나의 복제 채널을 사용하는 MySQL Cluster 복제를 시작하기위한 절차의 개요에 대해 설명합니다.
이 명령을 실행하여 MySQL 복제 마스터 서버를 시작합니다.
shell
M
>mysqld --ndbcluster --server-id=
id
\--log-bin &
이전 문에서
id
는이 서버의 고유 ID입니다 ( 섹션 18.6.2 "MySQL Cluster 복제의 일반 요구 사항" 을 참조하십시오). 이것은 적절한 로깅 형식을 사용하는 바이너리 로깅을 활성화하여 서버의 mysqld 프로세스를 시작합니다.참고--binlog-format=MIXED
마스터를 시작할 수 있습니다. 이 경우 클러스터간에 복제 할 때 행 기반 복제가 자동으로 사용됩니다.STATEMENT
기반의 바이너리 로깅 MySQL Cluster 복제는 지원되지 않습니다 ( 섹션 18.6.2 "MySQL Cluster 복제의 일반 요구 사항" 을 참조하십시오).여기에서 같이 MySQL 복제 슬레이브 서버를 시작합니다.
shell
S
>mysqld --ndbcluster --server-id=
id
&여기에 표시된 명령에서
id
는 슬레이브 서버의 고유 ID입니다. 리플리케이션 슬레이브에서 로깅을 활성화 할 필요가 없습니다.참고복제를 즉시 시작하지 않으려면이 명령
--skip-slave-start
옵션을 사용하거나 슬레이브 서버의my.cnf
파일에skip-slave-start
를 포함해야합니다. 이 옵션을 사용하면 다음 4 단계에서 설명한대로 적절한START SLAVE
문이 발행 될 때까지 복제의 시작이 지연됩니다.마스터 서버의 복제 바이너리 로그와 슬레이브 서버와 동기화해야합니다. 지금까지 마스터 바이너리 로깅이 실행되고 있지 않은 경우 다음 문을 슬레이브로 실행합니다.
mysql
S
>CHANGE MASTER TO
->MASTER_LOG_FILE='',
->MASTER_LOG_POS=4;
이는 로그의 시작 지점에서 마스터의 바이너리 로그를 읽을 수 있도록 슬레이브에 지시합니다. 다른 방법으로, 즉 백업을 사용하여 마스터에서 데이터를로드하는 경우
MASTER_LOG_FILE
및MASTER_LOG_POS
에 사용할 적절한 값을 취득하는 방법 섹션 18.6.8 "MySQL Cluster 복제를 사용한 장애 조치 구현 " 을 참조하십시오.마지막으로, 리플리케이션 슬레이브에서 mysql 클라이언트에서이 명령을 실행하여 복제의 적용을 시작하도록 슬레이브에 지시해야합니다.
mysql
S
>START SLAVE;
그러면 복제 데이터의 마스터에서 슬레이브로 전송도 시작합니다.
다음 섹션에서 설명하는 방법과 유사한 방법으로 2 개의 복제 채널을 사용할 수 있습니다. 이 방법과 하나의 복제 채널을 사용하는 방법의 차이는 섹션 18.6.7 "2 개의 복제 채널을 사용하는 MySQL Cluster 복제" 에서 설명하고 있습니다.
일괄 업데이트를 사용하여 클러스터의 복제 성능을 향상시킬 수 있습니다. 슬레이브 mysqld 프로세스에서 slave_allow_batching
시스템 변수를 설정하여이를 수행 할 수 있습니다. 업데이트는 주로 받으면 즉시 적용됩니다. 그러나 일괄 처리를 사용하면 업데이트는 32K 바이트가 함께 적용되므로 특히 개별 업데이트가 비교적 작은 경우 처리량은 향상되지만, CPU 이용률은 감소하는 결과가되는 경우가 있습니다.
슬레이브의 일괄 처리는 시대마다 작동합니다. 여러 트랜잭션에 속하는 업데이트는 동일한 배치의 일환으로 보낼 수 있습니다.
모든 처리되지 않은 업데이트는 해당 업데이트의 합계가 32K 바이트 미만에도 시대의 마지막에 도달했을 때 적용됩니다.
일괄 처리는 실행시 켜거나 끌 수 있습니다. 실행시에이를 적용하기 위해 다음의 두 문장 중 하나를 사용할 수 있습니다.
SET GLOBAL slave_allow_batching = 1; SET GLOBAL slave_allow_batching = ON;
특정 일괄 처리에서 문제가 발생하면 (작용에 의해 올바르게 복제되도록 생각되지 않는 문) 노예 일괄 처리는 다음 문 중 하나를 사용하여 비활성화 할 수 있습니다.
SET GLOBAL slave_allow_batching = 0; SET GLOBAL slave_allow_batching = OFF;
현재 슬레이브의 일괄 처리가 적절한 SHOW VARIABLES
문에 의해 사용되고 있는지를 다음과 같이 확인할 수 있습니다.
mysql> SHOW VARIABLES LIKE 'slave%';
+---------------------------+-------+
| Variable_name | Value |
+---------------------------+-------+
| slave_allow_batching | ON |
| slave_compressed_protocol | OFF |
| slave_load_tmpdir | /tmp |
| slave_net_timeout | 3600 |
| slave_skip_errors | OFF |
| slave_transaction_retries | 10 |
+---------------------------+-------+
6 rows in set (0.00 sec)