Ponieważ wewnętrzne struktury tabeli baz danych sporo się różnią pomiędzy tymi dwoma wersjami pakietów, kluczowe znaczenie w tej procedurze ma uruchomienie programu mysql_upgrade tuż po zainstalowaniu nowych wersji oprogramowania i uruchomieniu serwera MariaDB, ale tylko jeśli aktualizacja miała miejsce w systemach Red Hat, Fedora lub Centos, ponieważ pakiety oprogramowania w systemach Ubuntu i Debian wykonują tą czynność automatycznie i samodzielnie.
Przygotowałem ten krótki artykuł, ponieważ w ostatnim czasie zbyt wielu użytkowników Linuxa kontaktowało się ze mną w związku z problemami, które występowały po przejściu z wersji 5.5 do 10.1 pakietu MariaDB. Najbardziej zdesperowani byli Ci, którzy zatrudnieni są w dużych korporacjach, gdzie aktualizowano jednocześnie więcej serwerów. Niektorzy z nich wpadali w prawdziwy szał gdy serwer MariaDB nie uruchamiał się tuż po aktualizacji.
Najczęściej występujące problemy po aktualizacji z wersji 5.5 do wersji 10.1 to nie tylko brak możliwości uruchomienia serwera MariaDB, lecz także inne przykre błędy, uniemożliwiające normalne korzystanie z baz danych.
Przykładowe problemy występujące po błędnie wykonanej aktualizacji pakietu, na podstawie dziennika logów MariaDB:
[ERROR] mysqld: Can't lock aria control file '/var/lib/mysql/aria_log_control' for exclusive use, error: 11. Will retry for 30 seconds
[ERROR] mysqld: Got error 'Could not get an exclusive lock; file is probably in use by another process' when trying to use aria control file '/var/lib/mysql/aria_log_control'
[ERROR] Plugin 'Aria' init function returned error.
[ERROR] Plugin 'Aria' registration as a STORAGE ENGINE failed.
[ERROR] InnoDB: Unable to lock ./ibdata1, error: 11
[ERROR] InnoDB: Could not open or create the system tablespace. If you tried to add new data files to the system tablespace, and it failed here, you should now edit innodb_data_file_path in my.cnf back to what it was, and remove the new ibdata files InnoDB created in this failed attempt. InnoDB only wrote those files full of zeros, but did not yet use them in any way. But be careful: do not remove old data files which contain your precious data!
[ERROR] Plugin 'InnoDB' init function returned error.
[ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
[ERROR] /usr/sbin/mysqld: unknown option '--log-slow-queries'
[ERROR] Aborting
Aktualizacja MariaDB z wersji 5.5 do wersji 10.1 w systemach Red Hat, Fedora i Centos - zalecana procedura krok po kroku
1. Tworzymy plik /etc/yum.repos.d/MariaDB.repo, którego zawartość powinna wyglądać tak:
[mariadb]
name = MariaDB
baseurl = http://yum1.mariadb.org/10.1/centos7-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1
2. Wykonujemy kopię zapasową wszystkich baz danych MariaDB. Przykładowo w następujący sposób:
baseurl = http://yum1.mariadb.org/10.1/centos7-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1
[root@amanda /]# mysqldump -c --all-databases -p > backup_27122016.sql
3. Usuwamy wersje 5.5 pakietu oprogramowania MariaDB
[root@amanda /]# yum remove mariadb mariadb-server
4. Instalujemy nowe wersje oprogramowania
[root@amanda /]# yum install MariaDB-client MariaDB-server MariaDB-shared MariaDB-common
5. Uruchamiamy serwer
[root@amanda /]# systemctl start mariadb
6. Aktualizujemy strukturę istniejących tabeli MariaDB
[root@amanda /]# mysql_upgrade -p
Przykładowy wynik uruchomienia programu mysql_upgrade:Zobacz film: aktualizacja MariaDB z 5.5 do 10.1 - jak to zrobić krok po kroku!
W przypadku prawidłowego wykonania procedury aktualizacyjnej pakiet MariaDB nie powinien sprawiać jakichkolwiek problemów. Powodzenia!
Brak komentarzy:
Prześlij komentarz
Dodaj komentarz