MariaDB
 sql >> Baza danych >  >> RDS >> MariaDB

Jak uaktualnić MariaDB 10.4 do MariaDB 10.5?

MariaDB 10.5 została wydana jako GA w czerwcu 2020 r. W wydaniu dodano obsługę Amazon S3 lub dowolnej chmury publicznej lub prywatnej innej firmy, która obsługuje interfejs API S3. Oferuje również zaawansowaną obsługę uprawnień, która rozszerza jego szczegółowość, co umożliwia administratorowi na przykład przyznanie ograniczonych uprawnień określonemu użytkownikowi bazy danych w celu zapewnienia ścisłego bezpieczeństwa bazy danych.

MariaDB 10.5 również pochwalił się ulepszeniami silnika pamięci masowej InnoDB ze względu na jego wydajność, a także przedstawiono kilka nowych zmiennych, ale główne przestarzałe zmienne zostały oznaczone jako przestarzałe lub całkowicie usunięte. Zwróć na przykład uwagę, że w MariaDB 10.5 innodb_buffer_pool_instances została już oznaczona jako przestarzała, podczas gdy w wersji 10.6 jest ustawiona do usunięcia. Jeśli jesteś ciekawy, z jakiego powodu mówią, sprawdź MDEV-15058.

Po tych wszystkich zmianach najlepiej jest udostępnić ten blog, aby zapewnić przewodnik dotyczący uaktualniania MariaDB 10.4 do MariaDB 10.5. Omówimy krok po kroku, co należy wziąć pod uwagę przy aktualizacji.

Rzeczy, których potrzebujesz przed aktualizacją

Nie zawsze jest to najlepsza metoda aktualizacji bazy danych na żywo w środowisku produkcyjnym bez przeprowadzania testów. Ten prosty żargon definiuje termin, który nazywamy SNAFU. Możesz trafić do Google, aby znaleźć ten termin, ale w zasadzie zawsze najlepiej nie dotykać normalnego stanu zdrowia, zwłaszcza normalnie funkcjonujących systemów. Jednak nie zawsze system musi pozostać stały, musi być aktualizowany, aby korzystać z poprawek bezpieczeństwa, poprawek i zaawansowanych funkcji, które są obecne w nowszych wersjach. W takim przypadku zawsze masz zaplanowany mechanizm powrotu po awarii i skonfigurowany przed aktualizacją. W przypadku, gdy aktualizacja systemu wykryje problemy, które nie zostały zauważone, może to mieć wpływ na Twoją firmę.

Zawsze twórz kopię zapasową swojej bazy danych

W takim przypadku zawsze twórz kopię zapasową swoich danych. Możesz użyć narzędzi takich jak mariabackup lub mydumper lub, jeśli jesteś użytkownikiem ClusterControl, użyć narzędzia Database Backup Management. Jeśli nie jesteś jeszcze przygotowany na rodzaj potrzebnej kopii zapasowej, być może będziesz musiał sprawdzić najlepsze praktyki podczas tworzenia kopii zapasowej.

Testuj... Testuj... i testuj ponownie

Podczas gdy kopia zapasowa dostarcza dane do zasilania w przypadku konieczności przywrócenia stanu pierwotnego w przypadku wystąpienia nieprzewidzianych problemów, uaktualnienie do wersji głównej należy najpierw przetestować na maszynie programistycznej lub tymczasowej. W dużych przedsiębiorstwach powszechną praktyką jest zawsze przeprowadzanie testu regresji w docelowym środowisku QA lub środowisku przejściowym, w którym najpierw należy zastosować aktualizację serwerów bazy danych do głównej wersji. Wszystkie systemy z aplikacji i bazy danych muszą przejść test regresji lub serię testów QA, dopóki wszystko nie przejdzie. Nie jest dobrym pomysłem uproszczenie przypadku testowego aplikacji przechodzącego do systemów baz danych i po prostu wykluczenie, że wszystko jest w porządku, o ile baza danych nie ulegnie awarii lub po prostu zostało to udowodnione przez krótki czas, gdzie test jest krótki, bardzo prosty test, który obejmuje tylko niewielki procent całego systemu. Testowanie uaktualnienia najpierw w środowisku pomostowym lub QA musi być traktowane priorytetowo, tak aby osiągnąć idealnie dobry kształt aplikacji bez wpływu na stronę biznesową, a także na użytkowników, którzy będą korzystać z Twojej aplikacji, niż zdając sobie sprawę, że uaktualnienie bazy danych powoduje, że system zachowuje się nienormalnie z powodu zmian, których jeszcze nie odkryłeś.

Przygotuj procedurę przywracania

Wszystko należy zaplanować podczas aktualizacji bazy danych. Zawsze, gdy dostępna jest kopia zapasowa, a testy dają dobre i obiecujące wyniki, zawsze jest to bezpieczne i przewidywalne na wypadek nieoczekiwanych wyzwań podczas uaktualniania produkcyjnych serwerów baz danych MariaDB. W takim przypadku zawsze napisz i przygotuj procedurę, która sprawi, że wszystko wróci do normy płynnie i bezproblemowo.

Jeśli okres konserwacji nie jest zbyt długi, przygotowanie procedury przywracania przy użyciu zautomatyzowanych narzędzi, takich jak Ansible, Chef, Puppet, SaltStack lub Terraform może być dobrym wyborem do przeprowadzenia procedury przywracania. Minimalizuje błędy ludzkie i zapewnia szybkość i sprawność wykonywania ważnych zadań. Chociaż może to spowodować uszkodzenie w przypadku napotkania pojedynczego błędu, jeśli skrypt automatyzacji ulegnie awarii, oznacza to również, że nie możesz zignorować możliwości, że może się to zdarzyć. W związku z tym wskazuje to również, że przywracanie musi być bezproblemowe i zostało odpowiednio przetestowane, aby umożliwić przywrócenie do prawidłowej procedury.

Procedury aktualizacji MariaDB

Aktualizacja MariaDB w wersji 10.4 do 10.5 nie jest jeszcze kłopotliwa i prosta. Poniżej znajdują się kroki, które możesz wykonać, aby zaktualizować do najnowszej wersji MariaDB 10.5.

Przygotuj swoje repozytorium

Jest zrozumiałe, że masz MariaDB 10.4, więc zakłada się, że w bieżących węzłach serwera MariaDB znajduje się obecne repozytorium. W przeciwnym razie możesz i tak dodać repozytorium i to jest po prostu proste.

Ubuntu/Debian

W przypadku systemów opartych na Ubuntu/Debian, w przypadku istniejącego repozytorium mariadb można je edytować. Możesz być w stanie zweryfikować, czy istniejące repozytoria znajdują się na Twoim hoście lub sprawdzić, czy gdzieś istnieje repozytorium MariaDB. Aby to zrobić, po prostu

$ grep ^[^#] /etc/apt/sources.list /etc/apt/sources.list.d/*

Zazwyczaj masz repozytorium mariadb.list. W mojej konfiguracji w Ubuntu 18.0 (Bionic) wygląda to następująco:

[email protected]:/vagrant# cat /etc/apt/sources.list.d/mariadb.list

deb [arch=amd64] http://ftp.osuosl.org/pub/mariadb/repo/10.4/ubuntu bionic main

Wystarczy uruchomić następujący wiersz poleceń, aby dodać repozytorium MariaDB 10.5,

 . /etc/os-release

sudo echo "deb [arch=amd64] http://ftp.osuosl.org/pub/mariadb/repo/10.5/${ID} ${VERSION_CODENAME}  main" >> /etc/apt/sources.list.d/mariadb.list

Przed zainstalowaniem pakietów MariaDB wymaga to zaimportowania pakietów z kluczem publicznym GPG, który służy do weryfikacji podpisów cyfrowych pakietów w ich repozytorium. Możesz sprawdzić swoje klucze apt w następujący sposób:

$ apt-key list |grep -C2 -i 'mariadb'

Jeśli klucze nie są importowane, 

$ sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xcbcb082a1bb943db

lub nowsze wersje oparte na Ubuntu/Debianie, tj. zaczynające się od Debian 9 (Stretch), Debian Unstable (Sid) i Ubuntu 16.04 LTS (Xenial),

$ sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xF1656F24C74CD1D8

Gdy skończysz, po prostu uruchom

$ sudo apt update

CentOS/RHEL

W przypadku CentOS/RHEL, jeśli masz istniejące repozytorium, możesz po prostu dodać lub edytować plik. W przeciwnym razie dodanie poniższych wierszy dla repozytorium MariaDB 10.5 wystarczy do spełnienia wymagań repozytorium (patrz mariadb.repo). Na przykład mam następujący mariadb.repo na moim hoście CentOS 8.0.

[[email protected] ~]# cat /etc/yum.repos.d/mariadb.repo

[mariadb]

name = MariaDB Repository

baseurl = http://yum.mariadb.org/10.4/centos8-amd64

enabled = 1

gpgkey = https://yum.mariadb.org/RPM-GPG-KEY-MariaDB

gpgcheck = 1



[mariadb_10.5]

name = MariaDB Repository For 10.5

baseurl = http://yum.mariadb.org/10.5/centos8-amd64

enabled = 1

gpgkey = https://yum.mariadb.org/RPM-GPG-KEY-MariaDB

gpgcheck = 1

Możesz sprawdzić, czy repozytorium MariaDB jest włączone i działa poprawnie:

[[email protected] ~]# dnf --disablerepo=* --enablerepo=mariadb_10.5 repolist 

repo id                                repo name                                              status

mariadb_10.5                           MariaDB Repository For 10.5                            83

Uaktualnij swoje pakiety MariaDB

Aktualizacja za pomocą MariaDB jest bardzo prosta. Upewnij się, że najpierw poprawnie zamknąłeś serwer MariaDB.

W przypadku zajętego i działającego serwera produkcyjnego, upewnij się, że nie masz połączeń przychodzących i czy brudne strony są prawidłowo opróżniane na dysk. Przed wyłączeniem serwera możesz ustawić agresywnie opróżnianie brudnych stron za pomocą silnika pamięci masowej Innodb, aby wszystkie brudne strony zostały opróżnione i aby proces zamykania przebiegał szybciej,

set global innodb_max_dirty_pages_pct = 0;

Następnie monitoruj brudne strony za pomocą następujących,

$ mysqladmin ext -i10 | grep dirty

| Innodb_buffer_pool_pages_dirty                         | 0                                                |

| Innodb_buffer_pool_bytes_dirty                         | 0                                                |

Gdy wszystko będzie dobrze, zamknij instancję MariaDB,

systemctl stop mariadb

W przypadku klastra bazy danych master/replika dobrą praktyką jest rozpoczynanie uaktualniania zawsze od repliki. Dlatego przed aktualizacją i po wyłączeniu upewnij się, że dodałeś następujące elementy do pliku konfiguracyjnego my.cnf,

[mysqld]

….

skip-slave-start

Pozwala to uniknąć automatycznego uruchamiania wątków replikacji podczas uruchamiania serwera MariaDB. Zapewnia to większe bezpieczeństwo i pozwala uniknąć dalszych błędów w replikacji. Uruchom wątki replikacji ręcznie dopiero po przygotowaniu za pomocą następującej instrukcji,

START SLAVE;

Ubuntu/Debian

Aktualizacja do systemów opartych na Ubuntu/Debian jest dość prosta,

sudo apt install --only-upgrade  mariadb-server mariadb-client mariadb-backup mariadb-common

Oczywiście nie należy podawać z opcją -y, aby można było przejrzeć następujące pakiety do aktualizacji.

Centy/RHEL

Tak samo jak w przypadku systemów opartych na Ubuntu/Debian, CentOS/RHEL również nie sprawia kłopotów z aktualizacją bieżącej wersji MariaDB 10.4. Możesz uruchomić następujące polecenie poniżej, aby wystarczyć do tego procesu,

$ dnf --disablerepo=* --enablerepo=mariadb_10.5 upgrade Mariadb-server MariaDB-client MariaDB-backup MariaDB-common Mariadb-shared

Po instalacji/aktualizacji pakietu

Po zaktualizowaniu pakietów. Ponieważ jest to główna aktualizacja, nie zapomnij przeładować demona dla systemd. Po prostu biegnij,

$ systemctl daemon-reload

Teraz, gdy wszystko jest gotowe, uruchom usługę mariadb

$ systemctl start mariadb

 i uruchom mysqld_upgrade,

$ mysql_upgrade 

Podczas uruchamiania mysql_upgrade zawsze monitoruj dziennik błędów, aby móc wykryć wszelkie błędy przed uruchomieniem i uruchomieniem wszystkiego w normalnych operacjach:

tail -5f /var/log/mariadb/mariadb.log

Wskazówki dotyczące aktualizacji dla użytkowników ClusterControl

Ponieważ ClusterControl nie zapewnia uaktualnienia wersji głównych, podczas wykonywania uaktualnienia pakietu zawsze nie zapomnij wyłączyć trybów automatycznego odzyskiwania klastra MariaDB. Ustaw węzły w trybie konserwacji, aby alerty były wyciszone i aby żadne fałszywe alerty nie były powiadamiane.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MariaDB LTRIM() vs LTRIM_ORACLE():jaka jest różnica?

  2. Pokaż sortowanie w MariaDB

  3. MariaDB RTRIM() vs RTRIM_ORACLE():Jaka jest różnica?

  4. MariaDB JSON_OBJECT() Objaśnienie

  5. UPUŚĆ TABELĘ, JEŚLI ISTNIEJE w MariaDB