Pages

Showing posts with label Postgresql. Show all posts
Showing posts with label Postgresql. Show all posts

Saturday, January 30, 2010

Installation de Postgresql 8.4.1 sur CentOS 5.3

1 - téléchargement des sources de postgresql 8.4.1
wget http://wwwmaster.postgresql.org/download/mirrors-ftp/source/v8.4.1/postgresql-8.4.1.tar.gz
2 - on décompresse le package
gunzip postgresql-8.4.1.tar.gz
tar xf postgresql-8.4.1.tar

Puis on entre dans le dossier créé :
cd postgresql-8.4.1
3 - Installation des modules nécessaires
yum install readline-devel
yum install zlib-devel

4 - On lance la configuration
./configure
5 - Puis la compilation
gmake
6 - et enfin l’installation (sous root, su si vous n’y êtes pas déjà)
gmake install
7 - Configuration de l’utilisateur postrgres et d’une DB :
adduser postgres
mkdir /usr/local/pgsql/data
chown postgres /usr/local/pgsql/data
su - postgres
/usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data
/usr/local/pgsql/bin/postgres -D /usr/local/pgsql/data >logfile 2>&1 &
/usr/local/pgsql/bin/createdb test

8 - Mise en place du démarrage automatique du service postgresql
cp /source_directory/contrib/start-scripts/linux /etc/rc.d/init.d/postgresql
chmod 755 /etc/rc.d/init.d/postgresql
cd /etc/rc.d/init.d/
chkconfig --add postgresql

Parametrage Postgresql pour usage datawarehouse

Le standard SQL 92 a définit une norme sur les niveaux d’isolation des transactions (source: Second Informal Review Draft ISO/IEC 9075:1992, Database Language SQL- July 30, 1992). Document très coûteux mais certainement dispo quelque part…
Il existe trois phénomènes qui peuvent apparaître durant une lecture des données dans la base: les Dirty read, les Non-repeatable read et enfin les Phantoms. Selon le niveau d’isolation choisi pour la transaction, il se peut que l’un ou plusieurs (voire aucun pour serializable) de ces phénomènes apparaisse (C.f. tableau page 69 pour ceux qui ont le document normatif).
Tout SGBD voulant être conforme avec cette norme se doit donc d’implémenter les 4 niveaux d’isolation suivants:
- READ UNCOMMITTED
- READ COMMITTED
- REPEATABLE READ
- SERIALIZABLE
Mettre en place une solution style Datawarehouse (lecture seule) avec PostgreSQL est très simple: il suffit d’éditer le fichier postgresql.conf et d’y placer les paramètres suivant:
default_transaction_isolation = ‘READ UNCOMMITTED’
default_transaction_read_only = yes
Dans la mesure où les transactions ne poserons pas de verrou exclusif sur les ressources, la lecture sera extrèmement rapide si les index sont correctement définis. On peut également penser qu’une telle base de données serait parfaitement adaptée à une pile de disques en RAID 0. Avec de bons disques et une carte Raid munie d’une bonne quantité de RAM, on devrait obtenir des perfs à faire pâlir mySQL en isam.
Conclusion: tous les bons SGBDR savent remplir ce rôle. J’ajoute qu’avant qu’une base puisse être en lecture seule il faut quand même l’avoir alimentée avec des données…

Information glannée ici