Aktualizace PostgreSQL. Release of reshape, nástroj pro migraci na nové schéma bez zastavení práce

Pro všechny podporované větve PostgreSQL byly vygenerovány opravné aktualizace: 14.2, 13.6, 12.10, 11.15 a 10.20, které opravují 55 chyb zjištěných za poslední tři měsíce. Mimo jiné jsme opravili problémy, které ve vzácných případech vedly k poškození indexu při změně HOT (high-heap-only n-tice) řetězců během operace VACUUM nebo při provádění operace REINDEX CONCURRENTLY na indexech v tabulkách, které používají mechanismus úložiště TOAST.

Opravené pády při provádění ALTER STATISTICS a při načítání dat s vícerozsahovými typy. Chyby v plánovači dotazů, které způsobovaly nesprávné výsledky, byly opraveny. Opraveny úniky paměti při aktualizaci indexů pomocí výrazů a při provádění operace REASSIGN OWNED BY na velkém počtu objektů. Je poskytována konstrukce pokročilých statistik pro segmentované tabulky.

Dále můžeme zaznamenat vydání utility reshape, která umožňuje provádět složité aktualizace datového schématu v PostgreSQL bez zastavení práce, což za normálních podmínek vyžaduje ruční změny a dočasné vypnutí služeb využívajících databázi. Obslužný program umožňuje přejít ze starého datového schématu na nové bez zdlouhavého blokování a bez přerušení cyklu zpracování požadavku. Obslužný program automaticky vytváří pohledy tabulek, se kterými aplikace nadále pracují během migrace schématu dat, a také konfiguruje spouštěče, které překládají operace přidávání a odstraňování dat mezi starými a novými schématy.

Při použití reshape během migrace tedy zůstává k dispozici staré i nové schéma současně a aplikace lze postupně převádět do nového schématu bez zastavení práce (ve velkých infrastrukturách lze handlery postupně vyměňovat ze starých na nové). Po dokončení migrace aplikací do nového schématu se odstraní pohledy a spouštěče vytvořené pro zachování podpory pro staré schéma. Pokud jsou během migrace zjištěny problémy s aplikacemi, můžete vrátit změnu schématu a vrátit se do starého stavu.

Zdroj: opennet.ru

Přidat komentář