PostGreSQL Ver.12 e 9.6

Verranno trattate differenti versioni di PostgreSQL, con particolare riferimento alla versione 12 nonché la precedente versione 9.6. Saranno mostrate le maggiori differenze fra le varie versioni e le modalità possibili per l’aggiornamento e la migrazione da una versione ad un’altra.
La piattaforma di riferimento sarà Unix, in particolare FreeBSD e Fedora Linux.
Saranno forniti cenni a vari tools utili per la gestione del cluster, nonché all’interfacciamento con lo stesso.
Obiettivo
Il corso, oltre ad affrontare gli aspetti teorici, prevede l’analisi approfondita di interessanti casi di studio e di esercitazioni pratiche mirate al raggiungimento di una completa padronanza degli argomenti e di una piena autonomia nell’operatività.
Durata
4 giornate
Materiali
Saranno rilasciate slide a cura del docente. Le slide saranno disponibile all’inizio del corso. Gli esempi pratici saranno tutti eseguiti mediante terminale interattivo psql, ove possibile. Il docente preparerà le macchine virtuali necessarie a mostrare gli esempi e i concetti illustrati nel corso. Sarà, inoltre, erogato un test, a fine corso, basato su una serie di domande di valutazione a risposta singola e/o multipla.
Programma del corso
- Introduzione alla configurazione di PostgreSQL, file e viste (cataloghi) relativi.
- Tecniche per l’individuazione degli errori di configurazione.
- Principali parametri di configurazione e loro significato, nonché dimensionamento in base alla dimensione (attesa o misurata) del cluster.
- Saranno presentati i concetti di ruolo come utente e gruppo, nonché la configurazione necessaria alla gestione dei permessi a livello di database e di singolo oggetto.
- Si discuterà dei meccanismi di gestione degli account.
- Saranno mostrati i principali cataloghi di sistema per tenere traccia delle attività del cluster.
- Verranno illustrati alcuni tool utili per l’analisi a posteriori e dinamica del sistema in esecuzione, con esempi di query per ricavare le informazioni di eventuali processi bloccati, lock, e anomalie.
- Verrà mostrato il funzionamento del query planner, con particolare riferimento all’eventuale utilizzo di indici.
- Dopo aver classificato e illustrato i vari tipi di indici messi a disposizione, nonché il loro contesto di utilizzo, si passerà all’analisi di alcune query per comprendere come individuare eventuali punti critici e tuning da operare sulle query “lente”.
- Si mostreranno i cataloghi di sistema relativi all’individuazione di indici non utilizzati e/o mancanti.
- Saranno illustrate le principali opzioni di backup e restore native, nonché la possibilità di utilizzare strumenti di backup esterni con particolare riferimento a pgBackRest e BarMan.
- Si spiegherà il funzionamento dei Write Ahead Logs (WALs), il loro utilizzo in caso di crash-recovery e la configurazione relativa nel cluster.
- Si mostrerà il funzionamento del Multi Version Concurrency Control (MVCC) e come questo possa impattare su un database attivo.
- Da ultimo si valuterà come risolvere i problemi causati da un eccessivo “bloat” di tabelle ed indici mediante VACUUM manuale e automatico, nonché la configurazione delle soglie e l’analisi del funzionamento.
Verranno mostrate le due tipologie correntemente supportate da PostgreSQL:
- replica fisica
- replica logica
Per ciascuna saranno fornite configurazioni ed esempi, nonché si discuterà delle casistiche di utilizzo.
Si introdurranno tools esterni quali:
- pgbouncer per la gestione delle connessioni rimbalzate su più host
- PL/Proxy per lo sharding mediante codice installato sul server
- partizionamento dichiarativo per realizzare lo sharding fra più istanze PostgreSQL fra loro collegabili.
- Differenza fra auditing e logging.
- Parametri di configurazione per il logging e loro utilizzo.
- Verrà trattato e discusso il meccanismo di auditing, con particolare riferimento all’estensione pgaudit che consente una con gurazione molto granulare per l’auditing delle sessioni utente/applicazione.
- Verranno illustrati concetti relativi alla definizione di funzioni e procedure, con particolare riferimento al linguaggio plpgSQL, ma saranno anche mostrati esempi didattici in altri linguaggi.
- Si discuteranno casi particolari di istruzioni SQL come UPSERT, query RETURNING, alcuni cenni a Common Table Expressions.
- Sarà discusso approfonditamente l’aspetto delle viste, normali e materializzate, nonché i trigger tradizionali e quelli ad eventi.
Descrizione
Durata
4 giornate
Informazioni