Чи може раб MySQL одночасно бути господарем?


17

Я переношу 2 сервери БД (Master & Slave) на два нові сервери DB (Master і Slave)

DB1 - Master (виробництво)

DB2 - раб (виробництво)

DB3 - новий майстер

DB4 - новий підлеглий

Наразі реплікація налаштована так:

DB1 -> DB2
DB3 -> DB4

Щоб копіювати дані про виробництво на нові сервери, я хотів би отримати їх «прикованими ромашками», щоб вони виглядали приблизно так:

DB1 -> DB2 -> DB3 -> DB4

Чи можливо це? Коли я запускаю show master status;DB2 (виробничий підлеглий), можливо, що бінлог ніколи не змінюється:

+ ------------------ + ---------- + -------------- + ---- -------------- +
| Файл | Посада | Binlog_Do_DB | Binlog_Ignore_DB |
+ ------------------ + ---------- + -------------- + ---- -------------- +
| mysql-bin.000020 | 98 | | |
+ ------------------ + ---------- + -------------- + ---- -------------- +

Я трохи розгублений, чому позиція бінарного файлу не змінюється в DB2, в ідеалі це буде головним для DB3.

Відповіді:


16

Бінлог на DB2не оновлювався оновленими оновленнями. Щоб Дейзі ланцюг реплікації, потрібно встановити log-slave-updatesв my.conf.

http://dev.mysql.com/doc/refman/5.1/uk/replication-options-slave.html#option_mysqld_log-slave-updates


Але потім ви записуєте журнали двічі, один раз у журнали ретрансляцій та один раз у файли бінлог. Чому б не копіювати з підлеглого за допомогою ретрансляційних журналів?
hpaknia

9

Так, можливо :) Це називається реплікацією "Master with Relay Slave", і в мережі є багато документів про це.

Я рекомендую вам ознайомитись з офіційною документацією тут .

Btw, також погляньте на ці слайди . У них є підказки щодо топологій реплікації.

Сподіваюсь, це допомагає.


3

так - ви можете обробляти ланцюги серверів mysql, навіть можете зробити кругову реплікацію з двома або більше машинами. просто пам’ятайте, щоб увімкнути бінлогінг на рабі, який також виконує функції головного.


1
Кругова реплікація неймовірно крихка. Це не радимо за більшості обставин.
Warner

@Warner - це був лише приклад ще складнішої установки реплікації.
pQd

Друзі не дозволяють друзям серверам mysql ланцюжок друзів.
sjas

@sjas, якщо у них немає дуже конкретної причини це зробити і зрозуміти потенційні наслідки розриву ланцюга.
pQd

Вибачте, але все ще ні. Комплекс завжди переслідує вас пізніше.
sjas

0

Так, можливо. Реально вам потрібен новий знімок DB2 для складання DB3. У той момент, якщо у вас хороша позиція, ви можете або використовувати, ніж для DB4, або зробити інший знімок DB3.

Не забудьте встановити унікальний server_idдля кожного сервера.

MySQL з високою продуктивністю - це відмінна книга для посилання на більш досконале адміністрування MySQL.


Наразі DB2 - це лише підлеглий, але це бінлогічне положення не змінюється ... Чи знаєте ви, чи це нормально?
mmattax

Ведений (DB2) оновлений головним, але положення бінарного файлу не змінюється, що я повинен перевірити?
mmattax

Так, я підтвердив, що я можу змінювати дані про DB1 і реплікуватись у DB2, але бінлогічна позиція DB2 однакова.
mmattax

Я думаю, що DB @ не реєструє
mmattax

0

Чому б просто не додати DB3 як новий підлеглий, а потім просувати його до управління, коли ви готові зробити комутатор? Це дасть вам тимчасові додаткові переваги, коли ви матимете декількох рабів, і скоротить або усуне час простою.


саме це я і роблю ...
mmattax
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.