PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

Cosa c'è di nuovo in PostgreSQL 13?

PostgreSQL, noto anche come il database open source più avanzato al mondo, ha una nuova versione di rilascio dallo scorso 24 settembre 2020, e ora è maturo, possiamo controllare cosa c'è di nuovo lì per iniziare a pensare a un piano di migrazione. PostgreSQL 13 è disponibile con molte nuove funzionalità e miglioramenti. In questo blog menzioneremo alcune di queste nuove funzionalità e vedremo come distribuire o aggiornare la versione corrente di PostgreSQL.

Nuove funzionalità e miglioramenti di PostgreSQL 13

Iniziamo a menzionare alcune delle nuove funzionalità e miglioramenti di questa versione di PostgreSQL 13 che puoi vedere nella documentazione ufficiale.

Partizionamento

  • Consenti l'eliminazione delle partizioni e dei join partizionati in più casi

  • Supporta i trigger a livello di riga PRIMA su tabelle partizionate

  • Consenti la replica logica delle tabelle partizionate tramite pubblicazione

  • Consenti la replica logica in tabelle partizionate sugli abbonati

  • Consenti l'uso di variabili a riga intera nelle espressioni di partizionamento

Indici

  • Memorizza i duplicati in modo più efficiente negli indici B-tree

  • Consenti agli indici GiST e SP-GiST sulle colonne della casella di supportare ORDER BY casella <-> query punto

  • Consenti agli indici GIN di gestire in modo più efficiente! (NOT) clausole nelle ricerche tsquery

  • Consenti alle classi di operatori di indice di prendere parametri

Ottimizzatore

  • Migliora la stima della selettività dell'ottimizzatore per gli operatori di contenimento/corrispondenza

  • Consenti di impostare l'obiettivo delle statistiche per le statistiche estese

  • Consenti l'uso di più oggetti statistici estesi in una singola query

  • Consenti l'uso di oggetti statistici estesi per le clausole OR e gli elenchi di costanti IN/ANY

  • Consenti alle funzioni nelle clausole FROM di essere richiamate (inline) se valutano come costanti

Prestazioni

  • Implementa l'ordinamento incrementale e migliora le prestazioni dell'ordinamento dei valori inet

  • Consenti aggregazione hash per utilizzare l'archiviazione su disco per set di risultati di aggregazione di grandi dimensioni

  • Consenti inserimenti, non solo aggiornamenti ed eliminazioni, per attivare l'attività di aspirazione nell'autovacuum

  • Aggiungi il parametro Maintenance_io_concurrency per controllare la concorrenza di I/O per le operazioni di manutenzione

  • Consenti di ignorare le scritture WAL durante una transazione che crea o riscrive una relazione, se wal_level è minimo

  • Migliora le prestazioni durante la riproduzione dei comandi DROP DATABASE quando sono in uso molti tablespace 

  • Accelera le conversioni di numeri interi in testo

  • Riduci l'utilizzo della memoria per le stringhe di query e gli script di estensione che contengono molte istruzioni SQL

Monitoraggio

  • Consenti a EXPLAIN, auto_explain, autovacuum e pg_stat_statements di tenere traccia delle statistiche sull'utilizzo di WAL

  • Consenti la registrazione di un campione di istruzioni SQL, anziché di tutte

  • Aggiungi il tipo di backend a csvlog e facoltativamente log_line_prefix output del log

  • Migliora il controllo della registrazione dei parametri delle istruzioni preparate

  • Aggiungi leader_pid a pg_stat_activity per segnalare un processo leader di un lavoratore parallelo

  • Aggiungi la vista di sistema pg_stat_progress_basebackup per segnalare l'avanzamento dei backup di base in streaming 

  • Aggiungi la vista di sistema pg_stat_progress_analyze per segnalare l'andamento dell'ANALISI

  • Aggiungi la vista di sistema pg_shmem_allocations per visualizzare l'utilizzo della memoria condivisa

Replica e ripristino

  • Consenti la modifica delle impostazioni di configurazione della replica in streaming ricaricando

  • Consenti ai ricevitori WAL di utilizzare uno slot di replica temporaneo quando non ne è specificato uno permanente

  • Consenti allo spazio di archiviazione WAL per gli slot di replica di essere limitato da max_slot_wal_keep_size

  • Consenti promozione standby per annullare qualsiasi pausa richiesta

  • Genera un errore se il ripristino non raggiunge l'obiettivo di ripristino specificato

  • Consenti il ​​controllo sulla quantità di memoria utilizzata dalla decodifica logica prima che venga riversata su disco

  • Consenti il ​​proseguimento del ripristino anche se WAL fa riferimento a pagine non valide

Comandi di utilità

  • Consenti a VACUUM di elaborare gli indici di una tabella in parallelo

  • Segnala l'utilizzo del buffer in fase di pianificazione nell'output BUFFER di EXPLAIN

  • Fai in modo che CREATE TABLE LIKE propaghi la proprietà NO INHERIT di un vincolo CHECK alla tabella creata

  • Aggiungi ALTER TABLE ... DROP EXPRESSION per consentire la rimozione della proprietà GENERATED da una colonna

  • Aggiungi la sintassi ALTER VIEW per rinominare le colonne della vista

  • Aggiungi opzioni ALTER TYPE per modificare le proprietà TOAST di un tipo base e le funzioni di supporto

  • Aggiungi l'opzione CREATE DATABASE LOCALE

  • Consenti a DROP DATABASE di disconnettere le sessioni utilizzando il database di destinazione, consentendo la riuscita del rilascio

E molte altre modifiche. Ne abbiamo appena menzionati alcuni per evitare un post sul blog più ampio. Ora vediamo come distribuire questa nuova versione.

Come distribuire PostgreSQL 13

Per questo, assumiamo che tu abbia installato ClusterControl, altrimenti puoi seguire la documentazione corrispondente per installarlo.

Per eseguire un deployment da ClusterControl, seleziona semplicemente l'opzione Deploy e segui le istruzioni che appaiono.

Quando si seleziona PostgreSQL, è necessario specificare Utente, Chiave o Password e Porta per connetterti tramite SSH ai tuoi server. Puoi anche aggiungere un nome per il tuo nuovo cluster e se vuoi che ClusterControl installi per te il software e le configurazioni corrispondenti.

Dopo aver impostato le informazioni di accesso SSH, è necessario definire le credenziali del database , versione e datadir (opzionale). Puoi anche specificare quale repository utilizzare.

Nel passaggio successivo, devi aggiungere i tuoi server al cluster che creerai utilizzando l'indirizzo IP o il nome host.

Nell'ultimo passaggio, puoi scegliere se la tua replica sarà Sincrona o Asincrono, quindi premi semplicemente su Distribuisci.

Una volta terminata l'attività, puoi vedere il tuo nuovo cluster PostgreSQL nella schermata principale di ClusterControl.

Ora che hai creato il tuo cluster, puoi eseguire diverse attività su di esso, come l'aggiunta di sistemi di bilanciamento del carico (HAProxy), pool di connessioni (PgBouncer) o nuovi slave di replica dalla stessa interfaccia utente di ClusterControl.

Aggiornamento a PostgreSQL 13

Se desideri aggiornare la tua versione corrente di PostgreSQL a questa nuova, hai tre opzioni principali che eseguiranno questa attività.

  • Pg_dump:è uno strumento di backup logico che ti permette di scaricare i tuoi dati e ripristinarli nel nuovo PostgreSQL versione. Qui avrai un periodo di inattività che varierà in base alla dimensione dei tuoi dati. È necessario arrestare il sistema o evitare nuovi dati nel nodo primario, eseguire pg_dump, spostare il dump generato nel nuovo nodo del database e ripristinarlo. Durante questo periodo, non puoi scrivere nel tuo database PostgreSQL principale per evitare l'incoerenza dei dati.

  • Pg_upgrade:è uno strumento PostgreSQL per aggiornare la tua versione di PostgreSQL sul posto. Potrebbe essere pericoloso in un ambiente di produzione e in tal caso non consigliamo questo metodo. Usando questo metodo avrai anche tempi di inattività, ma probabilmente saranno notevolmente inferiori rispetto all'utilizzo del precedente metodo pg_dump.

  • Replica logica:da PostgreSQL 10, puoi utilizzare questo metodo di replica che ti consente di eseguire aggiornamenti di versione principali con zero (o quasi zero) tempi di inattività. In questo modo, puoi aggiungere un nodo standby nell'ultima versione di PostgreSQL e, quando la replica è aggiornata, puoi eseguire un processo di failover per promuovere il nuovo nodo PostgreSQL.

Per informazioni più dettagliate sulle nuove funzionalità di PostgreSQL 13, puoi fare riferimento alla documentazione ufficiale.