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

Doporučené postupy zálohování pro MySQL, MariaDB a Galera Cluster

Mnohokrát děkujeme všem, kteří se zaregistrovali a/nebo se zúčastnili úterního webináře o strategiích zálohování a osvědčených postupech pro clustery MySQL, MariaDB a Galera pod vedením Krzysztofa Książka, Senior Support Engineer ve společnosti Somenines. Pokud jste relaci zmeškali, chtěli byste se na ni podívat znovu nebo procházet snímky, jsou nyní online ke zhlédnutí. Podívejte se také na přepis relace Q&A níže.

Podívejte se na záznam webináře

Ať už jste SysAdmin, DBA nebo DevOps profesionál provozující clustery MySQL, MariaDB nebo Galera v produkci, měli byste se ujistit, že vaše zálohy jsou naplánovány, spouštěny a pravidelně testovány. Krzysztof včera sdílel některé ze svých klíčových tipů a triků osvědčených postupů, jak toho dosáhnout; včetně živé ukázky s ClusterControl. Stručně řečeno, tento záznam webináře vám ukáže výhody a nevýhody různých možností zálohování a pomůže vám vybrat tu, která nejlépe vyhovuje vašemu prostředí.

Šťastné zálohování!

Otázky a odpovědi

Otázka:Můžeme ovládat I/O při vytváření záloh pomocí mysqldump a mysqldumper (použil jsem již dříve, ale nepomohlo to).

Odpověď:Teoreticky by to mohlo být možné, i když jsme to ve skutečnosti netestovali. Pokud opravdu chcete použít nějaké omezování, možná se budete chtít podívat do cgroups – mělo by vám to pomoci omezit I/O aktivitu na základě jednotlivých procesů.

Otázka:Můžeme použít mydump s ClusterControl a je ClusterControl svobodný software?

Odpověď:V současné době to nepodporujeme, ale vždy jej můžete použít ručně; ClusterControl vám nebrání v používání tohoto nástroje. Existuje bezplatná komunitní verze ClusterControl, ano, i když její funkce zálohování jsou součástí komerční verze. S bezplatnou komunitní verzí můžete nasadit a monitorovat svou databázi (klastry) a také vyvíjet své vlastní databázové poradce. Máte také jednoměsíční zkušební období, které vám umožní přístup ke všem funkcím ClusterControl. Všechny podrobnosti o funkcích najdete zde:https://severalnines.com/pricing

Otázka:Může xtrabackup pracovat se šifrováním dat v klidu?

Odpověď:Může pracovat se zašifrovanými daty v MySQL nebo Percona Server - je to proto, že šifrují pouze tabulkové prostory, které xtrabackup pouze zkopíruje - nemusí přistupovat k obsahu tabulkových prostorů. MariaDB šifruje nejen tabulkové prostory, ale například i InnoDB redo logy, ke kterým musí xtrabackup přistupovat - xtrabackup tedy nemůže pracovat s šifrováním data-at-rest tak, jak je implementováno v MariaDB. Kvůli tomu MariaDB Corporation forkovala xtrabackup do MariaDB Backup. Tento nástroj podporuje šifrování prováděné MariaDB.

Otázka:Můžete použít mydump pro obnovení v určitém okamžiku?

Odpověď:Ano, je to možné. mydumper může ukládat data GTID, abyste mohli identifikovat poslední použitou transakci a použít je jako výchozí pozici pro zpracování binárních protokolů.

Otázka:Je problém, když používáme binární protokoly s xtrabackup s počátečním datem a časem ukončením namísto počáteční pozice a koncové pozice? V pátek provádíme úplnou zálohu a každý druhý den přírůstkovou zálohu. Když potřebujeme obnovit, vezmeme poslední úplné a všechny přírůstkové zálohy a binární protokoly od tohoto dne počínaje 00:00 až TEĎ... mohl by být problém s apply-log?

Odpověď:Obecně byste neměli používat --start-datetime nebo --end-datetime, když chcete odpovědět binárním logem na databázi. Není dostatečně podrobný – má rozlišení jedné sekundy a během této sekundy může proběhnout mnoho transakcí. Můžete jej použít k minimalizaci časového rámce pro ruční hledání, ale to je vše. Pokud chcete přehrát binární protokoly, měli byste použít --start-position a --end-position. Pouze to bude přesně definovat, ze které události budete přehrávat binlogy a na které události to skončí.

Otázka:Mám spustit software výpisu na nástroji pro vyrovnávání zatížení nebo na jednom z uzlů MySQL?

Odpověď:Obvykle jej použijete na MySQL uzlech. Některé nástroje umí jen to. Například Xtrabackup - musíte jej spustit lokálně, na hostiteli databáze. Výstup můžete streamovat do jiného umístění, ale musí být spuštěn lokálně.

Otázka:Můžeme pomocí ClusterControl provádět částečné zálohy? A pokud ano, jak můžeme obnovit zálohu na běžící instanci?

Odpověď:Ano, můžete provést částečnou zálohu pomocí ClusterControl (pomocí xtrabackup můžete zálohovat samostatné schéma), ale nyní nemůžete obnovit částečnou zálohu na běžící instanci. To je způsobeno skutečností, že schéma, které byste obnovili, nebude konzistentní se zbytkem clusteru. Aby to bylo konzistentní, musí být cluster bootstrapped z uzlu, na kterém obnovujete zálohu. Technicky tedy uzel běží neustále, ale je to poměrně těžká a invazivní operace. To se změní v další verzi ClusterControl, ve které budete moci obnovit zálohy na samostatném hostiteli. Z tohoto hostitele pak můžete vypsat obsah obnoveného schématu pomocí mysqldump (nebo mydumper) a obnovit jej v produkčním clusteru.

Q. Můžete prosím sdílet příkaz mysqldumper?

Odpověď:Je poměrně těžké odpovědět na tuto otázku bez kopírování a vkládání z dokumentace, takže si myslíme, že bude nejlepší, když vás odkážeme na dokumentaci:https://github.com/maxbube/mydumper/tree/ master/docs

Podívejte se na záznam webináře

Související whitepaper Příručka DevOps k zálohování databáze pro MySQL a MariaDBTato whitepaper pojednává o dvou nejoblíbenějších zálohovacích nástrojích dostupných pro MySQL a MariaDB, konkrétně mysqldump a Percona XtraBackup.Stáhnout
  1. Získejte jméno vlastníka DB v PostgreSql

  2. Hromadné vložení s SQLAlchemy ORM

  3. Vytvářejte fyzické zálohy databází MariaDB nebo MySQL

  4. Funkce MySQL TRUNCATE() – Zkrátí číslo na zadaný počet desetinných míst