Table des matières
Installation
Configurer PostgreSQL
Configurer l'os
Exploitation
Trucs et astuces
Méthodes de résolution des incidents
Installation
Récupérer les sources : fetch http://wwwmaster.postgresql.org/redir/357/h/source/v8.4.2/postgresql-8.4.2.tar.bz2
Après les avoir décompressé, un traditionnel
CFLAGS="-O3" CXX=gcc CXXFLAGS="-O3" \
./configure \
--prefix=/cheminchoisi/postgresql-8.4.2 \
--with-perl \
--with-python \
--without-openssl \
--without-zlib
./configure \
--prefix=/cheminchoisi/postgresql-8.4.2 \
--with-perl \
--with-python \
--without-openssl \
--without-zlib
suivit de
gmake && gmake install
aura pour effet de compiler PostgreSQL.
Il est nécessaire de dédier un compte système à notre instance de PostgreSQL :
postgres5432:*:503:500:PostgreSQL:/var/empty:/usr/sbin/nologin
Et nous allons le rendre propriétaire des binaires précédemment installés :
cd /cheminchoisi
chmod -R o-rwx postgresql-8.4.2
chmod -R g-rwx postgresql-8.4.2
chown -R postgres5432 postgresql-8.4.2
chmod -R o-rwx postgresql-8.4.2
chmod -R g-rwx postgresql-8.4.2
chown -R postgres5432 postgresql-8.4.2
Il est temps de décider de l'emplacement des bases de données
mkdir /dbdir/postgresql5432
chown -R postgres5432 /dbdir/postgresql5432
chown -R postgres5432 /dbdir/postgresql5432
et d'initialiser le cluster de base de données
su -m postgres5432
/cheminchoisi/postgresql-8.4.2/bin/initdb -D /dbdir/postgresql5432
/cheminchoisi/postgresql-8.4.2/bin/initdb -D /dbdir/postgresql5432
Le manuel en français de la commande initdb fournit des informations exhaustives à ce sujet.
Vérifions que PostgreSQL démarre correctement
/cheminchoisi/postgresql-8.4.2/bin/postgres -D /dbdir/postgresql5432/
Première connection :
/cheminchoisi/postgresql-8.4.2/bin/psql postgres
Arrêtons la base :
/cheminchoisi/postgresql-8.4.2/bin/pg_ctl -m smart stop -D /dbdir/postgresql5432
Configuration
Il est souvent pratique de disposer de scripts permettant l'arrêt et le démarrage automatique de PostgreSQL.J'ai pour habitude d'éteindre manuellement toutes les bases (et les services qui en dépendent au préalable) avant un arrêt plannifié de l'équipement où elles résident.
En cas d'arrêt brutal (coupure electrique...), PostgreSQL ne s'arrêtera de toute façon pas proprement.
Dans mon cas, une simple ligne dans /etc/crontab est donc amplement suffisante.
@reboot postgres5432 /home/appli/postgresql/bin/postgres -D /home/database/postgresql5432 2> /home/log/postgresql5432/main.log
Cependant rédiger un script d'init en fonction du système d'exploitation que vous utilisez ne sera jamais du luxe.


