sql >> Databáze >  >> RDS >> MariaDB

Jak vytvořit klon vašeho databázového clusteru MySQL nebo PostgreSQL

Pokud spravujete produkční databázi, je vysoká pravděpodobnost, že jste svou databázi museli naklonovat na jiný než produkční server. Základní metodou vytvoření klonu je obnovení databáze z nedávné zálohy na jiný databázový server. Další metodou je replikace ze zdrojové databáze, zatímco je stále spuštěna, v takovém případě je důležité, aby původní databáze nebyla ovlivněna žádnou procedurou klonování.

Proč byste potřebovali klonovat databázi?

Klonovaný databázový cluster je užitečný v řadě scénářů:

  • Odstraňování problémů s klonovaným produkčním clusterem v bezpečí testovacího prostředí při provádění destruktivních operací s databází.
  • Test opravy/upgradu klonované databáze k ověření procesu upgradu před jeho aplikací na produkční cluster.
  • Ověřte zálohování a obnovu produkčního clusteru pomocí klonovaného clusteru.
  • Ověřte nebo otestujte nové aplikace na klonovaném produkčním clusteru, než je nasadíte do živého produkčního clusteru.
  • Rychle naklonujte databázi pro požadavky auditu nebo shody s informacemi, například do konce čtvrtletí nebo roku, kdy se obsah databáze nesmí měnit.
  • Databázi přehledů lze vytvářet v intervalech, aby se zabránilo změnám dat během generování přehledů.
  • Migrujte databázi na nové servery, nové prostředí nasazení nebo nové datové centrum.

Při provozování databázové infrastruktury v cloudu jsou náklady na vlastnictví hostitele (sdíleného nebo vyhrazeného virtuálního počítače) výrazně nižší ve srovnání s tradičním způsobem pronájmu prostoru v datovém centru nebo vlastnictvím fyzického serveru. Kromě toho lze většinu cloudového nasazení snadno automatizovat pomocí rozhraní API poskytovatele, klientského softwaru a skriptování. Proto může být klonování clusteru běžným způsobem, jak duplikovat vaše prostředí nasazení, například od vývojářů přes staging až po produkční nebo naopak.

Neviděli jsme, že by tuto funkci nabízel někdo na trhu, a proto je naší výsadou předvést, jak funguje s ClusterControl.

Klonování clusteru MySQL Galera

Jednou ze skvělých funkcí v ClusterControl je, že vám umožňuje rychle klonovat existující cluster MySQL Galera, takže máte přesnou kopii datové sady na druhém clusteru. ClusterControl provádí operaci klonování online, bez jakéhokoli zamykání nebo prostoje stávajícího clusteru. Je to jako operace škálování clusteru s tím rozdílem, že oba clustery jsou po dokončení synchronizace na sobě nezávislé. Klonovaný cluster nemusí nutně mít stejnou velikost clusteru jako stávající. Mohli bychom začít s jedním uzlovým clusterem a později jej rozšířit o více databázových uzlů.

V tomto příkladu máme cluster nazvaný „Staging“, který bychom chtěli naklonovat jako další cluster s názvem „Produkce“. Předpokladem je, že pracovní cluster již uložil potřebná data, která budou brzy uvedena do provozu. Produkční cluster se skládá z dalších 3 uzlů s produkčními specifikacemi.

Následující diagram shrnuje konečnou architekturu toho, čeho chceme dosáhnout:

První věc, kterou musíte udělat, je nastavit SSH bez hesla ze serveru ClusterControl na produkční servery. Na serveru ClusterControl spusťte následující:

$ whoami

root

$ ssh-copy-id [email protected]

$ ssh-copy-id [email protected]

$ ssh-copy-id [email protected]

Pokud budete vyzváni, zadejte heslo uživatele root cílového serveru.

V seznamu databázových clusterů ClusterControl klikněte na tlačítko Cluster Action a vyberte Clone Cluster. Zobrazí se následující průvodce:

Uveďte IP adresy nebo názvy hostitelů nového clusteru a ujistěte se, že získáte všechna zelená ikona zaškrtnutí vedle zadaného hostitele. Zelená ikona znamená, že ClusterControl se může připojit k hostiteli přes SSH bez hesla. Kliknutím na tlačítko "Clone Cluster" zahájíte nasazení.

Kroky nasazení jsou:

  1. Vytvořte nový cluster sestávající z jednoho uzlu.
  2. Synchronizujte nový jednouzlový cluster pomocí SST. Dárcem je jeden ze zdrojových serverů.
  3. Zbývající nové uzly se připojí ke clusteru poté, co bude dárce klonovaného clusteru synchronizován s clusterem.

Po dokončení bude nový cluster MySQL Galera uveden na řídicím panelu clusteru ClusterControl, jakmile bude úloha nasazení dokončena.

Všimněte si, že klonování clusteru klonuje pouze databázové servery, nikoli celý zásobník clusteru. To znamená, že další podpůrné komponenty související s clusterem, jako jsou load balancery, virtuální IP adresa, Galera arbitrator nebo asynchronní slave, nebudou ClusterControl klonovány. Pokud byste však chtěli klonovat jako přesnou kopii vaší stávající databázové infrastruktury, můžete toho dosáhnout pomocí ClusterControl tím, že tyto komponenty nasadíte samostatně po dokončení operace klonování databáze.

Vytvoření klastru databáze ze zálohy

Další podobnou funkcí, kterou nabízí ClusterControl, je „Vytvořit cluster ze zálohy“. Tato funkce je zavedena v ClusterControl 1.7.1, konkrétně pro clustery Galera Cluster a PostgreSQL, kde lze vytvořit nový cluster ze stávající zálohy. Na rozdíl od klonování klastrů tato operace nepřináší dodatečné zatížení zdrojového klastru s tím, že klonovaný klastr nebude v aktuálním stavu jako zdrojový klastr.

Abyste mohli vytvořit cluster ze zálohy, musíte mít vytvořenou funkční zálohu. Pro Galera Cluster jsou podporovány všechny metody zálohování, zatímco pro PostgreSQL není podporován pouze pgbackrest pro nové nasazení clusteru. Z ClusterControl lze zálohu snadno vytvořit nebo naplánovat pod ClusterControl -> Zálohy -> Vytvořit zálohu. Ze seznamu vytvořené zálohy klikněte na Obnovit zálohu, vyberte zálohu ze seznamu a z možnosti obnovení zvolte "Vytvořit cluster ze zálohy":

V tomto příkladu nasadíme nový cluster PostgreSQL Streaming Replication pro pracovní prostředí na základě stávající zálohy, kterou máme v produkčním clusteru. Následující diagram znázorňuje konečnou architekturu:

První věc, kterou musíte udělat, je nastavit SSH bez hesla ze serveru ClusterControl na produkční servery. Na serveru ClusterControl spusťte následující:

$ whoami

root

$ ssh-copy-id [email protected]

$ ssh-copy-id [email protected]

$ ssh-copy-id [email protected]

Když zvolíte Create Cluster From Backup, ClusterControl otevře dialogové okno průvodce nasazením, které vám pomůže s nastavením nového clusteru:

Z vybrané zálohy bude vytvořena nová instance PostgreSQL Streaming Replication, která bude použit jako základní datová sada pro nový cluster. Vybraná záloha musí být dostupná z uzlů v novém clusteru nebo musí být uložena v hostiteli ClusterControl.

Kliknutím na "Pokračovat" se otevře standardní průvodce nasazením databázového clusteru:

Upozorňujeme, že heslo uživatele root/admin pro tento cluster musí být stejné jako heslo správce/root PostgreSQL, které je součástí zálohy. Postupujte podle pokynů v průvodci konfigurací a ClusterControl poté proveďte nasazení v následujícím pořadí:

  1. Nainstalujte potřebný software a závislosti na všech uzlech PostgreSQL.
  2. Spusťte první uzel.
  3. Streamujte a obnovujte zálohu na prvním uzlu.
  4. Nakonfigurujte a přidejte zbytek uzlů.

Po dokončení bude nový klastr replikace PostgreSQL uveden na řídicím panelu klastru ClusterControl, jakmile bude úloha nasazení dokončena.

Závěr

ClusterControl vám umožňuje klonovat nebo kopírovat databázový cluster do více prostředí pouhým počtem kliknutí. Dnes si jej můžete zdarma stáhnout. Šťastné klonování!
  1. Jak mohu použít PDO k načtení pole výsledků v PHP?

  2. pgDash Alternatives - PostgreSQL Database Monitoring s ClusterControl

  3. OBJEDNAT PODLE DATA zobrazující nejdříve NULLS a poté nejnovější data

  4. Počítání počtu výskytů znaku v Oracle SQL