Mysql
 sql >> база данни >  >> RDS >> Mysql

Възможно ли е да се направи N-master => 1-slave репликация с MySQL?

Мулти-главна репликация (подчинен с повече от един главен) не се поддържа от MySQL (освен MySQL Cluster). Можете да направите репликация главен-главен на кръгова (пръстенова) репликация (описана тук или тук ).

В Високопроизводителен MySQL 2-ро издание авторите описват начин за емулиране на мулти-главна репликация с помощта на умна комбинация от мастер-главна репликация и Blackhole механизъм за съхранение (Глава 8 Репликация> Топологии на репликация> Решения за персонализирана репликация> Емулиране на репликация с мултимастер стр. 373 - 375 ).

Те показват две вероятни топологии:

Използване на два съвместни главни устройства (позволяващо превключване на главния на подчинения от Главен 1 до Master 2 )

  • Господар 1: хостове DB1 и репликира DB2 от Master 2; машината за съхранение за всички таблици в DB2 се променя на Blackhole така че данните да не се съхраняват ефективно на Master 1 .
  • Господар 2: хостове DB2 и репликира DB1 отMaster 1; машината за съхранение за всички таблици в DB1 се променя на Blackhole така че данните да не се съхраняват ефективно на Master 2
  • Подчинен 1: репликира DB1 и DB2 от Master 1 или Master 2 (позволява превключване на мастер); резултатът е, че Slave 1 репликира и двете бази данни, които ефективно се хостват на две различни главни.

Използване на главна верига

  • Господар 1: само хостове DB1
  • Господар 2: хостове DB2 и репликира DB1 отMaster 1; машината за съхранение за всички таблици в DB1 се променя на Blackhole така че данните да не се съхраняват ефективно на Master 2
  • Подчинен 1: репликира DB1 и DB2 от Master 2; резултатът е, че Slave 1 репликира и двете бази данни, които ефективно се хостват на две различни главни.

Моля, обърнете внимание, че тази настройка ви позволява само да изпращате актуализации до DB1 чрез Master 1 и актуализации на DB2 към Master 2 . Вие не можете изпращайте актуализации на всяка таблица до произволни главни.

Може би е възможно да комбинирате описаното решение с хака за истинска репликация master-master (позволяваща актуализации и на двата master-а), която използва някакъв вид autoincrement-mangling и е описана тук или тук .



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. как да комбинирате таблици с релации 1 към много в 1 ред на запис

  2. MySql поддържа ли sp_getapplock

  3. Как да нулирате номера/колона с автоматично нарастване в MySql таблица

  4. синтактична грешка на DECLARE CURSOR FOR

  5. Nodejs Cluster с MySQL връзки