Obnova po havárii se nedokončí bez správného zálohovacího systému. Když se stane něco špatného, data lze obnovit pomocí zálohy nejlépe s nejnovější. Možná se budeme chtít vyhnout obnovování neaktualizovaných dat. Pravděpodobně ve staré záloze chybí nějaké informace. To je důvod, proč je v dnešní době pro většinu systémů klíčová dobrá praxe zálohování.
MongoDB je rok od roku populárnější. Mnoho společností začalo používat MongoDB jako jednu ze svých databází. Jednou z funkcí a pravděpodobně důvodem, proč je MongoDB populární, je jeho rychlost a MongoDB je snadno škálovatelný. MongoDB je jednou z podporovaných databází v ClusterControl. Pomocí ClusterControl můžete nasadit, importovat, škálovat a dokonce provádět zálohování. V tomto příspěvku na blogu si projdeme funkci Advanced Backup pro sadu replik MongoDB a sdílený cluster.
Typy záloh MongoDB
MongoDB podporuje logické i fyzické zálohování. Kromě toho MongoDB také podporuje Point In Time Recovery (PITR). Podívejme se, jaký je rozdíl mezi všemi 3 typy zálohování.
Logická záloha | mongodump | Tento nástroj vytvoří binární export obsahu databáze. Nejen to, mongodump mohl exportovat data z instancí mongod nebo mongos, může exportovat data ze samostatných nasazení, sady replik a sdílených clusterů |
Fyzická záloha | NE | Fyzické zálohování v MongoDB lze provádět pouze na systémové úrovni. V současné době není v ClusterControl k dispozici žádná fyzická záloha. Fyzické zálohování funguje tak, že se vytvoří snímek na LVM nebo úložném zařízení. |
PITR | Záloha Percona pro MongoDB | Percona Backup pro MongoDB zděděný z a nahrazuje mongodb_consistent_backup, který je již zastaralý. Je to distribuované řešení s nízkým dopadem pro dosažení konzistentních záloh jak pro MongoDB sharded clustery, tak pro sady replik. Tento typ zálohy je logický, ale zároveň by mohl fungovat jako záloha PITR. |
Teď, když víme, jaký je rozdíl mezi typem zálohy.
Správa zálohování MongoDB
ClusterControl vám umožňuje vytvářet zálohy v reálném čase a také je naplánovat podle požadovaného plánu. Jedna věc, která stojí za zmínku, v případě, že byste chtěli naplánovat, ClusterControl použije časové pásmo UTC. Musíte si tedy vybrat správný čas, který vyhovuje vašemu časovému pásmu, aby plán běžel v méně vytíženém čase.
Pojďme do toho a zkusme použít funkci zálohování v ClusterControl. Kromě toho si také projdeme jednu z pokročilých funkcí, kterou je nahrání zálohy do cloudu. Počínaje ClusterControl 1.9.0 podporuje MongoDB cloudové nahrávání, které vám umožňuje nahrát zálohu k preferovanému poskytovateli cloudového úložiště.
Logická záloha MongoDB
Začněme logickým zálohováním. Než bude možné použít funkci nahrání zálohy do cloudu, musíte ji integrovat s preferovaným poskytovatelem cloudu. V našem případě jej integrujeme s cloudem AWS. Chcete-li provést úplnou integraci AWS, můžete postupovat podle následujících kroků:
-
Použijte e-mailovou adresu a heslo svého účtu AWS k přihlášení do konzoly pro správu AWS jako uživatel root účtu AWS .
-
Na stránce IAM Dashboard vyberte v navigační liště název svého účtu a poté zvolte Moje bezpečnostní pověření.
-
Pokud se zobrazí varování o přístupu k přihlašovacím údajům zabezpečení pro váš účet AWS, zvolte možnost Pokračovat na přihlašovací údaje zabezpečení.
-
Rozbalte část Přístupové klíče (ID přístupového klíče a tajný přístupový klíč).
-
Vyberte Vytvořit nový přístupový klíč. Poté zvolte Stáhnout soubor klíče pro uložení ID přístupového klíče a tajného přístupového klíče do souboru ve vašem počítači. Po zavření dialogového okna nemůžete tento tajný přístupový klíč znovu získat.
Za předpokladu, že již máte připravený cluster MongoDB, zahájíme proces zálohování. Nejprve přejděte do clusteru MongoDB -> Záloha -> Vytvořit zálohu
Na další stránce můžete zadat, zda chcete povolit šifrování nebo ne. Pro šifrování použije ClusterControl OpenSSL k šifrování zálohy pomocí algoritmu AES-256 CBC. Šifrování probíhá na záložním uzlu. Pokud se rozhodnete uložit zálohu v uzlu řadiče, budou záložní soubory streamovány v zašifrovaném formátu přes socat nebo netcat. Šifrování je považováno za jednu z pokročilých funkcí zálohování, kterou lze využít, takže v našem případě tuto možnost povolíme. Na této stránce můžete také definovat dobu uchování zálohy. V našem případě použijeme výchozí nastavení 31 dní.
Na třetí stránce je třeba zadat přihlašovací údaje poskytovatele cloudu , vyberte/vytvořte kbelík. Můžete také určit uchování pro zálohu v cloudu, výchozí nastavení je 180 dní.
Jakmile kliknete na tlačítko Vytvořit zálohu, úloha se okamžitě spustí a bude to chvíli trvat v závislosti na velikosti vaší databáze. Zároveň se záloha nahraje do cloudového úložiště (AWS). Po dokončení zálohování si můžete všimnout, že ikony „klíč“ a „cloud“ jsou zvýrazněny následovně:
Nyní, když máte zálohu připravenou, chcete zálohu obnovit velmi jednoduché. Jediné, co musíte udělat, je kliknout na odkaz „Obnovit“ a kliknout na tlačítko „Dokončit“ na stránce obnovení, jako je následující:
Záloha MongoDB PITR
Jak již bylo zmíněno dříve, Percona Backup pro MongoDB je typ zálohy PITR. Než budete moci použít tento typ zálohy, musíte nainstalovat agenta (pbm-agent) na všechny uzly/instance MongoDB. Předtím musíte také připojit sdílený adresář na všechny uzly. Začněme!
Nejprve musíte nakonfigurovat server NFS. Chcete-li nainstalovat server NFS, musíte si vybrat nebo nasadit jakýkoli virtuální počítač, v našem případě nainstalujeme server NFS do uzlu ClusterControl (Centos):
[[email protected] ~]# dnf install nfs-utils
Jakmile je nástroj NFS nainstalován, můžete službu spustit a povolit při spouštění systému:
[[email protected] ~]# # systemctl start nfs-server.service
[[email protected] ~]# # systemctl povolit nfs-server.service
[[email protected] ~]# # systemctl status nfs-server.service
Dalším krokem je konfigurace souboru /etc/exports tak, aby byl adresář přístupný klientům NFS:
[[email protected] ~]# vi /etc/exports
/mnt/backups 10.10.80.10(rw,sync,no_root_squash,no_subtree_check)
Do klientského uzlu, což jsou naše databázové uzly, musíme také nainstalovat potřebné balíčky NFS:
[[email protected] ~]# instalace dnf nfs-utils nfs4-acl-tools
Jakmile jsou balíčky nainstalovány, můžeme vytvořit adresář a připojit jej:
[[email protected] ~]# mkdir -p /mnt/backups
[[email protected] ~]# mount -t nfs 10.10.80.10:/mnt/backups /mnt/backups
Ujistěte se, že jste připojeni na všechny databázové uzly, abychom mohli nainstalovat pbm-agent. Vzhledem k tomu, že všechny uzly již mají připojený adresář NFS, přistoupíme nyní k instalaci agenta. Přejděte do clusteru MongoDB -> Záloha -> Nastavení -> Záloha Percona
Jakmile kliknete na tlačítko Install Percona Backup, zobrazí se následující obrazovka . Zde musíte zadat sdílený adresář. Znovu se prosím ujistěte, že adresář byl připojen do všech vašich uzlů MongoDB. Jakmile je určen záložní adresář, můžete kliknout na tlačítko Instalovat a počkat na dokončení instalace.
Úspěšná instalace by měla vypadat jako na následujícím snímku obrazovky. Nyní můžeme pokračovat v procesu zálohování:
Pro vytvoření zálohy pomocí Percona Backup je postup jednoduchý. Bohužel jste nemohli použít možnost šifrování zálohy pomocí této metody. Chcete-li použít funkci k nahrání do cloudu, musíte před výběrem typu zálohy tuto možnost povolit, jinak se vaše záloha nenahraje. Všimnete si, že funkce nahrávání zmizí, jakmile zvolíte „percona-backup-mongodb“.
Na druhé stránce můžete zadat místní uchování:
Pokud jde o poslední stránku, můžete zadat podrobnosti o cloudu a uchování, např. v předchozím příkladu. Proces obnovení je stejný jako v předchozím příkladu, vše, co musíte udělat, je kliknout na odkaz „Obnovit“ a postupovat podle kroků na stránce obnovení:
Závěr
S ClusterControl můžete vytvořit a nahrát zálohu MongoDB do cloudu. Nahrávání do cloudu je jednou z nových a pokročilých funkcí pro MongoDB, která byla zavedena počínaje ClusterControl 1.9.0 za předpokladu, že integrace s poskytovatelem cloudu byla úspěšně provedena. Pokud chcete zálohu chránit, můžete také zašifrovat zálohu pomocí ClusterControl.