Installare e configurare PostgreSQL in Azure
PostgreSQL è un database open source avanzato simile a Oracle e DB2. Questo database include funzionalità aziendali quali la conformità ACID completa, l'elaborazione transazionale affidabile e il controllo della concorrenza per più versioni. Supporta anche standard come ANSI SQL e SQL/MED (compresi wrapper di dati esterni per Oracle, MySQL, MongoDB e molti altri). È inoltre altamente estendibile, supportando oltre 12 linguaggi procedurali, gli indici GIN e GIST, i dati spaziali e più funzionalità di tipo NoSQL per le applicazioni basate su chiave-valore o JSON.
Questo articolo illustrerà come installare e configurare PostgreSQL in una macchina virtuale di Azure che esegue Linux.
Installare PostgreSQL
Nota
Per poter completare questa esercitazione, è necessario disporre già di una macchina virtuale di Microsoft Azure che esegue Linux. Prima di procedere, vedere l' esercitazione relativa alle macchine virtuali Linux di Azureper creare e impostare una macchina virtuale Linux.
In questo caso, usare la porta 1999 come porta di PostgreSQL.
Connettersi tramite PuTTY alla macchina virtuale Linux creata. Se questa è la prima volta che si sta usando una macchina virtuale Linux di Azure, vedere usare SSH con Linux in Azure per imparare a usare PuTTY per connettersi a una VM Linux.
Eseguire il comando seguente per passare alla directory radice (admin):
sudo su -
Alcune distribuzioni dispongono di dipendenze che è necessario installare prima di eseguire l'installazione di PostgreSQL. Nell'elenco individuare la distribuzione in uso ed eseguire il comando appropriato:
Linux basato su Red Hat:
yum install readline-devel gcc make zlib-devel openssl openssl-devel libxml2-devel pam-devel pam libxslt-devel tcl-devel python-devel -y
Linux basato su Debian:
apt-get install readline-devel gcc make zlib-devel openssl openssl-devel libxml2-devel pam-devel pam libxslt-devel tcl-devel python-devel -y
SUSE Linux:
zypper install readline-devel gcc make zlib-devel openssl openssl-devel libxml2-devel pam-devel pam libxslt-devel tcl-devel python-devel -y
Scaricare PostgreSQL nella directory radice e quindi decomprimere il pacchetto:
wget https://ftp.postgresql.org/pub/source/v9.3.5/postgresql-9.3.5.tar.bz2 -P /root/ tar jxvf postgresql-9.3.5.tar.bz2
Quello precedente è un esempio. Per l'indirizzo di download più dettagliato, vedere Indice di /pub/source/.
Per avviare la compilazione, eseguire questi comandi:
cd postgresql-9.3.5 ./configure --prefix=/opt/postgresql-9.3.5
Se si vuole compilare tutto ciò che è possibile creare, tra cui la documentazione (pagine HTML e man) e altri moduli (
contrib
), eseguire invece il comando seguente:gmake install-world
Dovrebbe venire visualizzato il messaggio di conferma seguente:
PostgreSQL, contrib, and documentation successfully made. Ready to install.
Configurare PostgreSQL
(Facoltativo) Creare un collegamento simbolico per abbreviare il riferimento a PostgreSQL in modo da non includere il numero di versione:
ln -s /opt/postgresql-9.3.5 /opt/pgsql
Creare una directory per il database:
mkdir -p /opt/pgsql_data
Creare un utente non ROOT e modificare il relativo profilo. Passare quindi a tale nuovo utente (denominato postgres nell'esempio):
useradd postgres chown -R postgres.postgres /opt/pgsql_data su - postgres
Nota
Per motivi di sicurezza, PostgreSQL usa un utente non ROOT per inizializzare, avviare o arrestare il database.
Modificare il file bash_profile immettendo i comandi seguenti. Queste righe verranno aggiunte alla fine del file bash_profile:
cat >> ~/.bash_profile <<EOF export PGPORT=1999 export PGDATA=/opt/pgsql_data export LANG=en_US.utf8 export PGHOME=/opt/pgsql export PATH=\$PATH:\$PGHOME/bin export MANPATH=\$MANPATH:\$PGHOME/share/man export DATA=`date +"%Y%m%d%H%M"` export PGUSER=postgres alias rm='rm -i' alias ll='ls -lh' EOF
Eseguire il file bash_profile:
source .bash_profile
Convalidare l'installazione con il comando seguente:
which psql
Se l'installazione ha avuto esito positivo, verrà visualizzata la risposta seguente:
/opt/pgsql/bin/psql
È anche possibile verificare la versione di PostgreSQL:
psql -V
Inizializzare il database:
initdb -D $PGDATA -E UTF8 --locale=C -U postgres -W
Dovrebbero venire visualizzato l'output seguente:
Impostare PostgreSQL
Eseguire i comandi seguenti:
cd /root/postgresql-9.3.5/contrib/start-scripts
cp linux /etc/init.d/postgresql
Modificare due variabili nel file /etc/init.d/postgresql. Il prefisso è impostato sul percorso di installazione di PostgreSQL: /opt/pgsql. PGDATA è impostato sul percorso di archiviazione dati di PostgreSQL: /opt/pgsql_data.
sed -i '32s#usr/local#opt#' /etc/init.d/postgresql
sed -i '35s#usr/local/pgsql/data#opt/pgsql_data#' /etc/init.d/postgresql
Modificare il file per renderlo eseguibile:
chmod +x /etc/init.d/postgresql
Avviare PostgreSQL:
/etc/init.d/postgresql start
Controllare se l'endpoint di PostgreSQL è attivo:
netstat -tunlp|grep 1999
Verrà visualizzato l'output seguente:
Connessione al database Postgres
Proseguire e passare di nuovo all'utente postgres:
su - postgres
Creare un database Postgres:
createdb events
Connettersi al database events appena creato:
psql -d events
Come creare ed eliminare una tabella Postgres
Ora che ci si è connessi al database, è possibile crearvi tabelle.
Ad esempio, creare una nuova tabella Postgres di esempio con il comando seguente:
CREATE TABLE potluck (name VARCHAR(20), food VARCHAR(30), confirmed CHAR(1), signup_date DATE);
È stata così impostata una tabella di quattro colonne con i nomi e le restrizioni seguenti:
- La colonna "name" è stata limitata dal comando VARCHAR a una lunghezza inferiore a 20 caratteri.
- La colonna "food" indica la pietanza che verrà portata da ogni persona. VARCHAR limita questo testo a una lunghezza inferiore a 30 caratteri.
- La colonna "confirmed" registra se la persona ha dato conferma della propria partecipazione. I valori consentiti sono "Y" e "N".
- La colonna "date" indicherà quando la persona si è iscritta per l'evento. Postgres richiede che le date vengano immesse nel formato aaaa-mm-gg.
Se la tabella è stata creata correttamente, dovrebbe venire visualizzato quanto segue:
È anche possibile verificare la struttura della tabella con il comando seguente:
Aggiungere dati a una tabella
Inserire innanzitutto le informazioni in una riga:
INSERT INTO potluck (name, food, confirmed, signup_date) VALUES('John', 'Casserole', 'Y', '2012-04-11');
Dovrebbe venire visualizzato questo output:
È anche possibile aggiungere altre persone alla tabella. Ecco alcuni esempi oppure è possibile inserire i dati desiderati:
INSERT INTO potluck (name, food, confirmed, signup_date) VALUES('Sandy', 'Key Lime Tarts', 'N', '2012-04-14');
INSERT INTO potluck (name, food, confirmed, signup_date) VALUES ('Tom', 'BBQ','Y', '2012-04-18');
INSERT INTO potluck (name, food, confirmed, signup_date) VALUES('Tina', 'Salad', 'Y', '2012-04-18');
Mostrare le tabelle
Per mostrare una tabella, usare il comando seguente:
select * from potluck;
L'output è il seguente:
Eliminare dati in una tabella
Per eliminare dati in una tabella, usare il comando seguente:
delete from potluck where name=’John’;
Consente di eliminare tutte le informazioni nella riga "John". L'output è il seguente:
Aggiornare dati in una tabella
Per aggiornare dati in una tabella, usare il comando seguente: Per questo, Sandy ha confermato che stanno partecipando, quindi cambieremo il RSVP da "N" a "Y":
UPDATE potluck set confirmed = 'Y' WHERE name = 'Sandy';
Per altre informazioni su PostgreSQL
Ora che è stata completata l'installazione di PostgreSQL in una macchina virtuale Linux di Azure, è possibile utilizzarlo in Azure. Per ulteriori informazioni su PostgreSQL, visitare il sito Web PostgreSQL.