PostgreSQL-7.3.4

Introduction à PostgreSQL7.3.4

PostgreSQL est un système de gestion de bases de données objets relationnelles (ORDBMS), dérivé du système de gestion de bases de données Postgres de Berkeley.

Informations sur le package

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

Créez le script de démarrage postgres avec ce qui suit:

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 rc.d 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

Le package PostgreSQL contient clusterdb, createdb, createlang, createuser, dropdb, droplang, dropuser, ecpg, initdb, initlocation, ipcclean, pg_config, pg_controldata, pg_ctl, pg_dump, pg_dumpall, pg_encoding, pg_id, pg_resetxlog, pg_restore, postgres, postmaster, psql, vacuumdb, libecpg, libpq et différents modules charset.

Description

clusterdb

clusterdb est un utilitaire pour reclustering les tables d'une base de données PostgreSQL.

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ées par un serveur de base de données annulé.

pg_config

pg_config retrouve des informations sur la version de PostgreSQL.

pg_controldata

pg_controldata renvoit des informations initialisées lors de la commande initdb, telle que la version du catalogue et la locale du serveur.

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_resetxlog

pg_resetxlog efface les traces << write-ahead >> et réinitialise de façon optionnel quelques champs du fichier pg_control.

pg_restore

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

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.