sql >> Databáze >  >> RDS >> PostgreSQL

Co je nového v PostgreSQL 13?

PostgreSQL, také známý jako nejpokročilejší open source databáze na světě, má od loňského 24. září 2020 novou verzi a nyní je vyzrálá, můžeme zkontrolovat, co je tam nového, abychom mohli začít přemýšlet o migrační plán. PostgreSQL 13 je k dispozici s mnoha novými funkcemi a vylepšeními. V tomto blogu se zmíníme o některých z těchto nových funkcí a uvidíme, jak nasadit nebo upgradovat vaši aktuální verzi PostgreSQL.

Nové funkce a vylepšení PostgreSQL 13

Začněme zmiňovat některé nové funkce a vylepšení této verze PostgreSQL 13, které můžete vidět v oficiální dokumentaci.

Rozdělení

  • Umožnit ořezávání oddílů a spojení po oddílech ve více případech

  • Podpora spouštěčů na úrovni řádků PŘED spouštěči v dělených tabulkách

  • Povolit logickou replikaci rozdělených tabulek prostřednictvím publikace

  • Povolit logickou replikaci do rozdělených tabulek u odběratelů

  • Povolit použití celořádkových proměnných ve výrazech pro rozdělení

Indexy

  • Efektivněji ukládat duplikáty do indexů B-stromu

  • Povolit indexy GiST a SP-GiST ve sloupcích rámečků, aby podporovaly dotazy na pole ORDER BY <-> bod

  • Umožněte indexům GIN efektivněji pracovat! (NOT) klauzule ve vyhledávání tsquery

  • Povolit třídám indexových operátorů přebírat parametry

Optimalizátor

  • Zlepšení odhadu selektivity optimalizátoru pro operátory omezení/shody

  • Povolit nastavení cíle statistik pro rozšířenou statistiku

  • Povolit použití více objektů rozšířené statistiky v jednom dotazu

  • Povolit použití objektů rozšířené statistiky pro klauzule OR a seznamy konstant IN/ANY

  • Povolit funkce v klauzulích FROM, aby byly vytaženy nahoru (vřazeny), pokud jsou vyhodnoceny jako konstanty

Výkon

  • Implementujte přírůstkové třídění a zlepšujte výkon třídění inet hodnot

  • Povolit agregaci hash použít diskové úložiště pro velké sady výsledků agregace

  • Povolit vkládání, nejen aktualizace a mazání, spouštět vysávání v autovakuu

  • Přidat parametr maintenance_io_concurrency pro řízení souběžnosti I/O pro operace údržby

  • Povolit přeskočení zápisů WAL během transakce, která vytváří nebo přepisuje relaci, pokud je wal_level minimální

  • Zlepšete výkon při přehrávání příkazů DROP DATABASE, když se používá mnoho tabulkových prostorů 

  • Urychlení převodu celých čísel na text

  • Snížení využití paměti pro řetězce dotazů a rozšiřující skripty, které obsahují mnoho příkazů SQL

Monitorování

  • Povolit příkazy EXPLAIN, auto_explain, autovacuum a pg_stat_statements sledovat statistiky používání WAL

  • Povolit protokolování ukázkových příkazů SQL, nikoli všech příkazů

  • Přidejte typ backendu do csvlog a volitelně výstup protokolu log_line_prefix

  • Vylepšená kontrola protokolování parametrů připraveného příkazu

  • Přidáním leader_pid do pg_stat_activity nahlásíte proces vedoucího paralelního pracovníka

  • Přidat systémové zobrazení pg_stat_progress_basebackup pro hlášení průběhu streamování základních záloh 

  • Přidat systémové zobrazení pg_stat_progress_analyze pro hlášení průběhu ANALYZACE

  • Přidat pg_shmem_allocations zobrazení systému pro zobrazení využití sdílené paměti

Replikace a obnova

  • Povolit změnu nastavení konfigurace replikace streamování opětovným načtením

  • Povolit přijímačům WAL používat dočasný replikační slot, pokud není určen trvalý

  • Povolit omezení úložiště WAL pro replikační sloty max_slot_wal_keep_size

  • Povolení propagace v pohotovostním režimu ke zrušení jakékoli požadované pauzy

  • Pokud obnova nedosáhne zadaného cíle obnovy, vygeneruje chybu

  • Povolit kontrolu nad tím, kolik paměti spotřebuje logické dekódování, než se přenese na disk

  • Povolit pokračování obnovy, i když WAL odkazuje na neplatné stránky

Příkazy nástrojů

  • Povolit VACUUM zpracovávat indexy tabulky paralelně

  • Hlášení využití vyrovnávací paměti v době plánování ve výstupu BUFFER EXPLAIN

  • Zajistěte, aby CREATE TABLE LIKE šířilo vlastnost NO INHERIT omezení CHECK do vytvořené tabulky

  • Přidejte ALTER TABLE ... DROP EXPRESSION, abyste umožnili odstranění vlastnosti GENERATED ze sloupce

  • Přidat syntaxi ALTER VIEW k přejmenování sloupců zobrazení

  • Přidejte možnosti ALTER TYPE a upravte vlastnosti TOASTu základního typu a podpůrné funkce

  • Přidat možnost CREATE DATABASE LOCALE

  • Povolit DROP DATABASE odpojit relace používající cílovou databázi, aby bylo přetažení úspěšné

A mnoho dalších změn. Některé z nich jsme právě zmínili, abychom se vyhnuli většímu příspěvku na blogu. Nyní se podívejme, jak nasadit tuto novou verzi.

Jak nasadit PostgreSQL 13

Za tímto účelem předpokládáme, že máte nainstalovaný ClusterControl, jinak jej můžete nainstalovat podle příslušné dokumentace.

Chcete-li provést nasazení z ClusterControl, jednoduše vyberte možnost Nasadit a postupujte podle zobrazených pokynů.

Při výběru PostgreSQL musíte zadat uživatele, klíč nebo heslo a port pro připojení pomocí SSH k vašim serverům. Můžete také přidat název svého nového clusteru a pokud chcete, aby ClusterControl nainstaloval odpovídající software a konfigurace za vás.

Po nastavení přístupových informací SSH je třeba definovat přihlašovací údaje k databázi , verze a datadir (volitelné). Můžete také určit, které úložiště použít.

V dalším kroku musíte přidat své servery do clusteru, který se chystáte vytvořit, pomocí IP adresy nebo názvu hostitele.

V posledním kroku si můžete vybrat, zda bude vaše replikace synchronní nebo Asynchronní a poté stačí stisknout Nasadit.

Po dokončení úlohy můžete svůj nový cluster PostgreSQL vidět v hlavní obrazovka ClusterControl.

Nyní máte svůj cluster vytvořený, můžete na něm provádět několik úkolů, jako je přidání nástrojů pro vyrovnávání zatížení (HAProxy), sdružování připojení (PgBouncer) nebo nových podřízených zařízení replikace ze stejného uživatelského rozhraní ClusterControl.

Upgrade na PostgreSQL 13

Pokud chcete upgradovat svou aktuální verzi PostgreSQL na tuto novou verzi, máte tři hlavní možnosti, jak tento úkol provést.

  • Pg_dump:Je to logický nástroj pro zálohování, který vám umožňuje vypsat data a obnovit je v novém PostgreSQL verze. Zde budete mít období výpadku, které se bude lišit podle velikosti vašich dat. Musíte zastavit systém nebo se vyhnout novým datům v primárním uzlu, spustit pg_dump, přesunout vygenerovaný výpis do nového databázového uzlu a obnovit jej. Během této doby nemůžete zapisovat do své primární databáze PostgreSQL, abyste se vyhnuli nekonzistenci dat.

  • Pg_upgrade:Je to nástroj PostgreSQL pro upgrade vaší verze PostgreSQL na místě. V produkčním prostředí by to mohlo být nebezpečné a v takovém případě tuto metodu nedoporučujeme. Při použití této metody budete mít také výpadky, ale pravděpodobně to bude podstatně kratší než použití předchozí metody pg_dump.

  • Logická replikace:Od PostgreSQL 10 můžete použít tuto metodu replikace, která vám umožní provádět hlavní upgrady verzí pomocí nulové (nebo téměř nulové) prostoje. Tímto způsobem můžete přidat pohotovostní uzel v poslední verzi PostgreSQL, a když je replikace aktuální, můžete provést proces převzetí služeb při selhání pro podporu nového uzlu PostgreSQL.

Podrobnější informace o nových funkcích PostgreSQL 13 najdete v oficiální dokumentaci.


  1. Vývoj PostgreSQL pro Windows, část 2

  2. Jak uniknout % z dotazu python mysql

  3. SQL Server 2016:Vytvořte uživatele databáze

  4. Jak zobrazit data Unicode pomocí PHP