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

Pochopení možností zálohování MongoDB

Pracovní postupy zálohování a obnovy jsou nesmírně důležité pro jakýkoli produkční cluster MongoDB. Kromě skutečné funkčnosti zálohování a obnovy musíte vzít v úvahu také další nefunkce, jako je dostupnost záloh, zabezpečení, doba obnovy, granularita obnovy atd. Na vysoké úrovni máte tři možnosti, jak zálohovat server MongoDB:

  1. Mongodump / Mongorestore
  2. MongoDB Cloud Manager
  3. Snímky disku

Každá z výše uvedených tří technik má své výhody a nevýhody. Přečtěte si níže, abyste porozuměli podrobněji.

1. Mongodump / Mongorestore

Mongodump je zálohovací nástroj „začínáme“ pro většinu vývojářů MongoDB. Tímto způsobem pravděpodobně většina vývojářů začíná zálohovat svou databázi MongoDB. Použití nástroje Mongodump je opravdu jednoduché a vypíše všechna data z databáze v binárním formátu (BSON), který můžete uložit na libovolné místo.

Výhody:

  1. Jednoduché použití.
  2. Flexibilita místa uložení zálohy - jakmile je výpis dokončen, můžete jej přesunout na libovolné místo podle vašeho výběru – sdílené složky NFS, AWS S3 atd.

Nevýhody:

  1. Úplná záloha, pokaždé – Je to úplná záloha, neliší se od vaší předchozí zálohy. Takže jak se vaše databáze zvětšuje, může dokončení zálohy trvat hodiny a je nepraktické ukládat.
  2. Nejedná se o časový okamžik – Záloha vytvořená mongodumpem není ve výchozím nastavení snímek k určitému okamžiku. Pokud se tedy vaše data během zálohování mění, můžete skončit s mongodumpem, který je z pohledu aplikace nekonzistentní. Můžete to napravit pomocí možnosti „–oplog“, která pořídí snímek na konci procesu mongodump. Tato možnost však není dostupná pro samostatné databáze

2. Cloudový manažer MongoDB

Cloud Manager je cloudová služba poskytovaná týmem MongoDB, která vám pomůže zálohovat váš cluster MongoDB.

Výhody:

  1. Jednoduché použití – Nainstalujte agenta MongoDB Cloud Manager pro správu zálohování/obnovy vašeho clusteru. Je to trochu složitější než použití mongodump, ale ne o moc.
  2. Nepřetržité zálohování – Cloud Manager se neustále dotazuje a zálohuje váš oplog. To vám tedy umožňuje obnovit do libovolného okamžiku namísto konkrétních časů, kdy byla záloha pořízena, což minimalizuje riziko ztráty dat.

Nevýhody:

  1. Kontrola dat – Záložní data jsou uložena v datovém centru MongoDB mimo vaši kontrolu. V některých částech světa (např. Evropa) a v závislosti na vašich bezpečnostních potřebách to může být velký problém.
  2. Výdaje navíc – Platíte podle velikosti dat a množství změn oplogu. Pokud máte velkou databázi nebo vysoký počet zápisů, mohou se tyto náklady sčítat.
  3. Pomalé obnovení – Abyste mohli obnovit svá data z MongoDB Cloud Manager, je potřeba data fyzicky stáhnout z datového centra Cloud Manager. Pokud máte velkou databázi, může to být velmi časově náročná operace, například pokud jsou vaše data 1 TB, může stažení a použití dat trvat několik hodin.

3. Snímky disku

Snímky mohou být buď na úrovni cloudu (např. snímky disku AWS EBS) nebo na úrovni operačního systému (snímky LVM). I když jsou snímky LVM pohodlné, nelze je snadno přenést mimo počítač. Po zbytek této diskuse se proto zaměříme na snímky cloudových disků, jako jsou snímky AWS EBS.

Výhody:

  1. Jednoduché a snadné použití – Poměrně triviální pro spuštění snímku disku EBS.
  2. Přenositelnost – Pokud potřebujete vyšší dostupnost záloh, můžete snímky přesunout do jiných datových center.
  3. Rozdíl mezi snímky – Snímky jsou rozdílné snímky, takže ukládají pouze změny z předchozího snímku. Tím se sníží množství úložiště potřebné pro zálohování.
  4. Žádná kopie dat – K obnovení vašich dat není zapotřebí žádná kopie dat. Např. Pokud chcete obnovit snímek o velikosti 1 TB, stačí ze snímku vytvořit nový svazek, což nepovede k žádné skutečné kopii dat. To je * velký problém *  při práci s velkým množstvím dat.
  5. Ovládání zálohování – Zálohy zůstávají ve stejném datovém centru jako vaše primární data a jsou zabezpečeny stejnými ověřovacími mechanismy jako vaše primární datové servery.

Nevýhody:

  1. Nejde o nepřetržité zálohování – Je to záloha k určitému časovému okamžiku a lze ji obnovit pouze do bodů zálohy.
  2. Fyzické stroje - Touto technikou nelze zálohovat místní fyzické počítače.

Na konci dne, pokud jsou vaše data malá, budou všechny tři možnosti fungovat dobře. Když začnete mít větší množství dat, budete muset věnovat čas a vybrat si možnost, která nejlépe vyhovuje vašemu scénáři.


  1. Dynamické řazení s Redis

  2. Spring Data RedisTemplate:Serializace hodnoty a hashValue

  3. Vše, co potřebujete vědět o klientovi MongoDB

  4. Redis CLI nezobrazuje nedávno uložený klíč přes Laravel