sql >> Database teknologi >  >> NoSQL >> MongoDB

Tips til opgradering til den seneste MongoDB-version

De seneste versioner af MongoDB er bygget til at integrere nye eller forbedrede funktioner fra de forgængere. Af denne grund anbefales det at køre den nyeste version for maksimal ydeevne og yderligere funktioner. Desuden kan de seneste versioner være et resultat af rettede fejl afhængigt af MongoDB-versioneringen.

MongoDB-versionering

MongoDB-versioner har formen X.Y.Z.

  • Når Y er lige, dvs. 4.0 eller 4.2, refererer dette til en udgivelsesserie, som er stabil og derfor anbefales til produktion. I dette tilfælde er nye funktioner integreret, hvilket kan resultere i baglæns inkompatibilitet.
  • Hvis Y er ulige, dvs. 4.1 eller 4.3, refererer dette til udviklingsserier, som ikke er stabile, og derfor anbefales det kun til test.
  • Z henviser til et revisions-/patchnummer. Indebærer fejlretning og bagudkompatible ændringer.

Det er også vigtigt at overveje MongoDB-driverversionerne for at sikre en velfungerende database.

Overvejelser før opgradering

  1. Sikkerhedskopi :Midtvejs i opgraderingen kan der ske et nedbrud og i sidste ende kompromittere integriteten af ​​de data, som databasen opbevarede. Derfor anbefales det altid at lave en sikkerhedskopi af dataene, før du opgraderer til en bestemt version.
  2. Vinduet Vedligeholdelse :Der kan være en vis kompleksitet, der kan opstå ved opgradering til en version, hvis replikasæt er involveret. Man skal planlægge nok tid til denne proces, så du ikke støder på en høj nedetid.
  3. Versionskompatibilitet :Sørg for at gennemgå udgivelsesbemærkningerne og kontrollere, om din systemopsætning vil være kompatibel med den version, du vil opgradere til. Se også dokumentationen til drivernes kompatibilitet på siden Driverkompatibilitet, hvis de kan gå i hånd med den MongoDB-version, du vil opgradere til. For eksempel fra MongoDB 4.2 og opefter er der ingen understøttelse af Ubuntu 16.04 PPCLE-systemet.
  4. Skift streams :Ændringsstrømme er designet til, at applikationer kan få adgang til realtidsdataændringer uden nødvendigvis at hale ind på oploggen. For MongoDB-versioner før 4.0.7 bruger ændringsstrømmen et CV-token fra version 0 v0, mens denne version og efterfølgerne bruger et CV-token fra version 1 v1. Det anbefales for klienter at vente på, at opgraderingen er fuldført, før de genoptager ændringsstreams, når de opgraderer til version 4.0.7.
  5. Tjek iscenesættelsesmiljø :Sørg for, at alle konfigurationer er godt konfigureret, før du opgraderer produktionsmiljøet, og de vil være kompatible med den nye version, du vil opgradere til.
  6.  Primær -Sekundær -Arbiter (PSA) arkitektur :MongoDB version 3.6 og nyere aktiverer understøttelse af "majority" read bekymring som standard. Denne konfiguration kan dog resultere i pres på lagercache, og den eneste måde at forhindre dette på er ved at deaktivere denne parameter. Ikke desto mindre kan deaktivering af denne parameter give anledning til flere bekymringer, f.eks.:
    1. Støtte til transaktioner på sharded cluster vil blive påvirket ved at:
      1. hvis et shard har læst bekymringen "majority" deaktiveret, vil det give en fejl for en transaktion, der skriver til flere shards.
      2. Læs bekymring "snapshot" kan ikke bruges til en transaktion, der involverer et shard med læst bekymring "majority" deaktiveret
    2. collMod-kommandoer, der er ansvarlige for at ændre et indeks fra at rulle tilbage, fungerer ikke. Dette dikterer, at hvis en operation skal rulle tilbage, skal man bruge den primære node til at gensynkronisere de berørte noder.
    3. Support til Change Streams til MongoDB 4.0 og tidligere versioner vil også blive deaktiveret.
    4. Replikasættransaktioner påvirkes ikke af deaktivering af denne parameter.

Procedurer for opgradering

  1. Lav en sikkerhedskopi af dine data.
  2. Opgrader mongod/mongos-binæren separat ved hjælp af systempakkehåndteringsværktøjet sammen med de officielle MongoDB-pakker. Du kan også opgradere mongoerne ved at erstatte de eksisterende binære filer med nye binære filer ved at bruge denne procedure:
    1. Download MongoDB-binære filer til den revision, du vil opgradere til, og gem den downloadede komprimerede fil på en midlertidig placering.
    2. Luk forekomsten ned.
    3. Brug de downloadede binære filer til at erstatte de eksisterende MongoDB-binære filer.
    4. Genstart forekomsten.
  3. Hvis du opgraderer et replikasæt, skal du opgradere hvert medlem separat ved at starte med de sekundære og den primære sidste. Sådan opgraderer du de sekundære:
    1. Opgrader mongod-binæren
    2. Vent på, at den sekundære gendannes til den SEKUNDÆRE tilstand, og efter den er færdig, opgrader den næste forekomst. rs.status() bruges til at tjekke for medlemmets stat i en mongo-skal. GENDANNELSE og OPSTART-tilstande kan dukke op, men du bliver nødt til at vente, indtil den gendannes til SEKUNDÆR.
  4. Når du opgraderer den primære:
    1. I en mongo-shell skal du bruge rs.stepDown() til at trappe ned den primære som en måde at starte en normal failover. Da der ikke vil blive accepteret skrivninger i perioden, anbefales det at foretage opgraderingen inden for den kortest mulige tid.
    2. Indtil du ser, at et andet medlem er blevet valgt til at være det primære, så opgrader binærerne til den primære lukning.
    3. Genstart den primære efter opgraderingen er fuldført, men hvis du tjekker dens status, rs.status(), kan den blive mærket som en sekundær.
  5. Sådan opgraderer du til en MongoDB 4.4 Sharded Cluster:
    1. Sørg for, at balanceren er blevet deaktiveret.
    2. Opgrader konfigurationsserverne på samme måde, som du opgraderede replikasættet.
    3. Opgrader shard'en ved at bruge den tilsvarende procedure, dvs. et replikasæt eller et selvstændigt.
    4. Opgrader hver mongo-forekomst i rækkefølge.
    5. Genaktiver balanceren.

Konklusion

Med tiden bliver data mere komplekse og kræver derfor avancerede databasefunktioner, der kan opfylde databaseadministratorers specifikationer. MongoDB falder ikke tilbage på dette, da det altid frigiver databaseversioner med enten rettede fejl eller nyintegrerede funktioner. Det anbefales altid at opgradere til den seneste MongoDB-version for maksimal ydeevne. Ikke desto mindre, før du foretager en opgradering, skal du tjekke udgivelsesbemærkningerne for den version, du vil opgradere til, hvis den er kompatibel med dit system. Det er også tilrådeligt at opgradere de tilsvarende MongoDB-drivere.


  1. Bedste praksis for at opgradere Redis med Sentinels?

  2. Spring data tilsidesætter standard serializer igen

  3. Predis med laravel 5.5 Ingen tilgængelige forbindelser i poolen i Aggregate/RedisCluster.php:337

  4. Hvordan vælger man et enkelt felt til alle dokumenter i en MongoDB-samling?