sql >> Databasteknik >  >> NoSQL >> MongoDB

Tips för att uppgradera till den senaste MongoDB-versionen

De senaste versionerna av MongoDB är byggda för att integrera nya eller förbättrade funktioner från föregångaren. Av denna anledning rekommenderas det att köra den senaste versionen för maximal prestanda och ytterligare funktioner. Dessutom kan de senaste versionerna vara ett resultat av fixade buggar beroende på MongoDB-versionen.

MongoDB-versionering

MongoDB-versioner har formen X.Y.Z.

  • När Y är jämnt, dvs 4.0 eller 4.2, hänvisar detta till en releaseserie som är stabil och därför rekommenderas för produktion. I det här fallet integreras nya funktioner som kan resultera i bakåtkompatibilitet.
  • Om Y är udda, dvs. 4.1 eller 4.3, hänvisar detta till utvecklingsserier som inte är stabila och därför rekommenderas endast för testning.
  • Z hänvisar till ett revisions-/patchnummer. Innebär felkorrigering och bakåtkompatibla ändringar.

Det är också viktigt att överväga MongoDB-drivrutinversionerna för att säkerställa en välpresterande databas.

Att tänka på innan du uppgraderar

  1. Säkerhetskopiering :Mitt i uppgraderingen kan en krasch inträffa och i slutändan äventyra integriteten för data som databasen innehöll. Därför rekommenderas det att alltid säkerhetskopiera data innan du uppgraderar till en viss version.
  2. Underhållsfönster :Det kan finnas viss komplexitet som kan uppstå vid uppgradering till någon version om replikuppsättningar är inblandade. Man måste schemalägga tillräckligt med tid för denna process så att du inte stöter på en hög driftstopp.
  3. Versionskompatibilitet :Se till att gå igenom versionskommentarerna och kontrollera om din systeminstallation kommer att vara kompatibel med den version du vill uppgradera till. Kontrollera också dokumentationen för drivrutinskompatibilitet på sidan för drivrutinskompatibilitet om de kan gå hand i hand med den MongoDB-version du vill uppgradera till. Till exempel från MongoDB 4.2 och uppåt finns det inget stöd för Ubuntu 16.04 PPCLE-systemet.
  4. Ändra strömmar :Ändringsströmmar är utformade för att applikationer ska få tillgång till dataändringar i realtid utan att nödvändigtvis ta slut i oploggen. För MongoDB-versioner före 4.0.7 använder Change Stream en version 0 v0 CV-token medan den här versionen och efterföljarna använder en version 1 v1 CV-token. Det rekommenderas för klienter att vänta på att uppgraderingen är klar innan de återupptar ändringsströmmar när de uppgraderar till version 4.0.7.
  5. Kontroll av iscensättningsmiljö :Se till att alla konfigurationer är väl inställda innan du uppgraderar produktionsmiljön och att de kommer att vara kompatibla med den nya versionen du vill uppgradera till.
  6.  Primär -Sekundär -Arbiter-arkitektur (PSA) :MongoDB version 3.6 och senare aktiverar stöd för "majority" läsproblem som standard. Den här konfigurationen kan dock resultera i lagringscachetryck och det enda sättet att förhindra detta är att inaktivera den här parametern. Ändå kan inaktivering av denna parameter ge upphov till fler farhågor, dvs.
    1. Stödet för transaktioner på sharded kluster kommer att påverkas genom att:
      1. om en shard har läst oro "majority" inaktiverad, kommer det att skicka ett felmeddelande för en transaktion som skriver till flera shards.
      2. Läsproblem "snapshot" kan inte användas för en transaktion som involverar en shard med läsproblem "majority" inaktiverad
    2. collMod-kommandon som är ansvariga för att modifiera ett index från att rullas tillbaka fungerar inte. Detta dikterar att om en operation behöver återställas måste man använda den primära noden för att synkronisera om de påverkade noderna.
    3. Stöd för Change Streams för MongoDB 4.0 och tidigare versioner kommer också att inaktiveras.
    4. Transaktioner med replikuppsättningar påverkas inte av att denna parameter inaktiveras.

Procedurer för uppgradering

  1. Gör en säkerhetskopia av dina data.
  2. Uppgradera binären mongod/mongos separat med hjälp av systempakethanteringsverktyget tillsammans med de officiella MongoDB-paketen. Du kan också uppgradera mongos genom att ersätta de befintliga binärerna med nya binärer genom att använda följande procedur:
    1. Ladda ner MongoDB-binärfiler för den version du vill uppgradera till och lagra den nedladdade komprimerade filen på en tillfällig plats.
    2. Stäng av instansen.
    3. Använd de nedladdade binärfilerna för att ersätta de befintliga MongoDB-binärerna.
    4. Starta om instansen.
  3. Om du uppgraderar en replikuppsättning, uppgradera varje medlem separat genom att börja med sekundärerna och den primära sista. Så här uppgraderar du sekundärerna:
    1. Uppgradera mongod-binären
    2. Vänta tills sekundären återställs till SEKUNDÄRT tillstånd och uppgradera nästa instans när den är klar. rs.status() används för att leta efter medlemmens stat i ett mongoskal. ÅTERSTÄLLNING och STARTUP kan dyka upp men du måste vänta tills den återställs till SEKUNDÄR.
  4. När du uppgraderar den primära:
    1. I ett mongo-skal använd rs.stepDown() för att avveckla den primära som ett sätt att initiera en normal failover. Eftersom inga skrivningar kommer att accepteras under perioden, är det lämpligt att göra uppgraderingen inom kortast möjliga tid.
    2. Tills du ser att en annan medlem har blivit vald till primär, uppgradera sedan binärfilerna för avstängningsprimären.
    3. Starta om den primära efter att uppgraderingen är klar, men om du kontrollerar dess status, rs.status(), kan den märkas som en sekundär.
  5. Så här uppgraderar du för ett MongoDB 4.4 Sharded Cluster:
    1. Se till att balanseringen har inaktiverats.
    2. Uppgradera konfigurationsservrarna på samma sätt som du uppgraderade replikuppsättningen.
    3. Uppgradera fragmentet med motsvarande procedur, t.ex. replikuppsättning eller en fristående.
    4. Uppgradera varje mongos-instans i ordning.
    5. Återaktivera balanseringen.

Slutsats

Med tiden blir data mer komplexa och kräver därför avancerade databasfunktioner som kan uppfylla databasadministratörers specifikationer. MongoDB faller inte tillbaka på detta eftersom det alltid släpper databasversioner med antingen fixade buggar eller nyintegrerade funktioner. Det rekommenderas att alltid uppgradera till den senaste MongoDB-versionen för maximal prestanda. Innan du gör en uppgradering måste du dock kontrollera versionskommentarerna för den version du vill uppgradera till om den är kompatibel med ditt system. Det är också lämpligt att uppgradera motsvarande MongoDB-drivrutiner.


  1. 'session' är odefinierad när du använder express / redis för session store

  2. Bör du aktivera MongoDB Journaling?

  3. När ska MongoDB-databasanslutning stängas i Nodejs

  4. Hur lagrar man resultat från dynamiskt genererade formulär i MongoDb?