Installation de DB2 9.5 Workgroup Edition sur Linux Fedora 10

 

Memorandum

(Version 1)

 

 

 

 

Note Technique

Date

Classement

 

Page

1/12

Rédacteur :

Fabrice SCEMAMA

 

Historique

Version

Date

Modifications

1.0

24/03/2009

Version Initiale

1.1

28/03/2009

Ajout de l'installation des modules Perl DBI et DBD::DB2

1.2

01/04/2009

Ajout de l'installation du DB2 Security Plugin (authentification avec PAM)

1.3

07/04/2009

Ajout du § concernant les profils des utilisateurs (var. d'env. LANG)

     

 

 

 

TABLE DES MATIERES

 

 

 

 

 

 

I. Objectifs et périmètre du document    3

II. Prérequis    3

III. Installation du moteur DB2 :    4

IV. Divers    12

1. Ajout de modules Perl permettant de s'adresser à DB2    12

2. Ajout d'un module d'authentification PAM    13

3. Profils des utilisateurs    14

 

 

Ce document couvre l'installation de DB2 9.5 Workgroup Edition sur une distribution Linux Fedora 10, et se base sur la configuration obtenue à l'issue de l'application des étapes mentionnées dans le document « Installation et Administration de Linux Fedora 10 (sur vm) ».

 

Ne sont couverts ni le process de migration d'une DB vers ce nouveau système, qui fera l'objet d'un autre memorandum, ni les aspects liés au tuning et au backup.

 

 

II. Prérequis

 

 

  • cd /usr/src
  • mkdir DB2_WSE_V95_Linux_x86
  • cd DB2_WSE_V95_Linux_x86
  • tar xvf /mnt/smbfs/FScemama/DB2_Rep/DB2_WSE_V95_Linux_x86.tar
  • chown -R root:root ../DB2_WSE_V95_Linux_x86

Préparation du programme d'installation de DB2.

  • cd /usr/src
  • tar xvfz /mnt/smbfs/FScemama/Linux/pdksh/pdksh-5.2.14.tar.gz
  • chown -R root:root pdksh-5.2.14
  • for i in /mnt/smbfs/FScemama/Linux/pdksh/*patch*; do cat $i |patch; done
  • ./configure –prefix=/usr
  • make
  • make install
  • ln –s /usr/bin/ksh /bin

Installation de pdksh, pré-requis DB2 (http://www.cs.mun .ca/~michael/pdksh/ et http://www.t2-project .org/packages/pdksh.html).

rpm -i /mnt/smbfs/FScemama/Linux/compat-libstdc++-33-3.2.3-47.3.i386.rpm

Installation du module de compatibilité libstdc++5 (Fedora 10 contenant la libstdc++6, alors que DB2 nécessite la 5).

  • cd /opt
  • tar xvfj /mnt/smbfs/FScemama/Linux/firefox-3.0.7.tar.bz2
  • chown -R root:root firefox
  • vi /etc/skel/.bash_profile => ajouter :/opt/firefox au PATH
  • vi /root/.bash_profile => idem
  • vi /home/fabrice/.bash_profile => idem

OPTIONNEL : installation de Firefox.

vi /etc/pam.d/system-auth-ac => Remplacer 512 par 256

Limitation taille Hash de PAM (limitation taille du passwd supporté par DB2). Sans cela, les users du shell ne peuvent se connecter aux DB…

  • groupadd db2grp1
  • groupadd db2fgrp1
  • groupadd dasadm1
  • useradd -g db2grp1 -m -d /home/db2home/db2inst1 db2inst1 -p JeCh0isis
  • useradd -g db2fgrp1 -m -d /home/db2home/db2fenc1 db2fenc1 -p DesM0tS
  • useradd -g dasadm1 -m -d /home/db2home/dasusr1 dasusr1 -p PasTriv1auX

Création des groupes et utilisateurs nécessaires à DB2. Choisir des mots de passe complexes de moins de 14 caractères (DB2).

 

 

III. Installation du moteur DB2 :

 

 

cd /usr/src/DB2_WSE_V95_Linux_x86

./db2setup

Après avoir configuré un environnement X11 (voir document « Installation et Administration de Linux Fedora 10 ». Note : génère un fichier /root/db2wse.rsp, reutilisable pour une autre installation identique et automatique.

Cliquer sur Install a product.

 

 

Custom ; next.

Install DB2 WSE ; path du fichier de réponse par défaut.

Choix des composants…

 

 

 

 

Ajouter le français.

La documentation, en PDF, est de toute façon téléchargeable sur le site d'IBM, et largement accessible sur le net…

Nous choisissons de ne pas installer le Tivoli System Automation for Multiplatforms Base Component ; ce choix est toutefois révisable par la suite (relancer db2setup).

Entrer le user dasusr1 que nous avons créé nous-mêmes dans la phase des pré-requis.

 

User db2inst1 que nous avons nous-mêmes créé dans la phase des pré-requis.

User db2fenc1 que nous avons nous-mêmes créé dans la phase des pré-requis.

Rectifier le port à 50000 (plutôt que le 50001 proposé par défaut).

Contrairement au choix effectué lors de notre installation, choisir de préparer le DB2 tools catalog (laisser les options par défaut).

Préciser le SMTP à utiliser

Préciser le destinataire des mails d'alerte. Cela peut être une adresse @socgen.com.

Récapitulatif…

Installation.

Il n'y a normalement pas de message d'erreur, même mineur , cet écran est simplement le résultat d'une itération malheureuse de ma part…

  • cp /mnt/smbfs/FScemama/Linux/db2 /etc/rc.d/init.d
    • chmod 755 /etc/rc.d/init.d/db2
    • ln -s /etc/rc.d/init.d/db2 /etc/rc.d/rc0.d/K48db2
    • ln -s /etc/rc.d/init.d/db2 /etc/rc.d/rc1.d/K48db2
    • ln -s /etc/rc.d/init.d/db2 /etc/rc.d/rc2.d/K48db2
    • ln -s /etc/rc.d/init.d/db2 /etc/rc.d/rc3.d/S23db2
    • ln -s /etc/rc.d/init.d/db2 /etc/rc.d/rc4.d/S23db2
    • ln -s /etc/rc.d/init.d/db2 /etc/rc.d/rc5.d/S23db2
    • ln -s /etc/rc.d/init.d/db2 /etc/rc.d/rc6.d/K48db2

Scripts de démarrage et d'arrêt automatique de DB2.

  • /opt/ibm/db2/V9.5/adm/db2licm -a /mnt/smbfs/FScemama/DB2_Rep/DB2_WSE_CPU_Activation_V95/db2/license/db2wse_c.lic

Enregistrement de notre licence DB2.

 

 

 

IV. Divers

 

1. Ajout de modules Perl permettant de s'adresser à DB2

 

Il peut être fréquent de devoir écrire des scripts destinés à effectuer des tâches répétitives sur une DB, avec un confort supérieur à ce que peut offrir l'interface DB2 CLP. On fera donc optionnellement, et en tant que root :

 

 

  • cd /usr/src
  • mkdir perl
  • cd perl

Préparation d'un répertoire spécifique pour nos modules Perl.

  • tar xvfz /mnt/smbfs/Fscemama/Linux/Test-Simple-0.86.tar.gz
  • chown –R root:root Test-Simple-0.86
  • cd Test-Simple-0.86
  • perl Makefile.PL
  • make
  • make install
  • cd ..

Module pré-requis.

  • Tar xvfz /mnt/smbfs/Fscemama/Linux/DBI-1.607.tar.gz
  • chown –R root:root DBI-1.607
  • cd DBI-1.607
  • perl Makefile.PL
  • make
  • make install
  • cd ..

Module générique Database Interface.

  • tar xvfz /mnt/smbfs/Fscemama/Linux/DBD-DB2-1.71.tar.gz
  • chown –R root:root DBD-DB2-1.71
  • cd DBD-DB2-1.71
  • . /home/db2home/db2inst1/sqllib/db2profile
  • perl Makefile.PL
  • make
  • make install

Driver DBI pour DB2.

cat <<eot >/tmp/test.pl

#!/usr/bin/perl -w

use strict;

use DBI;

 

my $dbh = DBI->connect("dbi:DB2:formsieb", "siebel", "xxx");

 

my $query = "select count(1) from eim_account";

print "Query: [$query]\n";

my $sth = $dbh->prepare($query);

$sth->execute;

my($cnt) = $sth->fetchrow_array || "undef";

$sth->finish;

print "Output: [$cnt]\n";

 

$dbh->disconnect();

eot

 

perl /tmp/test.pl

Test ! Où « formsieb » est le nom de la DB, le 1er « siebel » le user, et « xxx » le mot de passe.

Query: [select count(1) from eim_account]

Output: [84]

Ce que le script doit renvoyer.

 

 

2. Ajout d'un module d'authentification PAM

 

Si l'on a suivi la partie de l'installation de Linux relative à l'intégration dans l'AD (à l'aide du PAM, de Samba et de Kerberos), on peut souhaiter que des membres de l'AD aient accès à DB2.

 

Or, DB2 utilise uniquement des comptes locaux, qui doivent avoir été créés sur le système.

 

Il existe toutefois un plugin de sécurité pour DB2 qui étend l'authentification au PAM – le DB2 Security Plugin, proposé sous licence opensource par Quest Software (http://rc.quest.com/topics/db2_sys-auth/).

 

Installation, en tant que root :

 

  • cd /usr/src
  • tar xvfz /mnt/smbfs/FScemama/DB2_Rep/DB2_sys-auth_LINUX_X86.3.0.0.19.tar.gz
  • mv –fv DB2_sys-auth DB2_sys-auth-3.0.0.19
  • cd DB2_sys-auth-3.0.0.19
 
  • ./install.sh db2inst1 PAM
  • su – db2inst1
  • db2stop
  • db2 update dbm cfg using SRVCON_PW_PLUGIN sys-auth
  • db2 update dbm cfg using GROUP_PLUGIN sys-auth
  • db2 update dbm cfg using CLNT_PW_PLUGIN sys-auth
  • db2start

Le plugin doit être installé dans chaque instance de la base. Les fichiers seront ici copiés vers le /home/db2home/ db2inst1/sqllib /security32 /plugin/.

db2

connect to FORMSIEB user scemama using xxx

connect reset

Test, en supposant que la base FORMSIEB ait été créée, et que scemama soit un user de l'AD.

 

 

 

3. Profils des utilisateurs

 

 

cat <<eot >>/root/.bashrc

# The following three lines have been added by UDB DB2.

if [ -f /home/db2home/db2inst1/sqllib/db2profile ]; then

. /home/db2home/db2inst1/sqllib/db2profile

fi

unset LANG

eot

Paramètres permettant d'exécuter la commande db2. Noter la modification de la variable d'environnement LANG, qui peut empêcher le bon traitement des accents si on la laisse à en_US.UTF-8 .

cat <<eot >>/etc/skel/.bashrc

# The following three lines have been added by UDB DB2.

if [ -f /home/db2home/db2inst1/sqllib/db2profile ]; then

. /home/db2home/db2inst1/sqllib/db2profile

fi

unset LANG

eot

Idem pour les futurs profils.

for i in /home/*; do

if [ -d $i ]; then

cat <<eot >>/$i/.bashrc

# The following three lines have been added by UDB DB2.

if [ -f /home/db2home/db2inst1/sqllib/db2profile ]; then

. /home/db2home/db2inst1/sqllib/db2profile

fi

unset LANG

eot

fi

done

Idem pour les profils existants.

 

 

 

4. Paramètres du kernel

 

On peut optimiser les performances de DB2 en modifiant les sémaphores. Toutefois, lors de son démarrage, DB2 les ajuste selon la RAM disponible et les recommandations usuelles.

 

Dans notre cas, et au vu d'un log de db2diag, on a multiplié par 2 la valeur de shmmax.

 

Commandes :

 

Posted on janvier 4, 2011 at 4 h 30 min by Fabrice Scemama · Permalink
In: DB2, Linux, Open Source · Tagged with: , , , , ,

Leave a Reply

You must be logged in to post a comment.