Home > Server, Software > Postgresql Comandi utili

Postgresql Comandi utili

Avviare Fermare postgresql

/etc/init.d/postgresql  {start|stop|status|restart|condrestart|condstop|reload|force-reload|initdb}
es: /etc/init.d/postgresql status 

service postgresql {start|stop|status|restart|condrestart|
                    condstop|reload|force-reload|initdb} 
es:
service postgresql status
 service postgresql restart

Postgresql running
per verificare che postgresql sia attivo
ps axf | grep postgres

per verificare che il server stia correttamente ascoltando sulla porta prescelta si può utilizzare il comando

netstat -nlp | grep 5432
tcp 0 0 0.0.0.0:5432 0.0.0.0:* LISTEN 10723/postgres
tcp6 0 0 :::5432 :::* LISTEN 10723/postgres

Accedere alla console interattiva

psql test postgres
psql postgres postgres
psql -U postgres -W postgres -h 10.0.2.15
o
su - postgres
psql
exit per uscire

Help

\h help comandi SQL
\h SELECT
\h CREATE INDEX  

\? help comandi psql propri della console interattiva

\q exit console
\g o punto e virgola per eseguire la query

Mostra la versione di postgres

db=# select version();

Elenca databases
db=# \l

oppure

$ psql -l

Elenca tabelle di un database
db=# \d

Cambia database
db=# \c eurotech ;

Users

Cambiare la password di un utente ed esempio con l’utente di riferimento postgres

db=# ALTER USER user WITH PASSWORD 'userpassword';
db=# ALTER USER postgres WITH PASSWORD 'YourPostgresPassword';

Creare un nuovo utente

db=# CREATE USER newuser WITH password 'userpassword';

Creare un nuovo “testuser” ROLE con superuser e password:

 db=# CREATE ROLE testuser WITH SUPERUSER LOGIN PASSWORD 'test';

Creare un nuovo utente dalla shell

/usr/local/pgsql/bin/createuser newuser

Permessi
Usare GRANT consente di definire i permessi a livello di tabella e di colonna

es. GRANT ALL PRIVILEGES ON DATABASE eurotechgroup TO ethgrp;

Mostra gli utenti di postgresql

db=#SELECT * from pg_user;

Mostra gli utenti connessi a postgresql

db=#SELECT usesysid, usename FROM pg_stat_activity;

Database Crea/Delete

Creare un nuovo database dal terminale interattivo

db=# CREATE DATABASE newdb WITH OWNER postgres;

Creare un nuovo database dalla shell

su – postgres
/usr/local/pgsql/bin/createdb newdb -O postgres

Cancella un database

DROP DATABASE mydb;

Cancellare un database dalla shell

su – postgres
dropdb dbname

BACKUP / RESTORE

Backup di un database

pg_dump -U {user} {db_dacopiare} -f {dumpfile.sql}
pg_dump eurotechgroup_ud -t sitepage -Fc -a -U postgres -W > miofile.sql
* -t = tabella
* -Fc formato compressa
* -a solo dati

Restore di un dataabse

psql -U {user} -d {db_target}-f {dumpfile.sql}

o

su - postgres
psql -d biblio2 -f biblio2_20030303.sql

Backup database in un server e ripristino in un altro server

pg_dump dbname | psql -h hostname dbname pg_dump -h host1 dbname -t mytable | psql -h host2 dbname pg_dump -h host1 -U username -W dbname -t mytable | psql -h host2 dbname per evitare username e password portarsi ad esempio sull'utente postgres

Backup di una tabella

# pg_dump --table catalogs -U tmpuser eurotechdb -f catalogs.sql

Ripristino di una tabella

psql -f catalogs.sql catalogs

Backup di tutti i database

pg_dumpall > alldb.sql

su – postgres
psql < alldb.sql

Visualizza i datatypes base

SELECT typname,typlen from pg_type where typtype='b';

Transazioni

Avviare una transazione

# BEGIN

rollback o commit a transazione

# ROLLBACK
# COMMIT

QUERY

Display il piano di esecuzione di una query

EXPLAIN SELECT * FROM products;

Mostra il piano eseguendo la query sul lato server

EXPLAIN ANALYZE SELECT * FROM products;

EXPLAIN ANALYZE SELECT * FROM _getcatalog(300);

Conta il numero di records in un tabella

select count(*) from catalogs;

Conta il numero di records in un tabella data una spcifica colonna con valore diverso da null

select count(productline) from catalogs;

Conta il numero distinto di records data una spcifica colonna con valore diverso da null

select count(distinct productline) from catalogs;

Ottieni il minimo (MIN) o il massimo (MAX) valore di una colonna

# select MIN(ordercode) FROM products;

Ottieni il secondo

# SELECT MIN(ordercode) FROM products where ordercode > ( select MIN(ordercode) from productse );
# SELECT MAX(ordercode) FROM products where ordercode <( select MAX(ordercode) from productse );

Per inviare l’output di query ad un file

# \o myoutput_file
# SELECT * FROM news;

ritorna l’output allo stdout
# \o

Ritorna dimensioni dei database e delle tabelle

Calcola le dimensioni di uno specifico database

SELECT pg_database_size(‘mydb’);

pg_size_pretty ritorna le dimensione in MB un formato più amichevole

SELECT pg_size_pretty(pg_database_size(‘mydb’));

pg_size_pretty ritorna le dimensione in MB un formato più amichevole

SELECT pg_size_pretty(pg_total_relation_size(‘big_table’));

Trova la tabella più grande del database selezionato

SELECT relname, relpages FROM pg_class ORDER BY relpages DESC;

relpages: numero di pagine ( di default una pagina è 8Kb)
pg_class: system table, mantiene i dettagli delle relazioni

per ritornare l’ip del server postgres
SELECT * FROM inet_server_addr()

Memorizza la password dopo crittografia

SELECT crypt ( ‘erim’, gen_salt(‘md5’) );

PostgreSQL registra tutti i comandi eseguiti in un file chiamato ~/.psql_history

# cat ~/.psql_history

Risorse:

—-

..

Advertisements
  1. Non c'è ancora nessun commento.
  1. No trackbacks yet.

Rispondi

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...

%d blogger hanno fatto clic su Mi Piace per questo: