Zálohy jsou velmi důležitou součástí vašich databázových operací, protože vaše podnikání musí být zabezpečeno, když dojde ke katastrofě. Až ten čas nastane (a přijde), váš cíl bodu obnovy (RPO) a cíl doby zotavení (RTO) by měly být předem definovány, protože tak rychle se můžete zotavit z incidentu, ke kterému došlo.
Většina organizací mění svůj přístup k zálohování a snaží se o kombinaci záloh obrazu serveru (snímků), logických a fyzických záloh. Tyto zálohy jsou pak uloženy na více místech, aby se předešlo místním nebo regionálním katastrofám. Znamená to také, že data lze obnovit v co nejkratším čase, čímž se vyhnete velkým prostojům, které mohou mít dopad na podnikání vaší společnosti.
Hostování databáze u poskytovatele cloudu, jako je Microsoft Azure (kterému se budeme věnovat v tomto blogu), není výjimkou, stále musíte připravit a definovat zásady obnovy po havárii.
Stejně jako jiné veřejné cloudové nabídky nabízí Microsoft Azure (Azure) přístup k zálohování, který je praktický, nákladově efektivní a navržený tak, aby vám poskytoval možnosti obnovy. Zálohovací řešení Microsoft Azure vám umožňují konfigurovat a provozovat a snadno se s nimi manipuluje pomocí jejich Azure Backup nebo prostřednictvím úložiště Restore Services (pokud svou databázi provozujete pomocí virtuálních počítačů).
Pokud chcete spravovanou databázi v cloudu, Azure nabízí Azure Database for MySQL. Toto by mělo být použito pouze v případě, že nechcete sami provozovat a spravovat databázi MySQL. Tato služba nabízí bohaté řešení zálohování, které vám umožní vytvořit zálohu instance databáze, a to buď z místní oblasti, nebo prostřednictvím geograficky redundantního umístění. To může být užitečné pro obnovu dat. Dokonce můžete být schopni obnovit uzel z určitého časového období, což je užitečné pro dosažení obnovení v určitém okamžiku. To lze provést jediným kliknutím.
V tomto blogu se budeme zabývat všemi těmito scénáři zálohování a obnovy pomocí databáze MySQL v cloudu Microsoft Azure.
Provádění záloh na virtuálním počítači v Azure
Microsoft Azure bohužel nenabízí řešení typu zálohování specifické pro MySQL (např. MySQL Enterprise Backup, Percona XtraBackup nebo MariaDB Mariabackup).
Po vytvoření vašeho virtuálního počítače (pomocí portálu) můžete nastavit proces zálohování vašeho virtuálního počítače pomocí trezoru Restore Services. To vás ochrání před jakýmkoli incidentem, katastrofou nebo katastrofou a uložená data jsou ve výchozím nastavení šifrována. Přidání šifrování je volitelné a ačkoli to Azure doporučuje, je to za cenu. Další podrobnosti najdete na jejich stránce Azure Backup Pricing.
Chcete-li vytvořit a nastavit zálohu, přejděte na levý panel a klikněte na Všechny zdroje → Výpočet → Virtuální počítač. Nyní nastavte požadované parametry v textových polích. Jakmile jste na této stránce, přejděte na kartu Správa a přejděte dolů. Uvidíte, jak můžete nastavit nebo vytvořit zálohu. Viz snímek obrazovky níže:
Potom nastavte zásady zálohování na základě vašich požadavků na zálohování. Jednoduše klikněte na odkaz Vytvořit nový v textovém poli Zásady zálohování a vytvořte novou zásadu. Viz níže:
Můžete nakonfigurovat zásady zálohování s uchováváním podle týdne, měsíce a roku .
Jakmile budete mít zálohování nakonfigurováno, můžete zkontrolovat, zda máte povolenou zálohu na konkrétním virtuálním počítači, který jste právě vytvořili. Viz snímek obrazovky níže:
Obnovte a obnovte svůj virtuální počítač v Azure
Návrh obnovení v Azure závisí na tom, jaký druh zásad a požadavků vaše aplikace vyžaduje. Záleží také na tom, zda RTO a RPO musí být nízké nebo neviditelné pro uživatele v případě incidentu nebo během údržby. Virtuální počítač můžete nastavit se sadou dostupnosti nebo v jiné zóně dostupnosti, abyste dosáhli vyšší rychlosti obnovy.
Můžete také nastavit zotavení po havárii pro váš virtuální počítač, abyste replikovali vaše virtuální počítače do jiné oblasti Azure pro potřeby kontinuity podnikání a zotavení po havárii. Pro vaši organizaci to však nemusí být dobrý nápad, protože to přináší vysoké náklady. Pokud je k dispozici, Azure vám nabízí možnost obnovit nebo vytvořit virtuální počítač z vytvořené zálohy.
Například během vytváření virtuálního počítače můžete přejít na kartu Disky a poté na Datové disky. Můžete vytvořit nebo připojit existující disk, kam můžete připojit snímek, který máte k dispozici. Podívejte se na níže uvedený snímek obrazovky, pro který si budete moci vybrat ze snímku nebo úložiště blob:
Můžete také obnovit v konkrétním okamžiku, stejně jako na snímku obrazovky níže:
Obnovení v Azure lze provést různými způsoby, ale používá to stejné zdroje, které jste již vytvořili.
Pokud jste například vytvořili snímek nebo bitovou kopii disku uloženou v objektu BLOB Azure Storage a vytvoříte nový virtuální počítač, můžete tento prostředek používat, pokud je kompatibilní a dostupný k použití. Kromě toho můžete být schopni provést obnovu souborů, kromě obnovení virtuálního počítače, jak je znázorněno na obrázku níže:
Během obnovy souboru si možná budete moci vybrat z konkrétního bodu obnovy a také si stáhněte skript pro procházení a obnovu souborů. To je velmi užitečné, když potřebujete pouze konkrétní soubor, ale ne celý systém nebo svazek disku.
Obnova ze zálohy na existujícím virtuálním počítači trvá asi tři minuty. Obnova ze zálohy pro vytvoření nového virtuálního počítače však trvá dvanáct minut. To však může záviset na velikosti vašeho virtuálního počítače a šířce pásma sítě dostupné v Azure. Dobrá věc je, že vám při obnově poskytne podrobnosti o tom, co bylo dokončeno a kolik času zbývá. Podívejte se například na níže uvedený snímek obrazovky:
Zálohy pro Azure Database For MySQL
Azure Database for MySQL je plně spravovaná databázová služba od Microsoft Azure. Tato služba nabízí velmi flexibilní a pohodlný způsob nastavení možností zálohování a obnovy.
Po vytvoření instance serveru MySQL můžete nastavit uchování záloh a vytvořit možnosti redundance záloh; buď lokálně redundantní (místní region) nebo geograficky redundantní (v jiném regionu). Azure vám poskytne odhadované náklady, které by vám byly účtovány za měsíc. Podívejte se na ukázkový snímek obrazovky níže:
Mějte na paměti, že geograficky redundantní možnosti zálohování jsou k dispozici pouze pro obecné účely a Memory Optimized typy výpočetních uzlů. Není k dispozici na základním výpočetním uzlu, ale můžete mít svou redundanci v místní oblasti (tj. v rámci dostupných zón dostupnosti).
Jakmile budete mít hlavní nastavení, je snadné vytvořit repliku tak, že přejdete do Azure Database for MySQL servers → Vyberte svou instanci MyQL → Replikace → a klikněte na Přidat repliku. Vaši repliku lze v případě potřeby použít jako zdroj nebo cíl obnovení.
Mějte na paměti, že když v Azure zastavíte replikaci mezi hlavním serverem a replikou, bude to navždy a nevratné, protože z repliky udělá samostatný server. Replika vytvořená pomocí Microsoft Azure je v ideálním případě spravovaná instance a můžete zastavit a spustit vlákna replikace stejně jako to, co děláte na normální replikaci master-slave. Můžete provést restart a to je vše. Pokud jste repliku vytvořili ručně, buď obnovením z hlavního serveru nebo zálohy (např. prostřednictvím obnovení v určitém okamžiku), budete moci zastavit/spustit vlákna replikace nebo nastavit zpoždění podřízeného zařízení, pokud to bude potřeba.
Obnovení databáze Azure pro MySQL ze zálohy
Obnovení je velmi snadné a rychlé pomocí Azure Portal. Stačí stisknout tlačítko obnovení pomocí uzlu instance MySQL a následovat uživatelské rozhraní, jak je znázorněno na obrázku níže:
Potom můžete vybrat časové období a vytvořit/vytvořit novou instanci na základě této zálohy zachycené:
Jakmile budete mít uzel k dispozici, nebude tento uzel replikou ještě mistr. Musíte to ručně nastavit pomocí jednoduchých kroků pomocí jejich dostupných uložených procedur:
CALL mysql.az_replication_change_master('<master_host>', '<master_user>', '<master_password>', 3306, '<master_log_file>', <master_log_pos>, '<master_ssl_ca>');
kde,
master_host:název hostitele hlavního serveru
master_user:uživatelské jméno pro hlavní server
master_password:heslo pro hlavní server
master_log_file:název binárního souboru protokolu ze spuštěného show master status
master_log_pos:pozice binárního protokolu ze spuštěné show master status
master_ssl_ca:Kontext certifikátu CA. Pokud nepoužíváte SSL, předejte prázdný řetězec.
Poté spouštění vláken MySQL je následující,
CALL mysql.az_replication_start;
nebo můžete vlákna replikace zastavit následovně
CALL mysql.az_replication_stop;
nebo můžete odebrat předlohu jako,
CALL mysql.az_replication_remove_master;
nebo přeskočte chyby vlákna SQL jako,
CALL mysql.az_replication_skip_counter;
Jak již bylo zmíněno dříve, když je replika vytvořena pomocí Microsoft Azure v rámci funkce Přidat repliku v rámci instance MySQL, tyto konkrétní uložené procedury nejsou dostupné. Procedura mysql.az_replication_restart však bude k dispozici, protože nemůžete zastavovat ani spouštět vlákna replikace spravované repliky Azure. Takže příklad, který jsme uvedli výše, byl obnoven z hlavního serveru, který bere plnou kopii hlavního serveru, ale funguje jako jeden uzel a potřebuje ruční nastavení, aby byl replikou stávajícího hlavního serveru.
Navíc, když máte ruční repliku, kterou jste nastavili, neuvidíte to v části Azure Database for MySQL servers → Vyberte svou instanci MyQL → Replikace, protože jste replikaci vytvořili nebo nastavili ručně. .
Alternativní cloudová a obnovovací řešení zálohování
Existují určité scénáře, kdy chcete mít úplný přístup při vytváření úplné zálohy databáze MySQL v cloudu. K tomu si můžete vytvořit svůj vlastní skript nebo použít open-source technologie. Pomocí nich můžete řídit, jak mají být data ve vaší databázi MySQL zálohována a jak přesně mají být uložena.
K vytvoření vlastní automatizace můžete také využít rozhraní příkazového řádku Azure (CLI). Můžete například vytvořit snímek pomocí následujícího příkazu s Azure CLI:
az snapshot create -g myResourceGroup -source "$osDiskId" --name osDisk-backup
nebo vytvořte repliku serveru MySQL pomocí následujícího příkazu:
az mysql server replica create --name mydemoreplicaserver --source-server mydemoserver --resource-group myresourcegroup
Alternativně můžete také využít podnikový nástroj, který nabízí způsoby, jak provést zálohu s možnostmi obnovení. Používání open source technologií nebo nástrojů třetích stran vyžaduje znalosti a dovednosti pro využití a vytvoření vlastní implementace. Zde je seznam, který můžete využít:
- ClusterControl - I když můžeme být trochu zaujatí, ClusterControl nabízí možnost spravovat fyzické a logické zálohy vaší databáze MySQL pomocí osvědčených open-source technologií (PXB, Mariabackup a mydumper). Podporuje databáze MySQL, Percona, MariaDB, Galera. Můžete snadno vytvořit naše zásady zálohování a ukládat zálohy databáze v libovolném cloudu (AWS, GCP nebo Azure). Upozorňujeme, že bezplatná verze ClusterControl nezahrnuje funkce zálohování.
- Snímky LVM - LVM můžete použít k pořízení snímku vašeho logického svazku. To platí pouze pro váš virtuální počítač, protože vyžaduje přístup k úložišti na úrovni bloků. Použití tohoto nástroje vyžaduje upozornění, protože může způsobit, že váš databázový uzel během zálohování přestane reagovat.
- Percona XtraBackup (PXB) - Open source technologie od Percona. Pomocí PXB můžete vytvořit fyzickou záložní kopii vaší databáze MySQL. Můžete také provést hot-backup pomocí PXB pro úložiště InnoDB, ale doporučuje se to spustit na podřízeném nebo nezatíženém serveru MySQL db. To platí pouze pro vaši instanci VM, protože vyžaduje binární nebo souborový přístup k samotnému databázovému serveru.
- Mariabackup - Stejně jako PXB, je to open-source technologie rozvětvená z PXB, ale je spravována MariaDB. Konkrétně, pokud vaše databáze používá MariaDB, měli byste použít Mariabackup, abyste se vyhnuli problémům s nekompatibilitou s tabulkovými prostory.
- mydump/myloader - Tyto zálohovací nástroje vytvářejí logické záložní kopie vaší databáze MySQL. Můžete to použít se svou databází Azure pro MySQL, i když jsem nezkoušel, jak je to úspěšné pro vaši proceduru zálohování a obnovy.
- mysqldump - je to nástroj pro logické zálohování, který je velmi užitečný, když potřebujete zálohovat a vypsat (nebo obnovit) konkrétní tabulku nebo databázi do jiné instance. Toto běžně používají správci databází, ale musíte věnovat pozornost místu na disku, protože logické záložní kopie jsou obrovské ve srovnání s fyzickými zálohami.
- Zálohování MySQL Enterprise - Poskytuje horké, online, neblokující zálohy na více platformách včetně Linuxu, Windows, Mac a Solaris. Není to bezplatný nástroj pro zálohování, ale nabízí mnoho funkcí.
- rsync - Je to rychlý a mimořádně všestranný nástroj pro kopírování souborů. Může kopírovat lokálně, do/z jiného hostitele přes libovolný vzdálený shell nebo do/ze vzdáleného démona rsync. Nabízí velké množství možností, které řídí každý aspekt jeho chování a umožňují velmi flexibilní specifikaci sady souborů ke kopírování. Většinou v systémech Linux je rsync instalován jako součást balíčku OS.