sql >> Databáze >  >> RDS >> Mysql

Přehled replikace mezi clustery

V dnešní době je docela běžné mít databázi replikovanou na jiném serveru/datovém centru a v některých případech je to také nutnost. Existují různé důvody, proč replikovat databáze do zcela odděleného prostředí.

  • Migrujte do jiného datového centra.
  • Požadavky na upgrade (hardware/software).
  • Udržujte plně synchronizovaný operační systém na webu pro obnovu po havárii (DR), který může kdykoli převzít kontrolu
  • Udržujte podřízenou databázi jako součást levnějšího plánu DR.
  • Požadavky na geografickou polohu (data musí být místně v konkrétní zemi).
  • Mějte testovací prostředí.
  • Účel odstraňování problémů.
  • Databáze hlášení.

A tuto úlohu replikace lze provést různými způsoby:

  • Zálohování/obnovení :Zálohování produkční databáze a její obnovení na novém serveru/prostředí je klasický způsob, jak toho dosáhnout, ale je to také staromódní způsob, protože nebudete udržovat svá data aktuální a musíte čekat pro každý proces obnovy, pokud potřebujete nějaká aktuální data. Pokud máte cluster (master-slave, multi-master) a chcete-li jej znovu vytvořit, měli byste obnovit počáteční zálohu a poté znovu vytvořit zbytek uzlů, což může být časově náročný úkol.
  • Klonovat cluster :Je podobný předchozímu, ale proces zálohování a obnovy je pro celý cluster, nejen pro jeden konkrétní databázový server. Tímto způsobem můžete klonovat celý cluster ve stejné úloze a nemusíte znovu vytvářet zbytek uzlů ručně. Tato metoda má stále problém udržovat data mezi klony aktuální.
  • Replikace :Tento způsob zahrnuje možnost zálohování/obnovy, ale po počáteční obnově bude proces replikace udržovat vaše data synchronizovaná s hlavním uzlem. Tímto způsobem, pokud máte databázový cluster, musíte obnovit zálohu do jednoho uzlu a znovu vytvořit všechny uzly ručně.

V tomto blogu uvidíme novou funkci ClusterControl 1.7.4, která vám ke zlepšení tohoto úkolu umožňuje použít kombinaci metod, které jsme zmínili dříve.

Co je replikace mezi clustery?

Replikace mezi dvěma clustery není totéž jako rozšíření clusteru tak, aby běžel přes dvě datová centra. Při nastavování replikace mezi dvěma clustery máme ve skutečnosti 2 samostatné systémy, které mohou fungovat autonomně. Replikace se používá k jejich synchronizaci, takže podřízený systém má aktualizovaný stav a může převzít řízení.

Z ClusterControl 1.7.4 je možné vytvořit nový cluster přímým klonováním běžícího zdrojového clusteru nebo pomocí nedávné zálohy zdrojového clusteru.

Po klonování klastru budete mít Slave Cluster (SC) přijímající data a Master Cluster (MC) odesílající změny do slave.

ClusterControl podporuje replikaci z clusteru na cluster pro následující typy clusterů:

  • Percona XtraDB Cluster verze 5.6.xa novější.
  • MariaDB Galera Cluster verze 10.xa novější.
  • PostgreSQL 9.6 a novější.

Replikace clusteru do clusteru pro cluster Percona XtraDB / MariaDB Galera

U motorů založených na MySQL je k použití této funkce vyžadováno GTID a bude použita asynchronní replikace mezi hlavním a podřízeným clusterem.

K přípravě aktuálního clusteru na tuto úlohu je třeba provést několik akcí. Za prvé, alespoň jeden uzel v aktuálním clusteru musí mít povoleny binární protokoly. Poté musíte přidat záložního uživatele nakonfigurovaného v uzlu databáze do konfiguračního souboru ClusterControl, který bude použit pro úlohy správy. Všechny tyto akce lze provádět pomocí uživatelského rozhraní ClusterControl nebo CLI ClusterControl.

Nyní jste připraveni vytvořit replikaci Cluster-to-Cluster Percona XtraDB/MariaDB Galera. Po dokončení úlohy budete mít:

  • Jeden uzel v clusteru Slave se bude replikovat z jednoho uzlu v clusteru Master.
  • Replikace bude mezi clustery obousměrná.
  • Všechny uzly v clusteru Slave budou ve výchozím nastavení pouze pro čtení. Je možné zakázat příznak pouze pro čtení na uzlech jeden po druhém.
  • Aktivní-aktivní klastrování se doporučuje pouze v případě, že se aplikace dotýkají pouze nesouvisejících datových sad na jednom z klastrů, protože engine nenabízí žádnou detekci konfliktů ani řešení.

Z rozhraní ClusterControl UI i ClusterControl CLI budete moci:

  • Vytvořte tento replikační klastr.
  • Povolte konfiguraci Active-Active.
  • Změňte topologii clusteru.
  • Znovu sestavte replikační klastr.
  • Zastavit/Spustit slave replikaci.
  • Reset Replication Slave (implementováno pouze pomocí ClusterControl CLI atm).

Úvahy

  • Záložní uživatel musí být přidán ručně do konfiguračního souboru ClusterControl.
  • Záložní uživatelská pověření musí být stejná v aktuálním i novém clusteru.
  • Kořenové heslo MySQL zadané při vytváření Slave Clusteru musí být stejné jako heslo root použité v Master Clusteru.

Známá omezení

  • Automatické převzetí služeb při selhání zatím není podporováno. Pokud hlavní server selže, je odpovědností správce přepnout na jiný hlavní server.
  • Replikační podřízenou jednotku je možné „RESETOVAT“ pouze z CLI ClusterControl, protože ještě není implementována v uživatelském rozhraní ClusterControl.
  • Znovu sestavit je možné pouze cluster, který je v režimu pouze pro čtení. Všechny uzly v Clusteru musí být pouze pro čtení, aby se mohly počítat jako Cluster pouze pro čtení.

Replikace mezi clustery pro PostgreSQL

ClusterControl Cluster-to-Cluster Replication je podporována na PostgreSQL pomocí streamingové replikace.

Požadavek musí existovat server PostgreSQL s rolí ClusterControl 'master' a když nastavujete Slave Cluster, musí být pověření správce identické s Master Clusterem.

Nyní jste připraveni vytvořit replikaci PostgreSQL Cluster-to-Cluster. Po dokončení úlohy budete mít:

  • Jeden uzel v clusteru Slave se bude replikovat z jednoho uzlu v clusteru Master.
  • Replikace bude mezi clustery jednosměrná.
  • Uzel v clusteru Slave bude pouze pro čtení.

Z rozhraní ClusterControl UI i ClusterControl CLI budete moci:

  • Vytvořte tento replikační klastr.
  • Znovu sestavte replikační klastr.
  • Zastavit/Spustit slave replikaci.

Úvaha

  • Přihlašovací údaje správce musí být v hlavním a podřízeném clusteru totožné.

Známá omezení

  • Maximální velikost Slave Clusteru je jeden uzel.
  • Cluster Slave nelze připravit ze zálohy.
  • Změny topologie nejsou podporovány.
  • Podporována je pouze jednosměrná replikace.

Závěr

Pomocí této nové funkce ClusterControl nemusíte provádět každý krok k vytvoření replikace clusteru samostatně nebo ručně a v důsledku toho ušetříte čas a úsilí. Zkuste to!


  1. Další způsob zobrazení automatických aktualizací statistik

  2. Architektura Oracle E-Business Suite ve verzi 12.2

  3. MariaDB JSON_UNQUOTE() Vysvětleno

  4. Jak aktualizovat více sloupců v MySQL