sql >> Databáze >  >> NoSQL >> MongoDB

Tipy pro správu zálohování MongoDB pro sdílené clustery

Provádění správných záloh databáze je kritickým úkolem. Kromě nastavení architektury vysoké dostupnosti vašeho MongoDB pro databázové služby musíte mít také zálohy databází, abyste zajistili dostupnost dat v případě katastrofy. Pokud například omylem smažete některá data z produkční databáze, jediný způsob, jak obnovit data z pohledu databáze, je obnovit ze zálohy.

Nedávno začal ClusterControl podporovat novou metodu zálohování, nazvanou Percona Backup for MongoDB, vyvinutou společností Percona. Může spouštět konzistentní zálohy pro sady replik MongoDB a sdílené clustery.

V tomto blogu se podíváme na správu zálohování pro MongoDB Replica Sets a Sharded Clusters.

Zálohování MongoDB ve vysoce dostupné architektuře

ClusterControl podporuje 3 metody zálohování, kterými jsou mongodump,  mongodb konzistentní  a  Percona Backup for Mongodb. Konzistentní záloha mongodb používá jako metodu zálohování nástroj mongodump a zálohu lze obnovit pomocí mongorestore.

Nejnovější podporovanou metodou zálohování je Percona Backup for Mongodb pro konzistentní a časové zálohy sady Replica Set a Sharded Clusters, vyžaduje spuštění agenta na každém uzlu nebo sadě replik nebo uzlových uzlech a uzlech správy. pro shluky fragmentů, jak je popsáno zde.

Konfigurace a plánování konzistentního zálohování pomocí Percona Backup pro Mongodb v ClusterControl je velmi snadné. Přejděte na stránku Záloha a poté nakonfigurujte zálohu Percona pro Mongodb. Předpokladem je mít na každém uzlu spuštěný Percona Backup for MongoDB, který lze také nainstalovat z ClusterControl.

Než budeme moci naplánovat zálohování, jak je uvedeno níže, musíme nejprve nainstalovat agenta Percona Backup for MongoDB:

A poté nakonfigurujte záložní adresář. Vezměte prosím na vědomí, že záložní adresář musí být sdílený disk, který byl připojen ke všem uzlem s přesně stejnou připojenou cestou, jak je uvedeno níže:

Pokud v systému nemáte připravený žádný druh sdíleného disku, můžete k tomu použít NFS. Pro konfiguraci serveru NFS potřebujeme vyhrazený server / virtuální stroj s dostatkem volného místa pro uložení zálohy. Nainstalujte knihovnu nfs-utils a nfs-utils-lib na server, jak je uvedeno níže (za předpokladu, že používáme CentOS):

[[email protected] ~]# yum install nfs-utils nfs-utils-lib

[[email protected] ~]# yum install portmap

A spusťte služby portmap a nfs.

[[email protected] ~]# /etc/init.d/portmap start

[[email protected] ~]# /etc/init.d/nfs start

Poté přidejte nové položky do /etc/exports, jak je uvedeno níže:

[[email protected] ~]# vi /etc/exports

/backup 10.10.10.11(rw,sync,no_root_squash)

Na databázovém uzlu stačí připojit úložný disk jako sdílené úložiště.

Poslední věc, stačí kliknout na tlačítko instalace a spustí se nová úloha konfigurace agenta na každém uzlu.

Po instalaci všech PBM ggent můžeme nakonfigurovat metodu zálohování pro cluster, jak je uvedeno níže:

Fyzické vs. logické zálohování

Záloha MongoDB podporuje logické zálohování a fyzické zálohování. Metoda pro logické zálohování pomocí obslužného programu mongodump je zahrnuta při instalaci balíčku mongodb. Mongodump potřebuje přístup k vaší databázi mongodb, proto vyžaduje přístup pověření pro mongodump s privilegii role zálohování a musí mít akci grant find pro zálohování databáze.

Funguje pro formáty výpisu dat BSON. Mongodump se připojí k vaší databázi pomocí poskytnutých přihlašovacích údajů, přečte všechna data v databázi a uloží data do souborů. Vzhledem k tomu, že se jedná o proces s jedním vláknem, bude záloha trvat déle, zvláště při velké velikosti databáze. Mongodump neudržuje atomičnost transakcí napříč shardy, proto jej nelze použít jako strategii zálohování pro mongodb verze 4.2 a vyšší ve sharded clusteru. Percona Backup for MongoDB je logická záloha, ale podporuje konzistentní zálohování clusterů.

Fyzické zálohování v MongoDB funguje přes snímek systémů souborů mongodb, je to zkopírování podkladových souborů mongodb do jiného umístění jako základní záloha vaší databáze mongodb. Snímek systému souborů je operační systém, pokud používáte LVM (Logical Volume Manager) jako software pro správu rozložení disku a zařízení nebo softwarového zařízení, např. Veritas nebo NetApp Backup. Před spuštěním snímku systému souborů musíte povolit žurnálování, protokol aktivit změn v mongodb, aby byla záloha konzistentní.

Kromě snímku systému souborů můžete ke kopírování datových souborů MongoDB použít také příkaz cp nebo rsync, ale musíte zastavit proces zápisu do mongodb, protože proces kopírování datových souborů není atomická operace. Zálohu nelze použít pro Point in Time Recovery v architekturách Replica Sets nebo Sharded Cluster.

Percona Backup pro MongoDB se skládá ze dvou komponent, pbm-agent, který je třeba nainstalovat na každý uzel, a pbm jako rozhraní příkazového řádku pro interakci a spouštění záloh. Pbm-agent koordinuje mezi uzly databáze a spuštění procesu zálohování a obnovy. Pbm-agent rozhodne o nejlepším uzlu pro vytvoření zálohy.

Záloha PITR

V mnoha databázových systémech je běžné používat kontrolní bod k vyprázdnění dat na disk. MongoDB používá modul úložiště WiredTiger jako výchozí modul úložiště a také používá kontrolní body k poskytování konzistentního zobrazení dat. Nejen to, kontrolní bod v MongoDB lze použít k obnovení z posledního kontrolního bodu. Žurnálování funguje mezi jednotlivými kontrolními body, žurnálování je vyžadováno pro zotavení z neočekávaných výpadků, ke kterým dojde kdykoli mezi kontrolními body. Žurnálování zaručuje, že operace zápisu jsou protokolovány na disk, MongoDB vytvoří záznam žurnálu pro každou změnu, včetně bajtů, které se změnily, a umístění disku.

Mongodump a mongorestore lze použít pro zálohu obnovení v určitém okamžiku, existuje možnost využít oplog. Oplog je omezená kolekce v MongoDB, která sleduje všechny změny v kolekcích pro každou transakci zápisu (např. vložení, aktualizace, smazání). Pokud tedy chcete provést obnovu v určitém okamžiku, musíte provést obnovu z poslední úplné zálohy a také použít soubor oplog k použití změn na přesný čas, kdy chcete obnovit. Dalším nástrojem, který lze použít, je Percona Backup for MongoDB, proces je podobný jako mongodump, musíme obnovit ze zálohy a poté použít oplog.

Závěr

Konzistentní zálohování je důležité, zejména v clusterových nastaveních MongoDB (sada replik nebo sdílený cluster). ClusterControl poskytuje snadný způsob, jak nakonfigurovat zálohu Percona pro MongoDB ve vašem clusteru a naplánovat zálohování.


  1. Odesílání zpráv skupinám v Django Channels 2

  2. Jak zlepšit výkon vkládání MongoDB

  3. Jak vložit více dokumentů najednou do MongoDB přes Java

  4. Efektivní stránkování v MongoDB pomocí mgo