Table des matières

Installation de PostgreSQL sous Solaris 10

Cet article vous donne quelque petits trucs pour permettre d’installer, via les sources (et pas en utilisant les packages solaris), PostgreSQL.

Tout d’abord, téléchargez PostgreSQL sur le site officiel. Vous ne devriez pas avoir de difficultés pour ça ;-) Décompressez le, puis lancez le script configure.

Attention aux options, il est *nécessaire* de préciser l’option –enable-thread-safety, sans quoi votre serveur aura quelque soucis, et vous obtiendrez régulièrement le message “could not receive data from server: Error 0” dans votre client préféré.

./configure --prefix=/opt/clarisys --enable-thread-safety

Attention, vous aurez besoin de readline, ainsi que gmake et les outils de compilation standard. J’ai testé avec gcc, pas avec sunstudio. Reportez vous à la documentation de pkgsrc, ou de blastwave pour les obtenir.

Readline

Pour installer la librairie readline, j’ai utilisé la methode précédente, avec un –prefix=/opt/clarisys.

En revanche, pour compiler postgresql par la suite, j’ai du utiliser la ligne de commande suivante:

LDFLAGS=-L/opt/clarisys/lib CFLAGS=-I/opt/clarisys/include ./configure --prefix=/opt/clarisys --enable-thread-safety

Ceci permet d’utiliser la librairie readline compilée par nos soins.

SMF

Pour ce qui est de l’utilisation avec SMF, j’ai juste modifié les propriétés de svc://application/database/postgresql:version_82, comme ceci:

(N’oubliez pas que dans svccfg, vous pouvez utiliser la touche tabulation !

# svccfg
svc:> select application/database/postgresql
svc:/application/database/postgresql> select version_82 
svc:/application/database/postgresql:version_82> editprop

Modifiez les valeurs intéressantes, afin de refléter votre configuration, puis sauvez le fichier.

Voici mon fichier de propriétés:

select svc:/application/database/postgresql:version_82

# Property group "postgresql"
# delprop postgresql
# addpg postgresql application
# setprop postgresql/value_authorization = astring: (solaris.smf.value.postgres)
# setprop postgresql/bin = astring: (/opt/clarisys/bin)
# setprop postgresql/data = astring: (/home/ed/postgres/8.2)
# setprop postgresql/log = astring: (postgresql-8.2.log)

# Property group "method_context"
# delprop method_context
# addpg method_context framework
# setprop method_context/limit_privileges = astring: (:default)
# setprop method_context/privileges = astring: (:default)
# setprop method_context/project = astring: (:default)
# setprop method_context/resource_pool = astring: (:default)
# setprop method_context/supp_groups = astring: (:default)
# setprop method_context/use_profile = boolean: (false)
# setprop method_context/group = astring: (staff)
# setprop method_context/user = astring: (ed)
# setprop method_context/working_directory = astring: (/home/ed/postgres/8.2)

# Property group "general"
# delprop general
# addpg general framework
# setprop general/enabled = boolean: (true)

# Property group "restarter"
# delprop restarter
# addpg restarter framework
# setprop restarter/transient_contract = count: ()
# setprop restarter/logfile = astring: (/var/svc/log/application-database-postgresql:version_82.log)
# setprop restarter/contract = count: (138)
# setprop restarter/start_pid = count: (1072)
# setprop restarter/start_method_timestamp = time: (1198893763.098010000)
# setprop restarter/start_method_waitstatus = integer: (0)
# setprop restarter/auxiliary_state = astring: (none)
# setprop restarter/next_state = astring: (none)
# setprop restarter/state = astring: (online)
# setprop restarter/state_timestamp = time: (1198893763.100456000)

# Property group "restarter_actions"
# delprop restarter_actions
# addpg restarter_actions framework
# setprop restarter_actions/maint_off = integer: ()

Les propriétés que j’ai modifié sont:

setprop postgresql/bin = "/opt/clarisys/bin"
setprop postgresql/data = "/home/ed/postgres/8.2"
setprop postgresql/log = "postgresql-8.2.log"
setprop method_context/working_directory = "/home/ed/postgres/8.2"

Reportez vous au manuel de svccfg(1M) pour plus de détails.

Optimisation

Attention cette section est totalement incomplète. Reportez vous au manuel officiel de PostgreSQL pour plus de détails.

shared_buffers

Afin d’augmenter les shared buffers, vous devez augmenter la quantité de mémoire partagée maximum autorisée par Solaris. Pour ce faire, éditez le fichier /etc/system, et rajoutez y ceci:

* PostgreSQL shmax
* 4GB shm
set shmsys:shminfo_shmmax = 4294967295

Attention les valeurs sont en octets et ne doivent *JAMAIS* dépasser la quantité maximum de mémoire dont vous disposez. Vous pouvez après un redémarrage de la machine, augmenter le paramètre shared_buffers de postgresql.conf.

 
docs/build/postgresql.txt · Dernière modification: 29/12/2007 17:38 par ed