Różnice pomiędzy wersjami 2 i 3
⇤ ← Wersja 2 z 2016-10-14 23:53:11 →
Rozmiar: 2413
Edytor: wtps0n
Komentarz: + highlight, aktualizacje po udanym upgrade
← Wersja 3 z 2019-06-16 23:20:52 → ⇥
Rozmiar: 4721
Edytor: wtps0n
Komentarz: Aktuzalizacja do 5.7
Usunięcia zostały oznaczone w ten sposób. Dodatki zostały oznaczone w ten sposób.
Linia 54: Linia 54:
= Upgrade do wersji 5.7 =
Upgrade z ostatniej wersji 5.6.x do najnowszej wersji 5.7.x przebiega poprawnie. Tzn. zgodnie z dokumentacją binarne pliki baz danych powinny zachować się poprawnie, niemniej warto mieć backup przez wykonaniem aktualizacji.

== Probemy z buforem dla InnoDB ==
Po wykonaniu aktualizacji serwer bazy danych nie chce się uruchomić. W logach widać problem z "''buffer pool''". Na podstawie informacji znalezionych w sieci internet należy zmodyfikować my.cnf:

{{{#!highlight ini numbers=off
innodb_buffer_pool_load_at_startup = 0
innodb_buffer_pool_dump_at_shutdown = 1
}}}

Po wykonaniu restartu można wustawić docelowe wartości zmiennych:
{{{#!highlight ini numbers=off
innodb_buffer_pool_load_at_startup = 1
innodb_buffer_pool_dump_at_shutdown = 1
}}}

== mysql_upgrade ==
Po wykonaniu aktualizacji, zalecane jest uruchomienie narzędzia `mysql_upgrade`. W niektórych przypadkach może ono powodować błędy (nie pechodzi etapu `mysqlcheck`), dlatego też można wykonać polecenie ograniczające do tabel systemowych:
{{{#!highlight bash numbers=off
mysql_upgrade -s --user=root --password=password
}}}

== mysqlcheck ==
Uruchoemienie narzędzia mysql powoduje przejście po wszystkich katalogach w ramach bazy. Tak więc do sprawdzania może załapać się katalog nieistniejąca bazy danych ''RCS''. Tak więc sprawdzanie baz danych najlepiej wywołać poprzez:
{{{#!highlight bash numbers=off
mysqlcheck --all-databases --skip-database=RCS --user=root --password=password
}}}

== Konieczny restart serwera baz danych ==
Po wykonaniu `mysql_upgrade` oraz `mysqlcheck` należy wykonać restart bazy danych. W przciwnym przypadku mogą pojawiać się dziwne błędy np. w mysql_check NAGIOSa.

== Modyfikacja uprawnień dla bazy danych sys ==
Po aktualizacji pojawiły się porblemy z wykonywaniem backupu bazy danych sys - brak uprawnień dla użytkownika wykonującego backup. Rozwiązaniem jest:
{{{#!highlight mysql numbers=off
GRANT USAGE ON *.* TO 'user'@'localhost';
GRANT SHOW VIEW ON *.* TO 'user'@'localhost';
GRANT EXECUTE ON *.* TO 'user'@'localhost';

flush privileges;
}}}
Linia 55: Linia 97:
 * [[http://dev.mysql.com/doc/refman/5.6/en/upgrading-downgrading.html|Dokumentacja mySQL - upgrade|targe="_blank"]]  * [[https://dev.mysql.com/doc/refman/5.6/en/upgrading-downgrading.html|Dokumentacja mySQL - upgrade do 5.6.x|targe="_blank"]]
 * [[https://dev.mysql.com/doc/refman/5.7/en/upgrading.html|Dokumentacja mySQL - upgrade do 5.7.x|targe="_blank"]]
Linia 58: Linia 101:
{i} ` `<<GetVal(SlownikNewBsd)>> {i} ` `<<GetVal(SlownikNewBsd,adm-podpis)>>

Upgrade bazy danych mySQL

Utworzenie struktury katalogów

Poniższe instrukcje dotyczą partycji dla beadm. Wykonanie na zapas. Być może prościej jest po prostu wykonac zfs rename:

zfs rename

zfs rename sys/data/v/db/mysql sys/data/v/db/mysql56

Utworzenie hierarchi katalogów

zfs create -o compress=off -o recordsize=8k sys/data/v/db/mysql56
zfs create -o primarycache=metadata -o recordsize=16k sys/data/v/db/mysql56/ibdata
zfs create -o primarycache=metadata -o recordsize=128k -o compress=lz4 sys/data/v/db/mysql56/logs
zfs create -o compress=off -o recordsize=8k -o exec=off sys/data/v/tmp/mysql

Wykonanie backupu obecnych baz

Przed przystąpieniem do procesu upgrade-ukonieczne jest wykonanie backupu wszystkich baz danych w celu późniejszego "wgrania" do nowego serwera. Wg dokumentacji mySQL upgrade (plików binarnych) powinien poprawnie wczytać obecne bazy danych. Niemniej mogą one (bazy) wymagać uruchomienia poleceń REPAIR TABLE w wybranych przypadkach. W ostateczności wgranie backupu od początku zaowocuje sukcesem.

Usunięcie dotychczasowej wersji

pkg delete mysql55-server mysql55-client

Zainstalowanie nowej wersji

Za pomocą własnego repozytorium skryptów należy zainstalować nową wersję:

pkg install -y mysql56-server

zmiany w rc.conf

W pliku startowym /etc/rc.conf należy utawić nastęujące zmienne:

mysql_enable="YES"
mysql_dbdir="/var/db/mysql56"

mysql_upgrade

Po zainstalowaniu nowej wersji mySQL należy wykonać polecenie:

mysql_upgrade --user=root --password=password

Wgranie backupów

Warto skorzystać ze wskazówek dotyczących szybkiego odzyskiwania backupów. Należy odzyskać kolejne bazy danych.

Upgrade do wersji 5.7

Upgrade z ostatniej wersji 5.6.x do najnowszej wersji 5.7.x przebiega poprawnie. Tzn. zgodnie z dokumentacją binarne pliki baz danych powinny zachować się poprawnie, niemniej warto mieć backup przez wykonaniem aktualizacji.

Probemy z buforem dla InnoDB

Po wykonaniu aktualizacji serwer bazy danych nie chce się uruchomić. W logach widać problem z "buffer pool". Na podstawie informacji znalezionych w sieci internet należy zmodyfikować my.cnf:

innodb_buffer_pool_load_at_startup = 0
innodb_buffer_pool_dump_at_shutdown = 1

Po wykonaniu restartu można wustawić docelowe wartości zmiennych:

innodb_buffer_pool_load_at_startup = 1
innodb_buffer_pool_dump_at_shutdown = 1

mysql_upgrade

Po wykonaniu aktualizacji, zalecane jest uruchomienie narzędzia mysql_upgrade. W niektórych przypadkach może ono powodować błędy (nie pechodzi etapu mysqlcheck), dlatego też można wykonać polecenie ograniczające do tabel systemowych:

mysql_upgrade -s --user=root --password=password

mysqlcheck

Uruchoemienie narzędzia mysql powoduje przejście po wszystkich katalogach w ramach bazy. Tak więc do sprawdzania może załapać się katalog nieistniejąca bazy danych RCS. Tak więc sprawdzanie baz danych najlepiej wywołać poprzez:

mysqlcheck  --all-databases --skip-database=RCS --user=root --password=password

Konieczny restart serwera baz danych

Po wykonaniu mysql_upgrade oraz mysqlcheck należy wykonać restart bazy danych. W przciwnym przypadku mogą pojawiać się dziwne błędy np. w mysql_check NAGIOSa.

Modyfikacja uprawnień dla bazy danych sys

Po aktualizacji pojawiły się porblemy z wykonywaniem backupu bazy danych sys - brak uprawnień dla użytkownika wykonującego backup. Rozwiązaniem jest:

GRANT USAGE ON *.* TO 'user'@'localhost';
GRANT SHOW VIEW ON *.* TO 'user'@'localhost';
GRANT EXECUTE ON *.* TO 'user'@'localhost';

flush privileges;

Źródła w sieci internet


{i}  (c) 2004 - 2026 BSD Serwis Krzysztof Stryjek. W przypadku błędów, poprawek proszę kontaktować się z administratorem wiki.

UpgradeMysql (ostatnio edytowane 2019-06-16 23:20:52 przez wtps0n)