sql >> Database >  >> NoSQL >> MongoDB

Tips voor het upgraden naar de nieuwste MongoDB-versie

De nieuwste versies van MongoDB zijn gebouwd om nieuwe of verbeterde functies van de voorgaande versies te integreren. Om deze reden wordt aanbevolen om de nieuwste versie te gebruiken voor maximale prestaties en extra functies. Bovendien kunnen de nieuwste versies het gevolg zijn van opgeloste bugs, afhankelijk van de MongoDB-versie.

MongoDB-versiebeheer

MongoDB-versies hebben de vorm X.Y.Z.

  • Als Y even is, d.w.z. 4.0 of 4.2, verwijst dit naar een releasereeks die stabiel is en daarom wordt aanbevolen voor productie. In dit geval worden nieuwe functies geïntegreerd die kunnen leiden tot achterwaartse incompatibiliteit.
  • Als Y oneven is, d.w.z. 4.1 of 4.3, verwijst dit naar ontwikkelingsreeksen die niet stabiel zijn en daarom alleen worden aanbevolen voor testen.
  • Z verwijst naar een revisie-/patchnummer. Omvat bugfixing en achterwaarts compatibele wijzigingen.

Het is ook belangrijk om rekening te houden met de MongoDB-stuurprogrammaversies om een ​​goed presterende database te garanderen.

Overwegingen voor het upgraden

  1. Back-up :Halverwege de upgrade kan er een crash optreden en uiteindelijk de integriteit van de gegevens in de database in gevaar brengen. Daarom wordt aanbevolen om altijd een back-up van de gegevens te maken voordat u een upgrade naar een bepaalde versie uitvoert.
  2. Onderhoudsvenster :Er kan enige complexiteit optreden bij het upgraden naar een bepaalde versie als er replicasets bij betrokken zijn. Men moet voldoende tijd inplannen voor dit proces, zodat u geen hoge uitvaltijd tegenkomt.
  3. Versiecompatibiliteit :Zorg ervoor dat u de release-opmerkingen doorneemt en controleer of uw systeemconfiguratie compatibel is met de versie waarnaar u wilt upgraden. Controleer ook de compatibiliteitsdocumentatie voor stuurprogramma's op de pagina Compatibiliteit stuurprogramma's als ze kunnen worden gecombineerd met de MongoDB-versie waarnaar u wilt upgraden. Vanaf MongoDB 4.2 is er bijvoorbeeld geen ondersteuning voor het Ubuntu 16.04 PPCLE-systeem.
  4. Stremen wijzigen :Wijzigingsstromen zijn ontworpen voor toepassingen om toegang te krijgen tot realtime gegevenswijzigingen zonder noodzakelijkerwijs de oplog te volgen. Voor MongoDB-versies vóór 4.0.7 gebruikt de wijzigingsstroom een ​​hervatstoken van versie 0 v0, terwijl deze versie en de opvolgers een hervatstoken van versie 1 v1 gebruiken. Het wordt aanbevolen voor klanten om te wachten tot de upgrade is voltooid voordat ze de wijzigingsstromen hervatten wanneer ze upgraden naar versie 4.0.7.
  5. Staging Environment Check :Zorg ervoor dat alle configuraties goed zijn ingesteld voordat u de productieomgeving upgradet en dat ze compatibel zijn met de nieuwe versie waarnaar u wilt upgraden.
  6.  Primair -Secundair -Arbiter (PSA) Architectuur :MongoDB versie 3.6 en hoger schakelen standaard ondersteuning voor "meerderheid" leesprobleem in. Deze configuratie kan echter leiden tot druk op de opslagcache en de enige manier om dit te voorkomen is door deze parameter uit te schakelen. Desalniettemin kan het uitschakelen van deze parameter tot meer zorgen leiden, zoals:
    1. Ondersteuning voor transacties op sharded cluster wordt beïnvloed doordat:
      1. als een shard read concern 'meerderheid' heeft uitgeschakeld, wordt er een fout gegenereerd voor een transactie die naar meerdere shards schrijft.
      2. Leesprobleem "snapshot" kan niet worden gebruikt voor een transactie waarbij een shard is betrokken waarbij leesprobleem "meerderheid" is uitgeschakeld
    2. collMod-opdrachten die verantwoordelijk zijn voor het wijzigen van een index van terugdraaien, werken niet. Dit dicteert dat als een bewerking moet worden teruggedraaid, men het primaire knooppunt moet gebruiken om de betrokken knooppunten opnieuw te synchroniseren.
    3. Ondersteuning voor wijzigingsstreams voor MongoDB 4.0 en eerdere versies wordt ook uitgeschakeld.
    4. Replicasettransacties worden niet beïnvloed door het uitschakelen van deze parameter.

Procedures voor het upgraden

  1. Maak een back-up van uw gegevens.
  2. Upgrade het binaire bestand mongod/mongos afzonderlijk met behulp van de systeempakketbeheertool naast de officiële MongoDB-pakketten. U kunt de mongo's ook upgraden door de bestaande binaire bestanden te vervangen door nieuwe binaire bestanden met behulp van deze procedure:
    1. Download MongoDB-binaire bestanden voor de revisie waarnaar u wilt upgraden en sla het gedownloade gecomprimeerde bestand op een tijdelijke locatie op.
    2. Sluit de instantie af.
    3. Gebruik de gedownloade binaire bestanden om de bestaande MongoDB-binaire bestanden te vervangen.
    4. Start de instantie opnieuw.
  3. Als u een replicaset upgradet, moet u elk lid afzonderlijk upgraden door te beginnen met de secundaire en de primaire als laatste. Om de secundairen te upgraden:
    1. Upgrade de mongod binary
    2. Wacht tot de secundaire status is hersteld naar de SECUNDAIRE status en upgrade de volgende instantie nadat deze is voltooid. rs.status() wordt gebruikt om te controleren op de staat van de lidstaat in een mongo-shell. HERSTEL- en STARTUP-statussen kunnen verschijnen, maar u moet wachten tot het herstelt naar SECUNDAIR.
  4. Bij het upgraden van de primaire:
    1. Gebruik in een mongo-shell rs.stepDown() om de primary te verlagen als een manier om een ​​normale failover te starten. Aangezien er gedurende de periode geen schrijfacties worden geaccepteerd, is het raadzaam om de upgrade binnen de kortst mogelijke tijd uit te voeren.
    2. Totdat je ziet dat een ander lid is gekozen als primair lid, upgrade dan de binaire bestanden van het afsluitende primaire lid.
    3. Start de primaire opnieuw nadat de upgrade is voltooid, maar als u de status ervan controleert, rs.status(), kan deze als secundair worden bestempeld.
  5. Upgraden voor een MongoDB 4.4 Sharded Cluster:
    1. Zorg ervoor dat de balancer is uitgeschakeld.
    2. Upgrade de configuratieservers op dezelfde manier als waarop je de replicaset hebt geüpgraded.
    3. Upgrade de shard met behulp van de bijbehorende procedure, d.w.z. replicaset of een standalone.
    4. Upgrade elke mongos-instantie in volgorde.
    5. Schakel de balancer opnieuw in.

Conclusie

Na verloop van tijd worden gegevens complexer en vereisen daarom geavanceerde databasefuncties die kunnen voldoen aan de specificaties van databasebeheerders. MongoDB valt hier niet op terug, omdat het altijd databaseversies uitbrengt met vaste bugs of nieuw geïntegreerde functies. Het wordt aanbevolen om altijd te upgraden naar de nieuwste MongoDB-versie voor maximale prestaties. Desalniettemin, voordat u een upgrade uitvoert, moet u de release-opmerkingen controleren voor de versie waarnaar u wilt upgraden of deze compatibel is met uw systeem. Het is ook raadzaam om de bijbehorende MongoDB-stuurprogramma's te upgraden.


  1. Hoe te pagineren met Mongoose in Node.js?

  2. Moet u MongoDB-journaling inschakelen?

  3. Hoe een lijst in een structuur in Redis nesten om het topniveau te verlagen?

  4. MongoDB \uXXXX probleem