PostgreSQL dans une Zone

Après le mini-howto d’installation de glassfish dans une zone. Voici celui pour pgSQL (postgreSQL) dans une zone.

Ce qui est très sympa c’est que pgSQL 8.1 et 8.2 sont déjà installé dans SOLARIS 10 et Solaris SXDE (Solaris Express Developer Edition). Donc pas besoin de les installer.

Aller c’est partie pour la création de la zone de la même façons que pour glassfish :

# mkdir /var/zones/z_pgsql
# chmod –R 700 /var/zones/z_pgsql

Je ne vais pas créer de pool de ressource CPU mains directement créer la zone. Je reviendrais dans un autre billet à ce sujet.

# zonecfg -z z_pgsql
sunrise: No such zone configured
Use ‘create’ to begin configuring a new zone.
#zonecfg:sunrise> create # Création de la Zone
#zonecfg:sunrise> set zonepath=/var/zones/z_pgsql #Dossier de la zone
#zonecfg:sunrise> add net # Ajout d’une configuration réseau
#zonecfg:sunrise:net> set address=192.168.1.11 #Ip de la zone
#zonecfg:sunrise:net> set physical=pcn0 #Nom de l’interphase réseau physique (vmware pour l’exemple)
#zonecfg:sunrise:net> end # fin de la configuration réseaux
#zonecfg:sunrise> verify # Vérification de la configuration
#zonecfg:sunrise> commit # Validation de la configuration
#zonecfg:sunrise> exit # Sortie de la configuration de zone

On va vérifier la configuration :

# zonecfg -z z_pgsql info
zonepath: /var/zones/z_pgsql
autoboot: false
pool:
inherit-pkg-dir:
dir: /lib
inherit-pkg-dir:
dir: /platform
inherit-pkg-dir:
dir: /sbin
inherit-pkg-dir:
dir: /usr
net:
address: 192.168.1.121
physical: pcn0

Maintenant que la configuration de la zone est prête on va passer à la création à proprement parlé de la zone. Cette étape peut être relativement longue celon les performances de votre machine.

# zoneadm –z z_pgsql verify
# zoneadm -z z_pgsql install
Preparing to install zone .
Creating list of files to copy from the global zone.
Copying <2812> files to the zone.
Initializing zone product registry.
Determining zone package initialization order.
Preparing to initialize <1200> packages on the zone.
Initialized <1200> packages on zone.
Zone is initialized.
Installation of <1> packages was skipped.
Le fichier
contient un journal de l’installation de la zone.

Vous pouvez vérifier que la zone z_pgsql est bien installé :

# zoneadm list -cvi

Maintenant que la zone est créer, on va pouvoir la démarrer :

#zoneadm –z z_pgsql boot -s

Lors du premier boot il faut configurer la zone en fonction de vos préférence. Parfois Solaris a un peu du mal a reconnaitre le F2 dans ce utiliser la combinaison de touche MAJ + Esc + 2 pour validé les étapes.

On se loge sur la zone z_glassfish :

# zlogin –C z_glassfish

Pour ne pas encombré inutilement d’image le billet, je vous ai fait un récapitulatif des différentes options que vous devrez choisir (dans l’ordre d’affichage) :

Langue : Français
Environnement Localisé : France(UTF8)
Emulateur de terminal CDE (dtterm)
Hostname: glassfish
Configuration kerberos: No
Name Service : DNS
Hostname : pgsql
Nameserver : 208.67.222.222 #nameserver de opendns
Nameserver : 208.67.220.220 #nameserver de opendns
NFS4 configuration: Choix par defaut.
Time zone: Europe
Countries et regions : France
Mot de passe : password

A présent la console doit vous demander de vous identifier

glassfish console login : root
password : password

Voila vous êtes dans votre zone, vous pouvez faire exit pour en sortir et retour dans votre zone globale solaris.

Maintenant activons postgreSQL.
On commence par switcher vers l’utilisateur postfres :

# su – postgres

On creer ensuite le cluster de la DB pgsql :

$ /usr/postgres/8.2/bin/initdb -D /var/postgres/8.2/data

Si tout c’est bien passé vous devriez avec un message de ce type :

The files belonging to this database system will be owned by user « postgres ».
This user must also own the server process.

The database cluster will be initialized with locales
COLLATE: fr_FR.UTF-8
CTYPE: fr_FR.UTF-8
MESSAGES: fr.UTF-8
MONETARY: fr_FR.UTF-8
NUMERIC: fr_FR.UTF-8
TIME: fr_FR.UTF-8
The default database encoding has accordingly been set to UTF8.

fixing permissions on existing directory /var/postgres/8.2/data … ok
creating subdirectories … ok
selecting default max_connections … 100
selecting default shared_buffers/max_fsm_pages … 32MB/204800
creating configuration files … ok
creating template1 database in /var/postgres/8.2/data/base/1 … ok
initializing pg_authid … ok
initializing dependencies … ok
creating system views … ok
loading system objects’ descriptions … ok
creating conversions … ok
setting privileges on built-in objects … ok
creating information schema … ok
vacuuming database template1 … ok
copying template1 to template0 … ok
copying template1 to postgres … ok

WARNING: enabling « trust » authentication for local connections
You can change this by editing pg_hba.conf or using the -A option the
next time you run initdb.

Success. You can now start the database server using:

/usr/postgres/8.2/bin/postgres -D /var/postgres/8.2/data
or
/usr/postgres/8.2/bin/pg_ctl -D /var/postgres/8.2/data -l logfile start

Si vous voulez acceder a votre serveur autre qu’en local il faudra changer la configuration de listen_address dans /var/postgre/8.2/data/postresql.conf :

# nano /var/postgre/8.2/data/postresql.conf
listen_address = « IP » # ou * si vous voulez que toutes les IP y accede

Enfin il existe plusieurs façons de démarrer pgSQL, je vais vous présenter celle avec SMF. En temps que root on démare postgreSQL avec SMF.

# /usr/sbin/svcadm enable postgresql:version_82

ou bien tout simplement

# /usr/postgres/8.2/bin/postgres -D /var/postgres/8.2/data

A présent je vais installer pgadmin qui est GUI pour postreySQL qui fonctionne sous windows, linux et Solaris. Je vais expliquer ici l’installation pour Solaris.

Une fois téléchargé :

# gzip -d pgadmin3-1.8.0_x86.tar.gz
# tar -xvf pgadmin3-1.8.0_x86.tar
# pkgadd -d . pgadmin3

Les binaire se trouve dans /opt/pgadmin3/bin, donc si vous voulez y acceder directement ajouter le a votre PATH.

http://www.postgresql.org/ftp/pgadmin3/release/v1.8.0/solaris/x86/

C’est finit.

La doc qui m’a permis d’écrire ce billet :

http://www.sun.com/software/solaris/howtoguides/postgresqlhowto.jsp
http://docs.sun.com/app/docs/doc/819-5578/6n7lcpcl2?a=view