PostgreSQL-7.4.2

Introduction à PostgreSQL7.4.2

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
[Note]

Note

Si vous mettez à jour un système existant et que vous allez installer les nouveaux fichiers sur les anciens, alors vous devriez faire une sauvegarde, arrêter le serveur et suivre les instructions dans la documentation officielle de PostgreSQL .

Initialisez un groupe 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émarrez 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 &'

Créez une base de données et vérifiez 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.

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:

make install-postgresql

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, pgtclsh, pgtksh, pltcl_delmod, pltcl_listmod, pltcl_loadmod, postgres, postmaster, psql, vacuumdb, libecpg, libpgtcl, libpgtypes, libpq et différents modules de caractères.

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.

pgtclsh

pgtclsh est une interface étendue shell en Tcl avec des fonctions d'accès aux bases de données PostgreSQL.

pgtksh

pgtksh est une interface étendue shell en Tcl/Tk avec des fonctions d'accès aux bases de données 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.