Autoincrement u MySQL Master-Master replikace

Technicka podpora
2016-05-01 22:38

V případě nasazení replikace MySQL typu master - master je nutné nastavit na každém serveru různé hodnoty pro auto_increment.
Pokud by byly oba servery ponechány ve výchozím nastavení, docházelo by ke kolizím:

Error ‘Duplicate entry ‘1’ for key ‘PRIMARY” on query (volaný SQL příkaz)

Tento problém řeší dvě direktivy v nastavení MySQL. První, auto_increment_offset udává počáteční hodnotu, ke které je přičítáno a auto_increment_increment udává, o kolik je jedním inkrementem přičteno. Jejich nastavení pak záleží na počtu replikovaných serverů, cílem je, aby nemohly na žádném z nich vzniknout záznamy s duplicitním ID.

Při správném nastavení a rovnoměrném vkládání záznamů na všechny master servery se při vzájemné replikaci nakonec automaticky inkrementovaná ID sejdou tak, že následují po jedné. Ale než se tak stane, budou v posloupnosti čísel záznamů trhliny, stejně tak, pokud jsou záznamy výhradně či převážně vkládány pouze na jeden server.

Je potřeba, aby s tímto webová aplikace počítala a nepředstavovalo to pro ní problém. Před nasazením replikace typu master - master je nutné toto zvážit a případně na to aplikace připravit.

Průměrné hodnocení: 0 (0 hlasů)

K tomuto záznamu nemůžete připojit komentář.