Najnowsze wersje MongoDB zostały zbudowane w celu zintegrowania nowych lub ulepszonych funkcji z poprzednich wersji. Z tego powodu zaleca się uruchomienie najnowszej wersji w celu uzyskania maksymalnej wydajności i dodatkowych funkcji. Poza tym najnowsze wersje mogą być wynikiem naprawionych błędów w zależności od wersji MongoDB.
Wersjonowanie MongoDB
Wersje MongoDB mają postać X.Y.Z.
- Kiedy Y jest parzyste, tj. 4.0 lub 4.2, odnosi się to do serii wydań, która jest stabilna, stąd zalecana do produkcji. W tym przypadku zintegrowane są nowe funkcje, które mogą powodować niekompatybilność wsteczną.
- Jeśli Y jest nieparzyste, tj. 4.1 lub 4.3, odnosi się to do serii rozwojowych, które nie są stabilne, dlatego zalecane są tylko do testowania.
- Z odnosi się do numeru wersji/poprawki. Obejmuje naprawianie błędów i zmiany zgodne z poprzednimi wersjami.
Również uwzględnienie wersji sterowników MongoDB jest ważne dla zapewnienia dobrej wydajności bazy danych.
Rozważania przed aktualizacją
- Kopia zapasowa :W połowie aktualizacji może nastąpić awaria i ostatecznie naruszyć integralność danych przechowywanych w bazie danych. Dlatego zaleca się, aby zawsze wykonać kopię zapasową danych przed aktualizacją do określonej wersji.
- Okno konserwacji :Może wystąpić pewna złożoność, która może wystąpić podczas aktualizacji do jakiejś wersji, jeśli zaangażowane są zestawy replik. Trzeba zaplanować wystarczająco dużo czasu na ten proces, aby nie napotkać długiego przestoju.
- Zgodność wersji :Przejrzyj informacje o wydaniu i sprawdź, czy konfiguracja systemu będzie zgodna z wersją, do której chcesz uaktualnić. Sprawdź również dokumentację zgodności sterowników na stronie Zgodność sterowników, jeśli są one zgodne z wersją MongoDB, do której chcesz uaktualnić. Na przykład od MongoDB 4.2 w górę nie ma obsługi systemu Ubuntu 16.04 PPCLE.
- Zmień strumienie :Strumienie zmian są przeznaczone dla aplikacji w celu uzyskiwania dostępu do zmian danych w czasie rzeczywistym bez konieczności śledzenia oplogu. W przypadku wersji MongoDB wcześniejszych niż 4.0.7 strumień zmian używa tokenu wznowienia wersji 0 v0, podczas gdy ta wersja i następcy używają tokenów wznowienia wersji 1 v1. Zaleca się, aby klienci poczekali na zakończenie uaktualniania przed wznowieniem strumieni zmian podczas uaktualniania do wersji 4.0.7.
- Sprawdzenie środowiska pomostowego :Upewnij się, że wszystkie konfiguracje są dobrze skonfigurowane przed aktualizacją środowiska produkcyjnego i będą zgodne z nową wersją, do której chcesz dokonać aktualizacji.
- Podstawowy -Dodatkowe -Arbiter (PSA) Architektura :MongoDB w wersji 3.6 i nowszych domyślnie włącza obsługę problemu odczytu „większości”. Jednak ta konfiguracja może spowodować obciążenie pamięci podręcznej magazynu i jedynym sposobem, aby temu zapobiec, jest wyłączenie tego parametru. Niemniej jednak wyłączenie tego parametru może budzić większe obawy, tj.:
- Obsługa transakcji w klastrze podzielonym na fragmenty ulegnie zmianie w następujący sposób:
- Jeśli fragment odczytał problem „większości” wyłączony, zgłosi błąd dla transakcji, która zapisuje do wielu fragmentów.
- Zastrzeżenie odczytu „migawka” nie może być użyte w przypadku transakcji obejmującej fragment z wyłączonym problemem odczytu „większość”
- polecenia collMod odpowiedzialne za modyfikację indeksu przed wycofywaniem nie będą działać. To dyktuje, że jeśli operacja musi zostać wycofana, należy użyć węzła podstawowego do ponownej synchronizacji dotkniętych węzłów.
- Obsługa strumieni zmian dla MongoDB 4.0 i wcześniejszych wersji również zostanie wyłączona.
- Wyłączenie tego parametru nie ma wpływu na transakcje zestawu replik.
- Obsługa transakcji w klastrze podzielonym na fragmenty ulegnie zmianie w następujący sposób:
Procedury aktualizacji
- Utwórz kopię zapasową swoich danych.
- Uaktualnij plik binarny mongod/mongos oddzielnie, używając narzędzia do zarządzania pakietami systemowymi obok oficjalnych pakietów MongoDB. Możesz także uaktualnić mongo, zastępując istniejące pliki binarne nowymi, korzystając z poniższej procedury:
- Pobierz pliki binarne MongoDB dla wersji, do której chcesz uaktualnić, i przechowuj pobrany skompresowany plik w tymczasowej lokalizacji.
- Zamknij instancję.
- Użyj pobranych plików binarnych, aby zastąpić istniejące pliki binarne MongoDB.
- Ponownie uruchom instancję.
- W przypadku uaktualniania zestawu replik należy zaktualizować każdy element członkowski osobno, zaczynając od drugorzędnych i podstawowego ostatniego. Aby uaktualnić wtórne:
- Aktualizuj plik binarny mongod
- Poczekaj, aż drugorzędny przywróci stan SECONDARY, a po jego zakończeniu zaktualizuj następną instancję. rs.status() służy do sprawdzania stanu członka w powłoce mongo. Mogą pojawić się stany ODZYSKIWANIE i URUCHAMIANIE, ale musisz poczekać, aż przywróci się do SECONDARY.
- Podczas uaktualniania podstawowego:
- W powłoce mongo użyj rs.stepDown(), aby obniżyć poziom podstawowy jako sposób na zainicjowanie normalnego przełączania awaryjnego. Ponieważ żadne zapisy nie będą akceptowane w tym okresie, zaleca się wykonanie aktualizacji w jak najkrótszym czasie.
- Dopóki nie zobaczysz, że inny członek został wybrany jako główny, a następnie uaktualnij pliki binarne głównego zamknięcia.
- Ponownie uruchom podstawową po zakończeniu aktualizacji, ale jeśli sprawdzisz jej status, rs.status(), może być oznaczona jako pomocnicza.
- Aby zaktualizować do klastra z fragmentami MongoDB 4.4:
- Upewnij się, że równoważenie zostało wyłączone.
- Uaktualnij serwery konfiguracyjne w taki sam sposób, w jaki aktualizowałeś zestaw replik.
- Zaktualizuj fragment przy użyciu odpowiedniej procedury, tj. zestawu replik lub samodzielnego.
- Aktualizuj każdą instancję Mongos w kolejności.
- Ponownie włącz balanser.
Wnioski
Z czasem dane stają się coraz bardziej złożone i wymagają zaawansowanych funkcji baz danych, które spełniają wymagania administratorów baz danych. MongoDB nie opiera się na tym, ponieważ zawsze wydaje wersje bazy danych z naprawionymi błędami lub nowo zintegrowanymi funkcjami. Zaleca się, aby zawsze aktualizować do najnowszej wersji MongoDB, aby uzyskać maksymalną wydajność. Niemniej jednak przed dokonaniem aktualizacji należy sprawdzić informacje o wydaniu wersji, do której chcesz dokonać aktualizacji, jeśli jest ona zgodna z twoim systemem. Wskazane jest również uaktualnienie odpowiednich sterowników MongoDB.