Federico Campoli. Postgresql 8.1. Pagina 1



Похожие документы
PostgreSQL - amministrazione

Lorenzo Sarti Materiale didattico sarti

Backup e Restore di un database PostgreSQL Sandro Fioravanti INFN-LNF

Laboratorio di Basi di Dati e Web

Architettura di storage

The world s most advanced class on PostgreSQL o quasi! 4 Marzo 8 Aprile L'Antipasto 11 Marzo

Esercitazione query in SQL L esercitazione viene effettuata sul database viaggi e vacanze che prevede il seguente modello E/R:

Z3 B1 Message Addon Invio Massivo Documenti via e Fax per SAP Business One

GERARCHIE RICORSIVE - SQL SERVER 2008

Laboratorio di Basi di Dati

Il sistema IBM DB2. Sistemi Informativi T. Versione elettronica: L01.1.IntroduzioneDB2.pdf

A. Bardine - Introduzione a PostgreSQL. PostgreSQL è un software relazionale e ad oggetti per la gestione di basi di dati

Manuale per la configurazione di AziendaSoft in rete

Basi di dati. Introduzione a PostgreSQL. K.Donno - Introduzione a PostgreSQL

Informatica Generale Andrea Corradini Sistemi di Gestione delle Basi di Dati

Basi di dati. Il Linguaggio SQL. K. Donno - Il Linguaggio SQL

- & POSTGRESQL. Il presente documento comprende la procedura di prima installazione di Postgres (e altre nozioni di base).

- & POSTGRESQL. Il presente documento comprende la procedura di prima installazione di Postgres (e altre nozioni di base).

Il linguaggio SQL. è di fatto lo standard tra i linguaggi per la gestione di data base relazionali.

Introduzione a JDConnector

Istruzioni di installazione di IBM SPSS Modeler Text Analytics (licenza per sito)

ATOLLO BACKUP GUIDA INSTALLAZIONE E CONFIGURAZIONE

PosgreSQL DBA TUNING. Federico Campoli

SOMMARIO COSA SERVE... 2 PRIMA DI INIZIARE... 2 COME PROCEDERE LATO SERVER... 3 COME PROCEDERE LATO CLIENT... 3

MySQL Database Management System

Università Degli Studi Di Milano. PostgreSQL

MANUALE PARCELLA FACILE PLUS INDICE

Lezione 9. Applicazioni tradizionali

User Tools: DataBase Manager

I GIS e l'open Source

Digital Persona Client/Server

FOXWave Gestione gare ARDF IZ1FAL Secco Marco Sezione ARI BIELLA

Presentazione di virtual desktop client + LTSP server

Acronis License Server. Manuale utente

Installazione MS SQL Express e utilizzo con progetti PHMI

Installazione del software Fiery per Windows e Macintosh

Console di Amministrazione Centralizzata Guida Rapida

LA GESTIONE DELLE VISITE CLIENTI VIA WEB

DDL, VINCOLI D INTEGRITÁ, AGGIORNAMENTI E VISTE. SQL è più di un semplice linguaggio di interrogazione

Manuale utente Volta Control

1. RETI INFORMATICHE CORSO DI LAUREA IN INGEGNERIA INFORMATICA SPECIFICHE DI PROGETTO A.A. 2013/ Lato client

Volumi di riferimento

Lezione 8. Metadati, Viste e Trigger

Utilizzando Microsoft Access. Si crea la tabella Anagrafica degli alunni,le Materie e i voti si mettono alcuni campi

Istruzioni di installazione di IBM SPSS Modeler Text Analytics (utente singolo)

2104 volume III Programmazione

SOSEBI PAPERMAP2 MODULO WEB MANUALE DELL UTENTE

OSSIF WEB. Manuale query builder

I MODULI Q.A.T. PANORAMICA. La soluzione modulare di gestione del Sistema Qualità Aziendale

Modulo 4 Il pannello amministrativo dell'hosting e il database per Wordpress

GESGOLF SMS ONLINE. Manuale per l utente

Database Manager Guida utente DMAN-IT-01/09/10

Manuale d uso Software di parcellazione per commercialisti Ver [05/01/2015]


Indice. Recupero CDDB

Nuovo server E-Shop: Guida alla installazione di Microsoft SQL Server

- & POSTGRESQL. Il presente documento comprende la procedura di prima installazione di Postgres (e altre nozioni di base).

CONDIVIDERE IN RETE SWC701

Trasformazione DB Access In SQL Server. Michele De Nittis

Licenza per sito Manuale dell amministratore

Software di parcellazione per commercialisti Ver [10/09/2015] Manuale d uso [del 10/09/2015]

SQL: concetti base SQL. Definizione dei dati in SQL. SQL: "storia"

Indice GAMMA. Guida utente

Il calendario di Windows Vista

Servizi Remoti. Servizi Remoti. TeamPortal Servizi Remoti

Configuration Managment Configurare EC2 su AWS. Tutorial. Configuration Managment. Configurare il servizio EC2 su AWS. Pagina 1

Introduzione alla consultazione dei log tramite IceWarp Log Analyzer

FIRESHOP.NET. Gestione completa delle fidelity card & raccolta punti. Rev

Asso. Con ordine si procederà ad esplorare il software.

Registratori di Cassa

Esercitazioni di Basi di Dati

Funzioni non documentate Openoffice.org. 3 Base mini-howto

Iniziamo la panoramica sul funzionamento dell'svn sulla suite S.A.

PORTALE CLIENTI Manuale utente

Guida all'uso Di mylittleadmin

Definizione di domini

Il tuo manuale d'uso. F-SECURE PSB AND SERVER SECURITY

ESEMPI DI QUERY SQL. Esempi di Query SQL Michele Batocchi AS 2012/2013 Pagina 1 di 7

NOTE TECNICHE DI CONFIGURAZIONE. Giugno 2009

Corso Sistemi Informativi Avanzati. Programma 30 set Installazione Macchina Virtuale. Introduzione alla BI nelle Aziende.

IBM SPSS Statistics - Essentials for R - Istruzioni diinstallazione per Mac OS

2.5. L'indirizzo IP identifica il computer di origine, il numero di porta invece identifica il processo di origine.

Guida alla registrazione on-line di un DataLogger

FPf per Windows 3.1. Guida all uso

Data Base. Master "Bio Info" Reti e Basi di Dati Lezione 6

PROCEDURE PER LA GESTIONE DEL SOFTWARE E DEI DATI. Installazione, Archiviazione e Ripristino dati per il software Iperthermo

ISTRUZIONI AGGIORNAMENTO TARIFFARIO 2006

DENUNCE EDILCONNECT GUIDA COMPILAZIONE

Impostazione dell'indirizzo IP del dispositivo di autenticazione di Xerox Secure Access Unified ID System Carta bianca

RILEVA LIGHT Manuale dell Utente

Amministrazione Trasparente

Reti. Reti. IPv4: concetti fondamentali. arp (address resolution protocol) Architettura a livelli (modello OSI)

Dispensa di database Access

SAP SRM 7 Manuale GARE ON LINE con cfolders FORNITORI INDICE

Транскрипт:

PostgreSQL 8.1 Gestione e tuning by Federico Campoli Postgresql 8.1 Pagina 1

Sommario Accesso al database (Il file hba_access) Il client psql Tuning dell'istanza (postgresql.conf) L'ottimizzatore a costi VACUUM L'oid wraparound Sommario Pagina 2

PostgreSQL autentica su due livelli Host L'accesso viene filtrato dal file pg_hba.conf Database L'accesso viene gestito dall'rdbms attraverso i ruoli utente Accesso al database Pagina 3

Accesso al database host based Il file pg_hba.conf si trova nella directory $PGDATA creata con initdb E' un file di testo dove ogni riga mappa le regole di accesso al database secondo lo schema TIPO DATABASE UTENTE INDIRIZZO METODO Valori ammessi Tipo: local,host Database: nome_database,all User: username,all Indirizzo:indirizzo ip o classe di indirizzi (subnet mask opzionale) Metodo: trust,password,crypt,kerberos Accesso al database Pagina 4

Tipo di connessione local La connessione avviene su socket locale. Ammessa solo per connessioni localhost host La connessione avviene via tcp/ip. Nelle versioni precedenti alla 8 richiedeva che il postmaster fosse avviato con l'opzione -i Un record host puo' gestire sia connessioni SSL che non SSL per usare SSL e' necessario che il database sia compilato con SSL abilitato. Per funzionare correttamente richiede che il parametro listen_addresses del file postgresql.conf sia correttamente valorizzato. Accesso al database Pagina 5

Metodo di connessione trust La connessione avviene senza dover fornire password password,crypt,md5 la connessione avviene verificando username e password. Nella modalita' password viene trasmessa in chiaro Nella modalita' crypt viene usato l'algoritmo crypt per criptare le password Nella modalita' md5 viene fatto un hash md5 delle password kerberos Con questa opzione PostgreSQL opera di fatto come un server kerberos (necessita' la compilazione con l'opzione krb attivata) Accesso al database Pagina 6

Esempio # TYPE DATABASE USER CIDR ADDRESS METHOD local all all trust host all all 127.0.0.1 255.255.255.255 trust host thezion thezion 192.168.1.4 255.255.255.255 password Accesso al database Pagina 7

Il client psql E' il client predefinito di PostgreSQL E' un client a riga di comando con funzionalita' readline integrate Invocazione: psql -d <DBNAME> -U <USERNAME> -p <PORT> Accetta comandi sql Puo' leggere file esterni ed eseguire lo spool su disco Permette di analizzare gli oggetti presenti con i comandi \d Lanciato con l'opzione -E visualizza le query generate dai comandi interni E' lo strumento principale per il restore dei database da dump sql Il client command line psql Pagina 8

Il client psql postgres@ubuntuworkstation:~$ psql -d globalkult_net -E Welcome to psql 8.1.4, the PostgreSQL interactive terminal. Type: \copyright for distribution terms \h for help with SQL commands \? for help with psql commands \g or terminate with semicolon to execute query \q to quit globalkult_net=# Il client command line psql Pagina 9

Il client psql globalkult_net=# \d ********* QUERY ********** SELECT n.nspname as "Schema", c.relname as "Name", CASE c.relkind WHEN 'r' THEN 'table' WHEN 'v' THEN 'view' WHEN 'i' THEN 'index' WHEN 'S' THEN 'sequence' WHEN 's' THEN 'special' END as "Type", r.rolname as "Owner" FROM pg_catalog.pg_class c JOIN pg_catalog.pg_roles r ON r.oid = c.relowner LEFT JOIN pg_catalog.pg_namespace n ON n.oid = c.relnamespace WHERE c.relkind IN ('r','v','s','') AND n.nspname NOT IN ('pg_catalog', 'pg_toast') AND pg_catalog.pg_table_is_visible(c.oid) ORDER BY 1,2; ************************** List of relations Schema Name Type Owner + + + public access table globalkult_usr public access_aid_seq sequence globalkult_usr public accesslog table globalkult_usr public accesslog_aid_seq sequence globalkult_usr public adsense_clicks table globalkult_usr public adsense_clicks_aid_seq sequence globalkult_usr public aggregator_category table globalkult_usr public aggregator_category_cid_seq sequence globalkult_usr public aggregator_category_feed table globalkult_usr Il client command line psql Pagina 10

Il client psql globalkult_net=# \d access ********* QUERY ********** SELECT c.oid, n.nspname, c.relname FROM pg_catalog.pg_class c LEFT JOIN pg_catalog.pg_namespace n ON n.oid = c.relnamespace WHERE c.relname ~ '^access$' AND pg_catalog.pg_table_is_visible(c.oid) ORDER BY 2, 3; ************************** ********* QUERY ********** SELECT relhasindex, relkind, relchecks, reltriggers, relhasrules, relhasoids, reltablespace FROM pg_catalog.pg_class WHERE oid = '166250' ************************** ********* QUERY ********** SELECT a.attname, pg_catalog.format_type(a.atttypid, a.atttypmod), (SELECT substring(pg_catalog.pg_get_expr(d.adbin, d.adrelid) for 128) FROM pg_catalog.pg_attrdef d WHERE d.adrelid = a.attrelid AND d.adnum = a.attnum AND a.atthasdef), a.attnotnull, a.attnum FROM pg_catalog.pg_attribute a WHERE a.attrelid = '166250' AND a.attnum > 0 AND NOT a.attisdropped ORDER BY a.attnum ************************** Il client command line psql Pagina 11

Il client psql ********* QUERY ********** SELECT c2.relname, i.indisprimary, i.indisunique, i.indisclustered, pg_catalog.pg_get_indexdef(i.indexrelid, 0, true), c2.reltablespace FROM pg_catalog.pg_class c, pg_catalog.pg_class c2, pg_catalog.pg_index i WHERE c.oid = '166250' AND c.oid = i.indrelid AND i.indexrelid = c2.oid ORDER BY i.indisprimary DESC, i.indisunique DESC, c2.relname ************************** ********* QUERY ********** SELECT c.relname FROM pg_catalog.pg_class c, pg_catalog.pg_inherits i WHERE c.oid=i.inhparent AND i.inhrelid = '166250' ORDER BY inhseqno ASC ************************** Table "public.access" Column Type Modifiers + + aid integer not null default nextval('access_aid_seq'::regclass) mask character varying(255) not null default ''::character varying type character varying(255) not null default ''::character varying status smallint not null default 0::smallint Indexes: "access_pkey" PRIMARY KEY, btree (aid) globalkult_net=# Il client command line psql Pagina 12

Tuning dell'istanza (postgresql.conf) E' il file di inizializzazione del processo postgres Il file si trova nella posizione $PGDATA E' composto da una serie di righe del tipo nome = valore E' commentato in maniera esaustiva Permette di intervenire in maniera granulare sull'attivita' del db Il tuning dell'istanza Pagina 13

Tuning dell'istanza (postgresql.conf) listen_addresses = '*' port = 5432 I parametri determinano gli indirizzi e la porta su cui ascolta l'istanza Indirizzi multipli sono ammessi se separati da virgole Il tuning dell'istanza Pagina 14

Tuning dell'istanza (postgresql.conf) max_connections = 100 E' il numero massimo di connessioni concorrenti ammesse Ogni connessione usa circa 400 byte di memoria condivisa Quando si altera questo parametro e' bene aumentare di conseguenza il parametro shared_buffers Il tuning dell'istanza Pagina 15

Tuning dell'istanza (postgresql.conf) shared_buffers = 200 Determina il quantitativo di memoria condivisa usata dal server. Ogni shared buffer e' 8192 bytes Il valore minimo ammesso e' 16, e deve essere almeno il doppio del valore di max_connections; Un valore di 2000 e' accettabile per installazioni di produzione ma richiede la modifica del parametro del kernel SHMMAX Il tuning dell'istanza Pagina 16

Tuning dell'istanza (postgresql.conf) temp_buffers = 200 Determina il quantitativo massimo di memoria temporanea usata per le connessioni al database. Ogni slot e' 8192 bytes Il tuning dell'istanza Pagina 17

Il client pgadmin3 Scaricabile sotto licenza artistica all'url http://www.pgadmin.org Multipiattaforma, intuitivo e funzionale e' piu' di un semplice client Comprende il pacchetto pgagent che aggiunge funzionalita' di job scheduling al DBMS http://www.pgadmin.org/docs/1.4/pgagent.html Il client pgadmin3 Pagina 18

A colpo d'occhio presenta una vista ad albero dei database presenti nel cluster. Ogni database contiene vari oggetti che possono essere selezionati. Automaticamente pgadmin3 genera la DDL relativa all'oggetto selezionato. La finestra in alto a destra permette di leggere le statistiche eventuali e le dipendenze dell'oggetto selezionato. Il client pgadmin3 Pagina 19

Selezionando una tabella e' possibile vedere, sempre nella vista ad albero, tutte le informazioni utili riguardo ad essa. Colonne, constraints, indici rules ed eventuali triggers. Un click con il tasto destro permette di entrare in modalita' edit. Il client pgadmin3 Pagina 20

Il client pgadmin3 Pagina 21

Pgadmin3 include lo strumento sql query che e' un terminale interattivo piu' ricco di psql. Il risultato della query scritto nell'area in alto viene restituito nella griglia in basso Il client pgadmin3 Pagina 22

Dalla versione 1.4 il tool sql query include anche la possibilita' di rappresentare il piano d'esecuzione. Pgadmin3 e' quindi un client molto versatile ma e' anche un ottimo alleato per fare performance tuning sul database Il client pgadmin3 Pagina 23

VACUUM Letteralmente passare l'aspirapolvere Ricompatta i blocchi non usati e aggiorna le statistiche degli oggetti Esiste sia come comando sql che come programma thezion=# vacuum full; LOG: transaction ID wrap limit is 1099035127, limited by database "postgres" LOG: transaction ID wrap limit is 1099035127, limited by database "postgres" VACUUM postgres@ubuntuworkstation:~$ vacuumdb -f -a vacuumdb: vacuuming database "postgres" LOG: transaction ID wrap limit is 1098985901, limited by database "test_migrazi one" LOG: transaction ID wrap limit is 1098985901, limited by database "test_migrazi one" VACUUM Vacuum Pagina 24

L'oid wraparound La semantica transazionale di postgresql confronta l'id della transazione corrente con le altre per determinare quali sono nel futuro o nel passato. Se un transaction ID (XID) di una insert e' piu' grande di quello corrente allora la transazione valutata e' nel futuro e non deve essere visibile alla transazione corrente. Poiche' la dimensione di uno XID e' di 32bit si ha la ripetizione degli stessi numeri ogni 4 miliardi di transazioni. Cio' produce il risultato che tutte le transazioni che erano nel passato e quindi visibili, si ritrovano improvvisamente nel futuro e quindi invisibili! I dati pur continuando a risiedere nel database vengono visti da qualsiasi sessione perche' nel futuro. L'OID wraparound Pagina 25

L'oid wraparound Fino alla versione 7.2 l'unica soluzione era fare un initdb ogni 4 miliardi di transazioni. Dalla 7.3 in poi e' sufficiente un VACUUM FULL ogni 4 miliardi di transazioni per impedire l'oid wraparound il comando VACUUM invia dei warning quando dei database del cluster si trovano a meno di 500 milioni di transazioni dal wraparound failure WARNING: some databases have not been vacuumed in 1613770184 transactions HINT: Better vacuum them within 533713463 transactions, or you may have a wraparound failure. VACUUM A meno di 10 milioni di transazioni dal wraparound failures questo warning viene inviato per ogni transazione. A meno di 1 milione il postmaster termina spontaenamente ad ogni transazione L'OID wraparound Pagina 26

Tu sei libero: * di riprodurre, distribuire, comunicare al pubblico, esporre in pubblico, rappresentare, eseguire e recitare quest'opera * di modificare quest'opera Alle seguenti condizioni: Devi attribuire la paternità dell'opera nei modi indicati dall'autore o da chi ti ha dato l'opera in licenza. Non puoi usare quest'opera per fini commerciali. sa Se alteri o trasformi quest'opera, o se la usi per crearne un'altra, puoi distribuire l'opera risultante solo con una licenza identica a questa. * Ogni volta che usi o distribuisci quest'opera, devi farlo secondo i termini di questa licenza, che va comunicata con chiarezza. * In ogni caso, puoi concordare col titolare dei diritti d'autore utilizzi di quest'opera non consentiti da questa licenza. Le utilizzazioni consentite dalla legge sul diritto d'autore e gli altri diritti non sono in alcun modo limitati da quanto sopra. Questo è un riassunto in linguaggio accessibile a tutti del Codice Legale. Testo integrale della licenza disponibile all'indirizzo http://creativecommons.org/licenses/by-nc-sa/2.5/it/legalcode Licenza Pagina 27

PostgreSQL 8.1 Gestione e tuning by Federico Campoli Postgresql 8.1 Pagina 28