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

Tipy pro upgrade na nejnovější verzi MongoDB

Nejnovější verze MongoDB jsou vytvořeny tak, aby integrovaly nové nebo vylepšené funkce z předchozích verzí. Z tohoto důvodu se pro maximální výkon a další funkce doporučuje spouštět nejnovější verzi. Kromě toho mohou být nejnovější verze výsledkem opravených chyb v závislosti na verzi MongoDB.

Verze MongoDB

Verze MongoDB jsou ve tvaru X.Y.Z.

  • Když je Y sudé, tj. 4.0 nebo 4.2, odkazuje to na sérii vydání, která je stabilní, a proto se doporučuje pro produkci. V tomto případě jsou integrovány nové funkce, které mohou vést ke zpětné nekompatibilitě.
  • Pokud je Y liché, tj. 4.1 nebo 4.3, týká se to vývojové řady, která není stabilní, a proto se doporučuje pouze pro testování.
  • Z označuje číslo revize/opravy. Zahrnuje opravu chyb a zpětně kompatibilní změny.

Také s ohledem na verze ovladače MongoDB je důležité zajistit dobře fungující databázi.

Úvahy před upgradem

  1. Záloha :V polovině upgradu může dojít k nějakému selhání a nakonec k ohrožení integrity dat, která databáze uchovávala. Proto se doporučuje vždy před upgradem na určitou verzi zálohovat data.
  2. Okno údržby :Může nastat určitá složitost, která může nastat při upgradu na nějakou verzi, pokud se jedná o sady replik. Na tento proces je třeba naplánovat dostatek času, abyste nenarazili na vysoké prostoje.
  3. Kompatibilita verzí :Ujistěte se, že jste si prošli poznámky k verzi a zkontrolujte, zda bude vaše nastavení systému kompatibilní s verzí, na kterou chcete upgradovat. Zkontrolujte také dokumentaci kompatibility ovladačů na stránce Kompatibilita ovladačů, pokud mohou jít ruku v ruce s verzí MongoDB, na kterou chcete upgradovat. Například od MongoDB 4.2 výše neexistuje žádná podpora pro systém Ubuntu 16.04 PPCLE.
  4. Změnit streamy :Toky změn jsou navrženy pro aplikace, které mají přístup ke změnám dat v reálném čase, aniž by nutně omezovaly oplog. Pro verze MongoDB před 4.0.7 používá tok změn token obnovení verze 0 v0, zatímco tato verze a následníci používají tokeny obnovení verze 1 v1. Klientům se doporučuje, aby při upgradu na verzi 4.0.7 počkali na dokončení upgradu a poté obnovili streamy změn.
  5. Kontrola pracovního prostředí :Před upgradem produkčního prostředí se ujistěte, že jsou všechny konfigurace dobře nastaveny a že budou kompatibilní s novou verzí, na kterou chcete upgradovat.
  6.  Primární -Sekundární -Arbiter (PSA) Architecture :MongoDB verze 3.6 a vyšší ve výchozím nastavení povolují podporu pro „většinové“ čtení. Tato konfigurace však může způsobit tlak mezipaměti úložiště a jediný způsob, jak tomu zabránit, je deaktivovat tento parametr. Nicméně deaktivace tohoto parametru může vyvolat další obavy, např.
    1. Podpora transakcí na sdíleném clusteru bude ovlivněna tím, že:
      1. pokud má útržek zakázáno čtení obav „většina“, vyvolá chybu u transakce, která zapisuje do více útržků.
      2. Snímek obav o čtení nelze použít pro transakci zahrnující útržek s deaktivovanou většinou obav o čtení
    2. Příkazy collMod, které jsou zodpovědné za úpravu indexu z vrácení zpět, nebudou fungovat. To znamená, že pokud se operace potřebuje vrátit zpět, je nutné použít primární uzel k opětovné synchronizaci postižených uzlů.
    3. Podpora pro toky změn pro MongoDB 4.0 a starší verze bude také zakázána.
    4. Transakce sady replik nejsou deaktivací tohoto parametru ovlivněny.

Postupy pro upgrade

  1. Zálohujte si svá data.
  2. Upgradujte binární soubor mongod/mongos samostatně pomocí nástroje pro správu systémových balíčků spolu s oficiálními balíčky MongoDB. Mongo můžete také upgradovat nahrazením stávajících binárních souborů novými pomocí tohoto postupu:
    1. Stáhněte si binární soubory MongoDB pro revizi, na kterou chcete upgradovat, a uložte stažený komprimovaný soubor do dočasného umístění.
    2. Vypněte instanci.
    3. Použijte stažené binární soubory k nahrazení stávajících binárních souborů MongoDB.
    4. Restartujte instanci.
  3. Pokud upgradujete sadu replik, upgradujte každého člena samostatně tak, že začnete se sekundárními a primárním posledním. Upgrade sekundárních dílů:
    1. Upgradujte binární soubor mongoda
    2. Počkejte, až se sekundární prvek obnoví do SEKUNDÁRNÍHO stavu, a po jeho dokončení upgradujte další instanci. rs.status() se používá ke kontrole stavu člena v mongo shellu. Mohou se objevit stavy OBNOVENÍ a SPUŠTĚNÍ, ale budete muset počkat, než se obnoví na SEKUNDÁRNÍ.
  4. Při upgradu primární:
    1. V mongo shellu použijte rs.stepDown() k ukončení primárního jako způsob zahájení normálního převzetí služeb při selhání. Protože během tohoto období nebudou přijímány žádné zápisy, je vhodné provést upgrade v co nejkratším čase.
    2. Dokud neuvidíte, že byl za primárního zvolen jiný člen, upgradujte binární soubory primárního vypnutí.
    3. Po dokončení upgradu restartujte primární, ale pokud zkontrolujete jeho stav, rs.status(), může být označen jako sekundární.
  5. Upgrade pro MongoDB 4.4 Sharded Cluster:
    1. Ujistěte se, že byl vyvažovač deaktivován.
    2. Upgradujte konfigurační servery stejným způsobem, jako jste upgradovali sadu replik.
    3. Upgradujte fragment pomocí odpovídajícího postupu, tj. sady replik nebo samostatné.
    4. Upgradujte každou instanci mongos v pořadí.
    5. Znovu aktivujte balancer.

Závěr

Postupem času se data stávají složitějšími, a proto vyžadují pokročilé databázové funkce, které splňují specifikace databázových administrátorů. MongoDB se na to nevztahuje, protože vždy vydává verze databáze buď s opravenými chybami, nebo s nově integrovanými funkcemi. Pro maximální výkon se doporučuje vždy upgradovat na nejnovější verzi MongoDB. Před provedením upgradu je však třeba zkontrolovat poznámky k verzi pro verzi, na kterou chcete upgradovat, zda je kompatibilní s vaším systémem. Doporučuje se také upgradovat odpovídající ovladače MongoDB.


  1. MongoDB – Ekvivalent LEFT JOIN, kde jedna kolekce neexistuje

  2. Redis je po spuštění prázdný, i když existuje soubor .rdb

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

  4. Jak používat modifikátor $push update v MongoDB a C# při aktualizaci pole v dokumentu