Léa-Linux & amis :   LinuxFR   GCU-Squad   Zarb.Org   GNU
Reseau-bdd-postgresql install

PostgreSQL: installation

Cette page est considérée comme étant obsolète.

Elle nécessite donc une mise à jour. Si vous en avez la compétence, n'hésitez pas à la mettre à jour. Avant de le faire, prenez le temps consulter les consignes de mise à jour.

PostgreSQL: installation
par chez lea-linux.org serge, Mise à jour par Guillaume LELARGE et Anne
Une petite description de l'installation de PostgreSQL.

Introduction

PostgreSQL est un système de gestion de base de données relationelles, c'est-à-dire un SGDBR. C'est un logiciel libre. Sous Linux, les deux SGDBR les plus utilisés sont PostgreSQL et MySQL. MySQL est très utilisé pour de petites applications ou pour générer des pages Web dynamique (comme les forums de ce site par exemple) mais comporte quelques lacunes par rapport à PostgreSQL. De plus, PostgreSQL est mieux adapté pour de plus grosses bases, il est plus robuste en quelques sortes.
Cette rubrique n'est pas un apprentissage de PostgreSQL mais juste un "manuel d'installation".

Création de l'administrateur PostgreSQL

PostgreSQL gère lui aussi des utilisateurs pour attribuer des droits aux bases de données comme linux gère les droits pour la gestion des fichiers et du système. Donc, comme pour linux, il faut un "root", autrement dit un administrateur, pour PostgreSQL. Pour des questions de sécurité, utilisez toujours un compte utilisateur qui n'a aucun droit d'administration linux pour le compte "root" de PostgreSQL. On va donc créer cet utilisateur, avec par exemple comme nom postgres. Tapez en tant qu'utilisateur root :

# adduser postgres

Validez toutes les questions, et si le système vous demande un mot de passe, saisissez-en un. Au cas où aucun mot de passe ne vous est demandé, lancez la commande suivante :

# passwd postgres

Saisissez le mot de passe une première fois, puis confirmez-le.

Profitons d'être root pour créer le répertoire où nous déballerons les sources et pour donner les droits sur ce répertoire à l'utilisateur postgres :

# mkdir /usr/src/pgsql
# chown -R postgres /usr/src/pgsql

Maintenant, connectez-vous en tant qu'utilisateur postgres pour toutes les commandes ci-dessous, sauf si je vous indique clairement de vous connecter de nouveau en tant qu'utilisateur root. Pour tout le reste du document, je suppose que votre administrateur PostgreSQL est "postgres", à vous d'adapter suivant le nom que vous avez donné à ce compte.

Récupération des sources et compilation

Bon, tout d'abord, récupérez les sources sur un des miroirs. Au moment où j'écris cet article, la dernière version stable est la 7.4.2. Récupérez l'archive tar postgresql-7.4.2.tar.gz (ou une autre version si une mise à jour est disponible). Une fois les sources récupérées, placez-vous dans le répertoire que nous venons de créer, placez-y l'archive tar compressée et lancez la décompression avec la commande :

$ cd /usr/src/pgsql
$ tar xvfj postgresql-7.4.2.tar.bz2

Entrez dans le répertoire créé et lancez l'opération de configuration :

$ cd /usr/src/pgsql/postgresql-7.4.2
$ ./configure "options"

Dans cette commande, "options" doit être remplacé par une ou plusieurs options de configuration. En voici quelques-unes parmi les plus intéressantes :

  • --prefix=chemin, chemin où vous voulez installer PostgreSQL, sachant que celui-ci s'installe par défaut dans le répertoire /usr/local/pgsql ;
  • --enable-nls, ajoute le support des locales (support multi-langues) ;
  • --with-odbc, compile le module ODBC ;
  • --with-jdbc, compile le module JDBC ;
  • --with-perl, ajoute le support de Perl pour PostgreSQL ainsi que les modules Perl (utile si vous voulez utiliser Perl pour vos applications avec PostgreSQL) ;
  • --with-tcl, ajoute le support de Tcl/Tk ;
  • --with-pam, ajoute le support de PAM ;
  • --with-openssl, ajoute le support d'OpenSSL.

Remarque : pour les développeurs qui souhaitent ajouter d'autres supports ou fonctions, tapez la commande ./configure --help pour connaître toutes les options disponibles.

Une fois que le ./configure a terminé son travail sans erreurs, lancez la compilation des sources avec :

$ make

Une étape optionnelle, mais néanmoins intéressante, est de lancer une vérification avec la commande :

$ make check

PostgreSQL va créer une base de données temporaire et tester un certain nombre d'opérations, comme la création d'une table, l'utilisation de champs de type divers, etc. Normalement, vous devriez avoir un taux de réussite de 100 %.

Passez ensuite en super-utilisateur root pour lancer l'installation :

make install

puis toujours en tant qu'utilisateur root, lancez la commande :

chown postgres /usr/local/pgsql

Remarque : remplacez /usr/local/pgsql par le répertoire d'installation spécifié avec l'option --prefix si vous en avez spécifiez un.

Installation à partir des RPMS

L'installation est plutôt simple :

# urpmi postgresql-server
 Pour satisfaire les dépendances, les paquetages suivants vont être installés (9 Mo):
 postgresql-7.4.1-2mdk.i586
 postgresql-server-7.4.1-2mdk.i586
 Est-ce correct ? (O/n)
Préparation... ################################################## 1:postgresql ################################################## 2:postgresql-server ##################################################

Configuration du système

Passez en utilisateur root pour ces commandes.

On va ajouter dans la variable d'environnement PATH les binaires de PostgreSQL, les pages man, les données et ajouter au système les bibliothèques PostgreSQL pour activer le démarrage de PostgreSQL en automatique. Pour cela, éditez le fichier /etc/profile et ajoutez les lignes suivantes :

PATH=$PATH:/usr/local/pgsql/bin
MANPATH=$MANPATH:/usr/local/pgsql/man
PGLIB=/usr/local/pgsql/lib
PGDATA=/usr/local/pgsql/data
export MANPATH PGLIB PGDATA

Remarque : là aussi, remplacez /usr/local/pgsql par le répertoire d'installation spécifié avec l'option --prefix si vous en avez spécifiez un.

Editez le fichier /etc/ld.so.conf et ajoutez la ligne :

/usr/local/pgsql/lib

Pour que cette modification soit prise en compte, lancez alors la commande :

# ldconfig

Puis, copiez le fichier /usr/src/pgsql/postgresql-7.4.2/contrib/start-scripts/linux dans le répertoire /etc/init.d sous le nom de postgresql :

cp /usr/src/pgsql/postgresql-7.4.2/contrib/start-scripts/linux /etc/init.d/postgresql

Il vous sera possible de lancer le serveur avec ce script.

Mais avant de lancer PostgreSQL, nous devons créer le répertoire des données grâce à la commande initdb. Pour cela, connectez-vous en tant qu'utilisateur postgres et lancer cette commande :

/usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data

Plusieurs messages s'afficheront pour vous indiquer la progression.

Voila, notre système est complètement configuré. Il ne nous reste plus qu'à lancer le serveur en tant qu'utilisateur root :

/etc/init.d/postgresql start

Vérifiez que postmaster est bien en cours d'exécution par un :

ps -aux | grep postmaster

Si quelque chose ne va pas, relisez bien les indications ci-dessus, ou envoyez moi un courrier électronique.

Contributions à PostgreSQL

Dans le répertoire des sources se trouve un répertoire nommé contrib. Il contient un ensemble d'outils qui ne sont pas compilés par défaut mais dont l'utilité est particulièrement intéressante... au moins pour certains d'entre eux que voici :

  • dbsize ajoute une procédure stockée permettant le calcul de la taille d'un objet, que ce soit une base de données ou une table ;
  • mysql permet la conversion d'une base MySQL en une base PostgreSQL ;
  • en indiquant à oid2name un OID, celui-ci vous indique le nom de l'objet ;
  • oracle permet la conversion d'une base Oracle en base PostgreSQL ;
  • pg_autovacuum est un démon analysant en permanence l'état des tables de vos bases de données... lorsqu'il s'aperçoit qu'une opération de VACUUM devrait être lancée sur une table, il s'en occupe automatiquement, cela évite d'avoir à automatiser ce processus sur une simple base de temps (tous les jours, toutes les trois heures, etc.) ;
  • tsearch2 est un outil de recherche de mots contenus dans des champs d'une ou plusieurs tables.

Beaucoup d'autres outils existent dans ce répertoire, n'hésitez pas à les tester !

Profitons-en pour rappeller l'existence de deux sites de devéloppement d'outils spécifiques à PostgreSQL : l'ancien, appelé GBorg (site désormais inexistant) et son remplaçant, nommé PGFoundry.

Configuration de PostgreSQL

La configuration par défaut de PostgreSQL n'est pas optimale. Elle est simplement étudiée pour correspondre aux machines les moins puissantes. Des améliorations ont été apportées, notamment pendant la création du dépôt des bases de données. En effet, la commande initdb va essayer de lancer le serveur avec plusieurs valeurs pour voir lesquelles sont les plus intéressantes pour votre serveur. Ceci dit, beaucoup d'autres options de configuration sont à vérifier, tester, voire modifier.

Les développeurs de PostgreSQL vous encouragent vivement à modifier les valeurs par défaut et à tester vos modifications pour obtenir des performances optimales.

Ce fichier de configuration se trouve dans le répertoire des données et a pour nom postgresql.conf. Le chemin complet par défaut est donc /usr/local/pgsql/data/postgresql.conf. Il est bien commenté, ce qui permet de faire une première configuration assez rapidement. Voici quelques points à prendre en considération rapidement :

  • tcpip_socket doit être vrai pour permettre une connexion TCP/IP ;
  • max_connections détermine le nombre maximum de clients acceptés en même temps ;
  • shared_buffers précise la mémoire partagée utilisée par PostgreSQL ;
  • syslog est compris entre 0 et 2... avec 0, les traces sont envoyées sur la sortie standard... avec 1, elles arrivent sur la sortie standard et dans syslog alors qu'avec 2, elles ne vont que dans syslog.

Il existe beaucoup d'autres options. En dehors des listes de diffusion, un document très important dans le cadre de la modification de ce fichier se trouve sur le site d'Elein Mustain. Il s'agit tout simplement d'un immense tableau récapitulant toutes les options pour le fichier de configuration, leur équivalent en ligne de commande ou en requête SQL si cet équivalent existe et leur explications. Malheureusement, aucune traduction de ce document n'est encore disponible.

Informations supplémentaires

Vous pouvez aussi contacter l'une des nombreuses listes de diffusion dont la liste française.



@ Retour à la rubrique Administration système

Cette page est issue de la documentation 'pré-wiki' de Léa a été convertie avec HTML::WikiConverter. Elle fut créée par Serge Tchesmeli le 17/08/2000.

Copyright

Copyright © 17/08/2000, Serge Tchesmeli

Vous avez l'autorisation de copier, distribuer et/ou modifier ce document suivant les termes de la Licence pour documents libres, Version 1.1 publiée par la La Guilde des Doctorants. Pour plus d'informations consulter la LDL sur le site de La Guilde des Doctorants.
Affichages

Serveur hébergé par ST-Hebergement et Lost-Oasis / IRC hébergé par FreeNode / NS secondaire hébergé par XName
Sauf mention contraire, les documentations publiées sont sous licence Creative-Commons CC-BY-SA