Fórum Root.cz

Hlavní témata => Server => Téma založeno: rusty333 19. 07. 2018, 09:31:54

Název: Replikace MySQL mezi různými verzemi
Přispěvatel: rusty333 19. 07. 2018, 09:31:54
Zdravím,
je problém když budu mít na mysql master-master replikace na rozdílných verzích? Konkrétně 5.7.16 a 5.7.22.
Je mi jasný že major release 5.6 a 5.7 kombinovat nelze, ale u tohoto jsem si říkal že by to nemuselo vadit.
Název: Re:mysql replikace verze
Přispěvatel: Pavel Rauš 19. 07. 2018, 10:47:07
I mezi různými verzemi to jednosměrně funguje - tedy typicky ze starší na novější. Někde v dokumentaci to je popsané. Ale master-master ne. Nicméně mrkněte na tu matici s kompatibilitou v dokumentaci.

Minor verze nevadí, ale changelogy bych před případným upgradem četl hodně důsledně. Best practice je samozřejmě mít tu verzi stejnou.

Docela by mě zajímal use-case. Zápis na oba nody stejně nebude fungovat dobře, na distribuci čtení stačí master-slave. A pokud je to failover, tak při switchnutí se stejně jedna ta replika většinou rozpadne.
Název: Re:mysql replikace verze
Přispěvatel: rusty333 19. 07. 2018, 12:05:37
Jde o failover. Zatím jsem to zkoušel v testovacím prostředí a replikace se nerozpadly, ale nevygeneroval jsem tam takový provoz jaký bude v produkci.

Název: Re:mysql replikace verze
Přispěvatel: dustin 19. 07. 2018, 12:24:44
Replikaci také používáme pro failover, ale master/slave a ještě si slave při přehození přepneme do read-only režimu, aby byla jistota, že do něj někdo/něco nedopatřením nezapíše.
Název: Re:mysql replikace verze
Přispěvatel: dustin 19. 07. 2018, 12:30:06
Vlastně je replikace  nakonfigurovaná master/master (vzájemně se aktualizují), aby se to nemuselo řešit při přehození, ale jeden je vždy zamčený na read-only.

Třetí instance pro zálohování/klonování dat pro vývoj/testování je slave, ale má dva mastery - při přehození se to samo začne replikovat z druhého stroje.

Používáme MariaDB, která má v GTID identifikaci stroje, takže se případné duplicitní transakce z obou strojů na zálohovacím slavu ignorují. To asi dělá mysql taky.
Název: Re:mysql replikace verze
Přispěvatel: Pavel Rauš 19. 07. 2018, 16:41:50
Jde o failover. Zatím jsem to zkoušel v testovacím prostředí a replikace se nerozpadly, ale nevygeneroval jsem tam takový provoz jaký bude v produkci.


Funguje to přesně do okamžiku, než to přepnete v situaci, kdy nemáte ty repliky synchronní ( což se u asynchronní replikace může stát poměrně snadno ). Když k tomu dojde, tak sice proběhne korektne failover, ale na serveru nebudete mít zcela aktuální data. První zápisovou operací nad tímto úložištěm to pak rozbijete a nebude možné udělat giveback -> bude nejprve potřeba udělat obnovu repliky.

Je to standardní problém, který ale nemá moc řešení a je nejjednodušší to prostě přijmout jako vlastnost. Doporučuju si ale tenhle scénář nacvičit nanečisto - dělat první pokus nad ostrými daty je řekněme hodně optimistické.

Robusnější řešení nabídne galera cluster, ale to chce 3 nody a mnohem víc zkušeností a znalostí. Pro Vaši potřebu asi zbytečný overkill.
Název: Re:Replikace MySQL mezi různými verzemi
Přispěvatel: rusty333 23. 07. 2018, 13:22:36
Rozbitou synchronizaci a obnovu jsem již podstoupil. Ok beru to jako vlastnost, ono přepínat se to nebude jednou do měsíce žejo...

Jak porostou požadavky na výkon databáze, přejdu na galera cluster. Počítám že mám tak rok čas na potřebnou přípravu. Děkuji