Migrācijas

PostgreSQL 19 atjaunināšana: nesaderīgās izmaiņas un jaunie noklusējumi

PostgreSQL 19 ir laidiena kandidāta stadijā, vispārēja pieejamība plānota 19. novembrī. Pirms plānojat atjaunināšanu, šeit ir izmaiņas, kas var apturēt pg_upgrade, salauzt klientus vai klusi mainīt veiktspēju.

· 13 min lasīšanai · AG Data komanda

PostgreSQL 19 atjaunināšana ir tuvu. RC1 iznāca 15. oktobrī, un laidiena komanda ir ieplānojusi RC2 12. novembrī un vispārēju pieejamību 2026. gada 19. novembrī. Lielākā daļa izmaiņu ir apsveicamas, bet vairākas var apturēt pg_upgrade, salauzt vecus klientus vai mainīt vaicājumu veiktspēju bez jebkādas kļūdas. Šo sarakstu mēs pārbaudām pirms produkcijas klastera atjaunināšanas.

Viss turpmāk minētais ņemts no PostgreSQL 19 laidiena piezīmēm un 19. versijas dokumentācijas. Laidiena piezīmes līdz galīgajam laidienam vēl var mainīties, tāpēc laidiena dienā pārbaudiet tās vēlreiz.

Izmaiņas, kas var apturēt pg_upgrade

Šīs jāatrod vispirms, jo pg_upgrade atsakās darboties, kamēr tās nav novērstas. Lielā klasterī par tām jāzina nedēļām iepriekš, nevis apkopes logā.

-- palaidiet katrā datubāzē: indeksi, kas bloķēs pg_upgrade uz 19
SELECT n.nspname, t.relname AS table_name, c.relname AS index_name, o.opcname
FROM pg_index i
JOIN pg_class c ON c.oid = i.indexrelid
JOIN pg_class t ON t.oid = i.indrelid
JOIN pg_namespace n ON n.oid = c.relnamespace
JOIN pg_opclass o ON o.oid = ANY (i.indclass::oid[])
WHERE o.opcname IN ('gist_inet_ops', 'gist_cidr_ops');

Lielā tabulā aizstājošā indeksa būvēšana ar CREATE INDEX CONCURRENTLY var ilgt stundām, un abi indeksi pastāv līdzās, līdz izdzēšat veco. Plānojiet diska vietu un dariet to krietni pirms atjaunināšanas datuma.

Izmaiņas, kas var salauzt klientus un pieteikšanos

Ātra pārbaude pirms atjaunināšanas augstāk minētajiem punktiem:

-- nosaukumi ar CR/LF bloķē pg_upgrade
SELECT 'database' AS kind, datname AS name FROM pg_database WHERE datname ~ '[\r\n]'
UNION ALL
SELECT 'role', rolname FROM pg_roles WHERE rolname ~ '[\r\n]'
UNION ALL
SELECT 'tablespace', spcname FROM pg_tablespace WHERE spcname ~ '[\r\n]';

-- RADIUS rindas pg_hba.conf pārstās darboties
SELECT line_number, type, database, user_name, auth_method
FROM pg_hba_file_rules WHERE auth_method = 'radius';

-- lomas, kurām joprojām ir MD5 paroles (vajag superlietotāju)
SELECT rolname FROM pg_authid WHERE rolpassword LIKE 'md5%';

-- vai kaut kas vēl strādā ar standard_conforming_strings = off?
SHOW standard_conforming_strings;

Jaunie noklusējumi, kas maina veiktspēju

Tie nerada kļūdas. Tie parādās vēlāk kā lēnāki vai ātrāki vaicājumi vai citāda uzvedība zem slodzes.

Jaunas iespējas, kuras vērts ieplānot

Nesteidzieties pirmajā dienā. .0 laidiens ir jauns kods. Kritiskiem klasteriem bieži ir jēga sagaidīt pirmos mazos laidienus un šo laiku izmantot, lai novērstu augstāk minētos šķēršļus, tad pati atjaunināšana būs garlaicīga.

Kas mainās lielās datubāzēs

Galvenās atziņas

PostgreSQL PostgreSQL 19 Atjaunināšana pg_upgrade
Sadarbība ar mums

Plānojat PostgreSQL 19 atjaunināšanu?

Mēs veicam pirms atjaunināšanas auditus un lielu PostgreSQL klasteru atjaunināšanu ar pg_upgrade vai loģisko replikāciju, ar atkāpšanās plānu un minimālu dīkstāvi.

Sazināties Vairāk no emuāra