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

Automatizujte nasazení vašeho MySQL nebo Postgres Cluster ze zálohy

ClusterControl 1.7.1 zavádí novou funkci nazvanou Create Cluster from Backup, která umožňuje nasadit nový cluster založený na MySQL nebo Postgres a obnovit v něm data ze zálohy. Tento příspěvek na blogu ukazuje, jak tato nová funkce funguje a jak může tento typ automatizace přinést zlepšení provozu vaší infrastruktury.

Představujeme:Vytvoření clusteru ze zálohy

Správa zálohování je nejoblíbenější funkcí našich uživatelů a právě jsme ji posunuli na další úroveň. Tato nová funkce zní jednoduše – ClusterControl 1.7.1 dokáže nasadit nový cluster ze stávající zálohy. K nasazení produkčního clusteru přímo ze zálohy je však zapotřebí více procedur a kontrol. Samotná obnova přichází s vlastními výzvami, jako jsou:

  • Úplné nebo částečné důsledky obnovení
  • Základní záloha a její pořadí přírůstkových záloh (pro přírůstkové zálohování)
  • Dešifrování zálohy (pokud je šifrováno)
  • Možnosti nástroje pro obnovení
  • Dekomprese (pokud je komprimována)
  • Zálohování streamování ze zdroje na cílový server
  • Využití místa na disku během obnovy a po ní
  • Hlášení o průběhu obnovy

Kombinací výše uvedeného se složitostí a opakovatelností úloh nasazení databázového klastru můžete ušetřit čas a snížit riziko při spouštění procedur náchylných k chybám. Nejtěžší částí z pohledu uživatele je vybrat, ze které zálohy se má obnovit. ClusterControl zvládne veškerou těžkou práci za scénou a po dokončení oznámí konečný výsledek.

Kroky jsou v zásadě jednoduché:

  1. Nastavte SSH bez hesla z uzlu ClusterControl na nové servery.
  2. Vyberte jednu logickou zálohu ze seznamu záloh nebo ji vytvořte v části Zálohy -> Vytvořit zálohu .
  3. Klikněte na Obnovit -> Vytvořit cluster ze zálohy a postupujte podle průvodce nasazením.

Tato funkce je v současné době speciálně vytvořena pro MySQL Galera Cluster a PostgreSQL. Zde je to, co byste viděli v uživatelském rozhraní po kliknutí na „Obnovit“ u existující zálohy:

Spodní možnost je to, co hledáme. Dále je souhrnný dialog o zvolené záloze před konfigurací nasazení:

Dále se zobrazí stejný průvodce nasazením databázového clusteru pro příslušný cluster (MySQL Galera Cluster nebo PostgreSQL) pro konfiguraci nového clusteru:

Pamatujte, že musíte zadat stejné uživatelské jméno a heslo root/admin databáze, jaké máte v záloze. Jinak by nasazení při spouštění prvního uzlu selhalo v polovině. Obecně budou procedury obnovy a nasazení probíhat v následujícím pořadí:

  1. Nainstalujte potřebný software a závislosti na všech databázových uzlech.
  2. Spusťte první uzel.
  3. Streamujte a obnovujte zálohu na prvním uzlu (s příznakem automatického restartu).
  4. Nakonfigurujte a přidejte zbytek uzlů.

Po dokončení úlohy bude pod řídicím panelem clusteru ClusterControl uveden nový databázový cluster.

Co tím můžete získat?

Jak je vysvětleno v následujících částech, existuje řada věcí, které by vám tato funkce mohla přinést užitek.

Otestujte svou datovou sadu za různých podmínek

Někdy se můžete divit, že nová verze databáze by fungovala nebo fungovala pro vaše databázové zatížení a testování je jediný způsob, jak to zjistit. Zde se tato funkce hodí. Umožňuje provádět testy a benchmark na mnoha zahrnutých proměnných, které by mohly ovlivnit stabilitu nebo výkon databáze, například základní hardware, verzi softwaru, dodavatele a zátěž databáze nebo aplikace.

Pro jednoduchý příklad je zde velké zlepšení provádění DDL mezi MySQL 5.6 a MySQL 5.7. Následující operace DROP na tabulce s 10 miliony řádků to vše dokazuje:

mysql-5.7> ALTER TABLE sbtest1 DROP COLUMN xx;
Query OK, 0 rows affected (1 min 58.12 sec)
mysql-5.6> ALTER TABLE sbtest1 DROP COLUMN xx;
Query OK, 0 rows affected (2 min 23.74 sec)

Porovnání s jiným clusterem nám ve skutečnosti umožňuje měřit zlepšení a zdůvodnit migraci.

Migrace databáze s logickým zálohováním

Logická záloha jako mysqldump a pg_dumpall je nejbezpečnější způsob upgradu, downgradu nebo migrace dat z jedné verze nebo dodavatele na jinou. K migraci databáze lze použít všechny logické zálohy. Kroky upgradu databáze jsou v zásadě jednoduché:

  1. Vytvořte (nebo naplánujte) logickou zálohu – mysqldump pro MySQL nebo pg_dumpall pro PostgreSQL
  2. Nastavte SSH bez hesla z uzlu ClusterControl na nové servery.
  3. Vyberte jednu vytvořenou logickou zálohu ze seznamu záloh.
  4. Klikněte na Obnovit -> Vytvořit cluster ze zálohy a postupujte podle průvodce nasazením.
  5. Ověřte obnovení dat na novém clusteru.
  6. Nasměrujte svou aplikaci na nový cluster.

Rychlejší celková doba obnovy clusteru

Představte si katastrofální selhání, které zabrání spuštění vašeho clusteru, jako je například selhání centralizovaného úložiště, které ovlivnilo všechny virtuální stroje, které se k němu připojily, můžete získat náhradní cluster téměř okamžitě (za předpokladu, že záložní soubory jsou uloženy mimo uzly databáze, které selhaly). s uvedením zřejmého). Tuto funkci lze automatizovat pomocí klienta s9s, kde můžete spustit úlohu prostřednictvím rozhraní příkazového řádku, například:

$ s9s cluster \
--create \
--cluster-type=postgresql \
--nodes="192.168.0.101?master;192.168.0.102?slave;192.168.0.103?slave" \
--provider-version=11 \
--db-admin=postgres \
--db-admin-passwd='s3cr3tP455' \
--os-user=root \
--os-key-file=/root/.ssh/id_rsa \
--cluster-name="PostgreSQL 9.6 - Test"
--backup-id=214 \
--log

Jedna věc, kterou je třeba při používání této funkce poznamenat, je použít stejné uživatelské jméno a heslo správce, jaké je uloženo v záloze. Také je nutné předem nakonfigurovat SSH bez hesla pro všechny databázové uzly. V opačném případě, pokud jej chcete konfigurovat interaktivně, stačí použít rozhraní webového uživatelského rozhraní.

Škálování prostřednictvím asynchronní replikace

Pro MySQL Galera Cluster má nově vytvořený cluster možnost škálování pomocí asynchronní replikace MySQL. Řekněme, že jsme již obnovili nový cluster v kanceláři na základě nejnovější zálohy z produkčního clusteru v datovém centru a rádi bychom, aby se kancelářský cluster nadále replikoval z produkčního clusteru, jak ukazuje následující diagram:

Propojení asynchronní replikace pak můžete nastavit následujícím způsobem:

  1. Vyberte jeden uzel v produkci a povolte binární protokolování (pokud je zakázáno). Přejděte na Uzly -> vyberte uzel -> Akce uzlů -> Povolit binární protokolování.

  2. Povolit binární protokolování na všech uzlech pro kancelářský cluster. Tato akce vyžaduje postupný restart, který bude proveden automaticky, pokud v rozbalovací nabídce "Uzel automatického restartu" zvolíte "Ano":

    V opačném případě můžete tuto operaci provést bez prostojů pomocí Spravovat -> Upgrade -> Průběžný restart (nebo ručně restartovat jeden uzel po druhém).

  3. Vytvořte uživatele replikace v produkčním clusteru pomocí Spravovat -> Schémata a uživatelé -> Uživatelé -> Vytvořit nového uživatele:

  4. Potom vyberte jeden uzel, který chcete replikovat do hlavního uzlu v produkčním klastru, a nastavte odkaz replikace:

    mysql> CHANGE MASTER master_host = 'prod-mysql1', master_user = 'slave', master_password = 'slavepassw0rd', master_auto_position = 1;
    mysql> START SLAVE;
  5. Ověřte, zda je replikace spuštěna:

    mysql> SHOW SLAVE STATUS\G
    Ujistěte se, že Slave_IO_Thread a Slave_SQL_thread hlásí 'Ano'. Cluster kanceláře by měl začít dohánět hlavní uzel, pokud zaostává.

To je pro tuto chvíli vše!


  1. RowGen v3 automatizuje generování testovacích dat databáze

  2. Oracle Database 21c

  3. Při hledání rychlého místního úložiště

  4. 1114 (HY000):Tabulka je plná