PostgreSQL-7.3.2

Introduction à PostgreSQL7.3.2

Site de téléchargement (HTTP):  http://www.ca.postgresql.org/ftpsite/v7.3.2/postgresql-7.3.2.tar.gz
Site de téléchargement (FTP):   ftp://ftp8.us.postgresql.org/pub/pgsql/source/v7.3.2/postgresql-7.3.2.tar.gz
Version utilisée:               7.3.2
Taille du package:              11 Mo
Estimation de l'espace disque requis:  68 Mo

Le package PostgreSQL contient la RDBMS PostgreSQL, les utilitaires clients et les liens de langage.

Note : Les liens C++ et ODBC ont été supprimés de la distribution source principale. Ils peuvent être récupérés sur le site web des projets PostgreSQL http://gborg.postgresql.org.

PostgreSQL dépend de:
readline-4.3

Installation de PostgreSQL

Installez PostgreSQL avec les commandes suivantes:

./configure --prefix=/usr &&
make &&
make install &&

Initialise un cluster de base de données avec les commandes suivantes:

mkdir -p /var/pgsql/data &&
useradd -d /var/pgsql/data postgres &&
chown postgres /var/pgsql/data &&
su - postgres -c '/usr/bin/initdb -D /var/pgsql/data'

Démarre le serveur de base de données avec la commande suivante:

su - postgres -c '/usr/bin/postmaster -D /var/pgsql/data > \
        /var/pgsql/data/logfile 2>&1 &'

Maintenant nous pouvons créer une base de données et vérifier l'installation:

su - postgres -c '/usr/bin/createdb test'
echo "create table t1 ( name varchar(20), state_province varchar(20) );" \
                | (su - postgres -c '/usr/bin/psql test ')
		
echo "insert into t1 values ('Billy', 'NewYork');" \
                | (su - postgres -c '/usr/bin/psql test ')
echo "insert into t1 values ('Evanidus', 'Quebec');" \
	        | (su - postgres -c '/usr/bin/psql test ')
echo "insert into t1 values ('Jesse', 'Ontario');" \
                | (su - postgres -c '/usr/bin/psql test ')
		
echo "select * from t1;" | (su - postgres -c '/usr/bin/psql test ')

Explication des commandes

useradd -d /var/pgsql/data postgres : Ajoute un utilisateur non privilégié pour exécuter le serveur de base de données. Lancer le serveur en tant que root est dangereux, et beaucoup plus simplement ne fonctionnera pas.

su - postgres -c '/usr/bin/initdb -D /var/pgsql/data' : Initialise la base de données. Cette commande ne peut pas être exécuté par root.

su - postgres -c '/usr/bin/postmaster -D /var/pgsql/data > \ /var/pgsql/data/logfile 2>&1 &' : Lance le serveur de la base de données. L'utilisateur postgres doit aussi exécuter cette commande.

createdb test, create table t1 , insert into t1 values..., select * from t1 : Crée la base de donnée, ajoute une table, insère quelques lignes dans la table et les sélectionne pour vérifier que l'installation fonctionne correctement.

Configurer PostgreSQL

Fichiers de configurations

$PGDATA/pg_ident.con, $PGDATA/pg_hba.conf, $PGDATA/postgresql.conf

La variable d'environnement PGDATA est utilisé pour distinguer les clusters de bases de données en lui donnant comme valeur celle du répertoire contenant le cluster désiré. Les trois fichiers de configuration existent dans chaque répertoire PGDATA/. Les détails sur le format des fichiers et des options disponibles dans chacun d'entre eux peuvent être trouvé dans:

file:///usr/share/doc/postgresql/html/tutorial.html

Script init.d de postgres

Créez le script de démarrage postgres avec ceci:

cat > /etc/rc.d/init.d/postgres << "EOF"

#!/bin/bash
# Début $rc_base/init.d/postgres

# Basé sur le script sysklogd de LFS-3.1 et précédent.
# Réécrit par Gerard Beekmans  - gerard@linuxfromscratch.org

source /etc/sysconfig/rc
source $rc_functions

case "$1" in
        start)
                echo "Starting PostgreSQL daemon..."
                su - postgres -c '/usr/bin/pg_ctl start -W -D /var/pgsql/data \
                               -l /var/pgsql/data/logfile -o "-i" '
                evaluate_retval
                ;;

        stop)
                echo "Stopping PostgreSQL daemon..."
                /usr/bin/pg_ctl stop -m smart -D /var/pgsql/data
                evaluate_retval
                ;;

        restart)
                $0 stop
                sleep 1
                $0 start
                ;;

        status)
                /usr/bin/pg_ctl status -D /var/pgsql/data
                ;;

        *)
                echo "Usage: $0 {start|stop|restart|status}"
                exit 1
                ;;
esac

# Fin $rc_base/init.d/
EOF
chmod 755 /etc/rc.d/init.d/postgres

Créez le lien symbolique de ce fichier dans le répertoire adéquat avec les commandes suivantes:

cd /etc/rc.d/init.d &&
ln -sf ../init.d/mysql ../rc0.d/K26postgres &&
ln -sf ../init.d/postgres ../rc1.d/K26postgres &&
ln -sf ../init.d/postgres ../rc2.d/K26postgres &&
ln -sf ../init.d/postgres ../rc3.d/S34postgres &&
ln -sf ../init.d/postgres ../rc4.d/S34postgres &&
ln -sf ../init.d/postgres ../rc5.d/S34postgres &&
ln -sf ../init.d/postgres ../rc6.d/K26postgres

Contenu

La base de données relationnelle PostgreSQL contient createdb, createlang, createuser, dropdb, droplang, dropuser, ecpg, initdb, initlocation, ipcclean, pg_config, pg_ctl, pg_dump, pg_dumpall, pg_passwd, pg_restore, pgaccess, pgtclsh, pgtksh, postgres, postmaster, psql et vacuumdb.

Description

createdb

createdb crée une nouvelle base de données PostgreSQL.

createlang

createlang définit un nouveau langage procédural PostgreSQL.

createuser

createuser définit un nouveau compte utilisateur PostgreSQL.

dropdb

dropdb supprime une base de données PostgreSQL.

droplang

droplang supprime le langage procédural PostgreSQL.

dropuser

dropuser supprime un compte utilisateur PostgreSQL.

ecpg

ecpg est le préprocesseur SQL embarqué.

initdb

initdb crée un nouveau cluster de base de données.

initlocation

initlocation crée une aire de stockage d'une seconde base de données.

ipcclean

ipcclean supprime la mémoire partagée et les sémaphores laissés par un serveur de base de données annulé.

pg_config

pg_config retrouve des informations sur la version de PostgreSQL.

pg_ctl

pg_ctl contrôle le démarrage et l'arrêt du serveur de base de données.

pg_dump

pg_dump extrait les données et les metadatas d'une base de données et les mets dans des scripts qui sont utilisés pour recréer la base de données.

pg_dumpall

pg_dumpall appelle récursivement pg_dump pour chaque base de données d'un cluster.

pg_passwd

pg_passwd est un second utilitaire pour mot de passe, pour contrôler l'accès aux bases de données.

pg_restore

pg_restore crée une base de données de fichiers dump créés par pg_dump.

pgaccess

pgaccess est un client graphique pour PostgreSQL, écrit avec Tk/tcl.

pgtclsh

pgtclsh est un shell tcl pour PostgreSQL.

pgtksh

pgtksh est un shell style wish pour PostgreSQL.

postgres

postgres est un serveur de base de données simple utilisateur, généralement utilisé pour le débuggage.

postmaster

postmaster est le démon multi-utilisateur de la base de données.

psql

psql est un shell console de bases de données.

vacuumdb

vacuumdb rend compact les bases de données et génère des statistiques pour l'analyseur de requêtes.