ARTYKUŁ W TRAKCIE TWORZENIA
Aktualizacja bazy danych PostgreSQL do wersji 12 lub nowszej
1. Hasła scram-sha-256 lub md5
Od wersji 12 PostgreSQL domyślnie ustawia wartość dla haseł:
password_encryption = scram-sha-256
Po ustawieniu haseł w PostgreSQL wygląda to następująco:
usename | usesysid | usecreatedb | usesuper | userepl | usebypassrls | passwd | valuntil | useconfig ------------+----------+-------------+----------+---------+--------------+---------------------------------------------------------------------------------------------------------------------------------------+----------+----------- http | 16385 | f | f | f | f | SCRAM-SHA-256$4096:D1NPKy+ZDiGGF1/E8q5M/g==$kD4aorMJUp046mghWNnZ89TWalFfacTkzGEfBvg98Ps=:27uyFL+eLw0b3SQIMGyxVuwd+SC1/Tgh9ABb9MTLWoE= | | edokumenty | 16384 | f | f | f | f | SCRAM-SHA-256$4096:9Q2v9SU06DQ2bHV/tCu1XA==$GqcL8rcrZN8LLoOByOZarhkxYiIqrsSidC+WPuVAuds=:xpWGbHlcVfkWXLLA6cMGUz8BVGcLj8+KQNLHXJJ0JcM= | | postgres | 10 | t | t | t | t | SCRAM-SHA-256$4096:2gkT6rlhnnvIWi9K5L403Q==$J3bmONbpjLLpsKpIaJG2TnGZzjwRjiRnu2q66PLZy88=:QfVmPeEodOMpxDJz1n6pFB47lWS967v00YoQQaJYqE0= | |
Jeśli wykonujemy pg_upgradecluster z wersji gdzie domyślnie korzystaliśmy szyfrowania md5. Do nowego PostgreSQL zostanie przeniesione to samo ustawienia. Dlatego jeśli chcemy przejść na scram-sha-256 należy zmienić ustawienie w PostgreSQL
vim /etc/postgresql/12/main/postgresql.conf password_encryption = scram-sha-256 :wq
A następnie restart usługi postgreSQL
Po zalogowaniu os psql wykonać polecenie
SELECT rolname, rolpassword ~ '^SCRAM-SHA-256\$' AS has_upgraded FROM pg_authid WHERE rolcanlogin;
Jeśli zwróci nam FALSE, konieczne będzie zmiana hasła np:
ALTER user postgres with encrypted password 'hasło';
Zmiana konfiguracji pg_hba.conf
vim /etc/postgresql/13/main/pg_hba.conf
# "local" is for Unix domain socket connections only local edokumenty edokumenty scram-sha-256 local edokumenty http scram-sha-256
2. Konfiguracja pgbouncer
Zmiana konfiguracji w przypadku skorzystania z szyfrowania scram-sha-256 została opisana tym artykule.
3. Usunięcie OIDs przed odtworzeniem bazy
Podczas odtwarzania starej bazy czyli na przykład gdy mamy od czasu systemu od wersji 4.10 możemy napotkać problem z OIDs, co podczas odtwarzania bazy lub wykonania pg_upgradecluster otrzymamy komunikat:
Podczas odtawrznia bazy restore
ERROR: tables declared WITH OIDS are not supported
Podczas pg_upgradecluster
pg_dump: warning: WITH OIDS is not supported anymore (table ""documents_2_2020"") pg_dump: warning: WITH OIDS is not supported anymore (table ""log"") pg_dump: warning: WITH OIDS is not supported anymore (table ""ws_incoming_messages"") pg_dump: warning: WITH OIDS is not supported anymore (table ""ws_box_incoming_messages"") pg_dump: warning: WITH OIDS is not supported anymore (table ""ws_box_incoming_messages_2_2020"")[[Image()]]
przed aktualizacja należy usunąć OIDy z bazy. Ten problem rozwiązuje aktualizacja do wersji 6.64.4, którą możemy wykonać na PostgreSQL w wersji 10 lub 11. Po wykonaniu patcha 6.0/041 OIDs zostaną usunięte z bazy. Następnie będziemy mogli przejść do aktualizacji PostgreSQL 12 lub nowszej.
4. Wyłączenie JUST-IN-TIME
Po aktualizacji do PostgreSQL 12/13 należy wyłączyć jit, która domyślnie jest włączona. Z naszych testów wynika, że aplikacja Ready_™ działa szybciej z wyłączonym jit.
jit = off # allow JIT compilation