슬레이브 서버를 다른 서버의 마스터로 만들기

슬레이브 서버를 다른 서버의 마스터로 만들기

서버 X, Y, Z라는 세 개의 서버가 있습니다.
X(innodb DB)에 기본 mysql DB가 있습니다.
이제 X에서 Y까지 Master-Slave를 만들었습니다. 여기에서는 모든 것이 잘 작동합니다.
이제 Y를 Z의 마스터로 설정합니다.
Z(세 번째 서버)에서 슬레이브 상태를 표시할 때

슬레이브 상태 표시\G
Slave_IO_State: 마스터가 이벤트를 보낼 때까지 기다리는 중
...
Slave_IO_Running: 예
Slave_SQL_Running: 예
...
Seconds_Behind_Master: 0

하지만 데이터가 동기화되지 않았고 Y에서 Z로 아무것도 이동되지 않았습니다. 원인이 무엇인지 알 수 있나요??
편집하다
서버 Y의 my.cnf에는 다음과 같은 conf가 있습니다.

로그-슬레이브 업데이트=ON
로그빈=mysql-bin

하지만 '%slave%'와 같은 쇼 변수에는

'%slave%'와 같은 변수를 표시합니다.
+---------------+--------+
| 변수명 | 가치 |
+---------------+--------+
| 초기화_슬레이브 | |
| 로그_슬레이브_업데이트 | 꺼짐 |
| 슬레이브_압축_프로토콜 | 꺼짐 |
| 슬레이브_exec_모드 | 엄격 |
| Slave_load_tmpdir | /tmp |
| Slave_net_timeout | 3600 |
| Slave_skip_errors | 꺼짐 |
| Slave_transaction_retries | 10 |
| sql_slave_skip_counter | |
+---------------+--------+

당신의 도움을 주셔서 감사합니다

답변1

Y를 시작했는지 확인하십시오.--로그-슬레이브-업데이트X에서 받은 업데이트가 Y에 의해 바이너리 로그에 기록되도록 하는 옵션입니다.


서버 Y의 my.cnf에는 다음과 같은 conf가 있습니다.

log-slave-updates=ON

스위치 값 대신 부울 값을 사용하십시오.

log-slave-updates=true

결과:

mysql> show global variables like '%slave%';
+---------------------------+--------+
| Variable_name             | Value  |
+---------------------------+--------+
| init_slave                |        |
| log_slave_updates         | ON     |
| slave_compressed_protocol | OFF    |
| slave_exec_mode           | STRICT |
| slave_load_tmpdir         | /tmp   |
| slave_net_timeout         | 3600   |
| slave_skip_errors         | OFF    |
| slave_transaction_retries | 10     |
| sql_slave_skip_counter    |        |
+---------------------------+--------+
9 rows in set (0.00 sec)

관련 정보