Thursday, August 20, 2009

ORACLE PUBLIC YUM SERVER et ORACLE-VALIDATED RPM

Lors de mes tests de cet été je suis tombé par hasard sur le serveur yum public qu'Oracle a mis en place afin de faciliter la vie aux personnes qui utilisent souvent sa distribution Unbreakable Linux et qui souhaiteraient pouvoir bénéficier des facilitées de Yum lors des mises à jour de leurs installations OEL même si elles n'ont pas pris d'abonnement de support (assuré par Oracle). En même temps je découvre aussi qu'Oracle a mis en place un package spécial qui aide, lors d'installation d'une distribution OEL ou Redhat pour la mise en place d'une base de données Oracle, à automatiser le téléchargement et l'installation de tous les packages RPM requis y compris les dépendances tout en assurant la configuration des paramètres du noyau, la création du compte oracle et des groupes dba et oinstall. Le gain de temps devrait donc être appréciable.
Dès lors il est tentant de tester ces deux mécanismes intéressants afin de pouvoir les utiliser sans souci chez les clients.
Mes recherches sur le net ont cependant montré que les articles expliquant la mise en œuvre de ces deux mécanismes – en effet je recommande de les utiliser comme un couple inséparable – font des hypothèses qu'ils n'explicitent pas.
Voilà pourquoi ce n-ième article sur le sujet a pour vocation d'être autosuffisant pour tout utilisateur connaissant un peu Linux (son installation et sa configuration) et surtout pour les DBAs.
Le lecteur pourra consulter avec bénéfice les trois articles suivants que j'ai exploités pour faire mes tests qui ont été concluants :
i) Prepare your Linux Server to install Oracle database using oracle-validated RPM - http://perumal.org/tag/rpm/
ii) Public Yum Server - http://public-yum.oracle.com/
iii) Installing the Oracle Validated rpm on el5 - http://blogs.oracle.com/AlejandroVargas/Installing-the-Oracle-Validated-rpm-on-EL5.pdf

1) Vérifier si yum est présent sur son installation et si ce n'est pas le cas, il faut commencer par l'installer.
[root@prod yum.repos.d]# rpm -qa | grep yum
yum-security-1.1.16-13.el5
yum-updatesd-0.9-2.el5
yum-3.2.19-18.el5
yum-metadata-parser-1.1.2-2.el5
[root@prod yum.repos.d]# ls -l
total 0

2) Vérifier si un référentiel Yum est présent sur votre système.
En général ce n'est pas le cas pour les systèmes Oracle Enterprise L'inux. Au cas où un serait présent mais ne correspondrait pas à la version de votre distribution, il faudrait le renommer.
root@prod etc]# cd yum.repos.d
[root@prod yum.repos.d]# ls
[root@prod yum.repos.d]# ls -l
total 0

3) Télécharger le référentiel Yum correspondant à votre distribution et l'activer
L'activation consiste à l'éditer avec son éditeur préféré et à remplacer "enabled=0" par "enabled=1"
[root@prod yum.repos.d]# wget http://public-yum.oracle.com/public-yum-el5.repo
--19:43:01-- http://public-yum.oracle.com/public-yum-el5.repo
Résolution de public-yum.oracle.com... 141.146.44.34
Connexion vers public-yum.oracle.com|141.146.44.34|:80...connecté.
requête HTTP transmise, en attente de la réponse...200 OK
Longueur: 1402 (1,4K) [text/plain]
Saving to: `public-yum-el5.repo'

100%[=======================================>] 1.402 --.-K/s in 0,002s

19:43:22 (685 KB/s) - « public-yum-el5.repo » sauvegardé [1402/1402]

[root@prod yum.repos.d]# ls
public-yum-el5.repo
[root@prod yum.repos.d]# vi public-yum-el5.repo
[root@prod yum.repos.d]#


4) Télécharger le package oracle-validated correspondant à sa distribution à l'adresse http://oss.oracle.com/el5/oracle-validated et l'installer
Les messages générés lors de mes tests sont fournis ci-dessous.
[root@prod yum.repos.d]# cd /tmp
[root@prod tmp]# wget http://oss.oracle.com/el5/oracle-validated/oracle-validated-1.0.0-18.el5.i386.rpm
[root@prod tmp]# yum install ./oracle-validated-1.0.0-18.el5.i386.rpm
Loaded plugins: security
el5_u3_base | 1.1 kB 00:00
primary.xml.gz | 788 kB 00:08
el5_u3_base 3442/3442
Setting up Install Process
Parsing package install arguments
Examining ./oracle-validated-1.0.0-18.el5.i386.rpm: oracle-validated-1.0.0-18.el5.i386
Marking ./oracle-validated-1.0.0-18.el5.i386.rpm to be installed
Resolving Dependencies
--> Running transaction check
---> Package oracle-validated.i386 0:1.0.0-18.el5 set to be updated
--> Processing Dependency: compat-db for package: oracle-validated
--> Processing Dependency: compat-gcc-34 for package: oracle-validated
--> Processing Dependency: compat-gcc-34-c++ for package: oracle-validated
--> Processing Dependency: libXp for package: oracle-validated
--> Processing Dependency: libaio-devel for package: oracle-validated
--> Processing Dependency: sysstat for package: oracle-validated
--> Processing Dependency: unixODBC for package: oracle-validated
--> Processing Dependency: unixODBC-devel for package: oracle-validated
--> Running transaction check
---> Package compat-gcc-34.i386 0:3.4.6-4 set to be updated
---> Package libaio-devel.i386 0:0.3.106-3.2 set to be updated
---> Package compat-db.i386 0:4.2.52-5.1 set to be updated
---> Package unixODBC.i386 0:2.2.11-7.1 set to be updated
---> Package sysstat.i386 0:7.0.2-3.el5 set to be updated
---> Package unixODBC-devel.i386 0:2.2.11-7.1 set to be updated
---> Package libXp.i386 0:1.0.0-8.1.el5 set to be updated
---> Package compat-gcc-34-c++.i386 0:3.4.6-4 set to be updated
--> Finished Dependency Resolution

Dependencies Resolved

================================================================================
Package Arch Version Repository Size
================================================================================
Installing:
oracle-validated i386 1.0.0-18.el5 ./oracle-validated-1.0.0-18.el5.i386.rpm
15 k
Installing for dependencies:
compat-db i386 4.2.52-5.1 el5_u3_base 1.7 M
compat-gcc-34 i386 3.4.6-4 el5_u3_base 4.1 M
compat-gcc-34-c++ i386 3.4.6-4 el5_u3_base 11 M
libXp i386 1.0.0-8.1.el5 el5_u3_base 22 k
libaio-devel i386 0.3.106-3.2 el5_u3_base 11 k
sysstat i386 7.0.2-3.el5 el5_u3_base 170 k
unixODBC i386 2.2.11-7.1 el5_u3_base 830 k
unixODBC-devel i386 2.2.11-7.1 el5_u3_base 743 k

Transaction Summary
================================================================================
Install 9 Package(s)
Update 0 Package(s)
Remove 0 Package(s)

Total download size: 19 M
Is this ok [y/N]: y
Downloading Packages:
(1/8): libaio-devel-0.3.106-3.2.i386.rpm | 11 kB 00:00
(2/8): libXp-1.0.0-8.1.el5.i386.rpm | 22 kB 00:00
(3/8): sysstat-7.0.2-3.el5.i386.rpm | 170 kB 00:01
(4/8): unixODBC-devel-2.2.11-7.1.i386.rpm | 743 kB 00:12



(5/8): unixODBC-2.2.11-7.1.i386.rpm | 830 kB 00:11
(6/8): compat-db-4.2.52-5.1.i386.rpm | 1.7 MB 00:19
(7/8): compat-gcc-34-3.4.6-4.i386.rpm | 4.1 MB 00:47
(8/8): compat-gcc-34-c++-3.4.6-4.i386.rpm | 11 MB 02:25
--------------------------------------------------------------------------------
Total 47 kB/s | 19 MB 06:43
Running rpm_check_debug
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
Installing : compat-gcc-34 [1/9]
Installing : unixODBC [2/9]
Installing : compat-gcc-34-c++ [3/9]
Installing : libXp [4/9]
Installing : compat-db [5/9]
Installing : sysstat [6/9]
Installing : unixODBC-devel [7/9]
Installing : libaio-devel [8/9]
Installing : oracle-validated [9/9]

Installed: oracle-validated.i386 0:1.0.0-18.el5
Dependency Installed: compat-db.i386 0:4.2.52-5.1 compat-gcc-34.i386 0:3.4.6-4 compat-gcc-34-c++.i386 0:3.4.6-4 libXp.i386 0:1.0.0-8.1.el5 libaio-devel.i386 0:0.3.106-3.2 sysstat.i386 0:7.0.2-3.el5 unixODBC.i386 0:2.2.11-7.1 unixODBC-devel.i386 0:2.2.11-7.1
Complete!
[root@prod tmp]#

5) Vérifier la liste des fichiers générés après cette installation de oracle-validated;
Sur mon installation, voici les fichiers et répertoires nouveaux générés. On peut obtenir cette liste par une commande du type "find / -name "*oracle-validated*"
/usr/bin/oracle-validated-verify
/etc/sysconfig/oracle-validated
/etc/sysconfig/oracle-validated/oracle-validated.conf
/etc/sysconfig/oracle-validated/oracle-validated-verify
/etc/sysconfig/oracle-validated/oracle-validated.params
/var/log/oracle-validated

6) Le contenu du fichier /var/log/oracle-validated/results/orakernel.log
[root@prod results]# cat /var/log/oracle-validated/results/orakernel.log
Creating oracle user passed

Verifying kernel parameters as per Oracle recommendations...
fs.file-max 327679
kernel.msgmni 2878
kernel.msgmax 65536 8192
kernel.msgmnb 65536 65536
kernel.sem 250 32000 100 142
kernel.shmmni 4096
kernel.shmall 268435456 1073741824
kernel.shmmax 4294967295 4294967295
kernel.sysrq 0 1
net.core.rmem_default 262144
net.core.rmem_max 4194304
net.core.wmem_default 262144
net.core.wmem_max 262144
fs.aio-max-nr 3145728
net.ipv4.ip_local_port_range 1024 65000
Setting kernel parameters as per oracle recommendations...
Altered file /etc/sysctl.conf
Original file backed up at /etc/sysctl.conf.orabackup
Verifying & setting of kernel parameters passed

Verifying oracle user OS limits as per Oracle recommendations...
oracle soft nofile 131072
oracle hard nofile 131072
oracle soft nproc 131072
oracle hard nproc 131072
oracle soft core unlimited
oracle hard core unlimited
oracle soft memlock 3500000
oracle hard memlock 3500000
Setting oracle user OS limits as per Oracle recommendations...
Altered file /etc/security/limits.conf
Original file backed up at /etc/security/limits.conf.orabackup
Verifying & setting of user limits passed

Verifying kernel boot parameters as per Oracle recommendations...
Setting kernel boot parameters as per Oracle recommendations...
Boot parameters will be effected on next reboot
Altered file /boot/grub/grub.conf
Original file backed up at /boot/grub/grub.conf.orabackup
Verifying & setting of boot parameters passed

Verifying module parameters as per Oracle recommendations...
Setting module parameters as per Oracle recommendations...
Altered file /etc/modprobe.conf
Original file backed up at /etc/modprobe.conf.orabackup
e1000 settings modified to include FlowControl=1
Aug 9 19:57:43 prod yum: Installed: compat-db-4.2.52-5.1.i386
Aug 9 19:57:44 prod yum: Installed: sysstat-7.0.2-3.el5.i386
Aug 9 19:57:45 prod yum: Installed: unixODBC-devel-2.2.11-7.1.i386
Aug 9 19:57:45 prod yum: Installed: libaio-devel-0.3.106-3.2.i386
Aug 9 19:57:54 prod kernel: e1000: eth0: e1000_watchdog_task: NIC Link is Up 1000 Mbps Full Duplex, Flow Control: RX
Verifying & setting of module parameters passed

7) Le contenu du fichier /etc/sysconfig/oracle-validated/oracle-validated.params
[root@prod results]# cat /etc/sysconfig/oracle-validated/oracle-validated.params
# Oracle VC Parameter config file


#Kernel parameters
#category:arch:kernel:distribution:parameter:recommended-value
kernel:*:*:*:fs.file-max:327679
kernel:*:*:*:kernel.msgmni:2878
kernel:*:*:*:kernel.msgmax:8192
kernel:*:*:*:kernel.msgmnb:65536
kernel:*:*:*:kernel.sem:250 32000 100 142
kernel:*:*:*:kernel.shmmni:4096
kernel:*:*:*:kernel.shmall:1073741824
#shmmax value below will be overwritten based on architecture (Recommended:4GB for 32bit and 4TB for 64bit)
kernel:*:*:*:kernel.shmmax:4294967295
kernel:*:*:*:kernel.sysrq:1
kernel:*:*:*:net.core.rmem_default:262144
kernelcomment:For 11g recommended value for net.core.rmem_max is 4194304
kernel:*:*:*:net.core.rmem_max:4194304
kernelcomment:For 10g uncomment the following line, comment other entries for this parameter and re-run sysctl -p
kernelcomment:net.core.rmem_max=2097152
kernel:*:*:*:net.core.wmem_default:262144
kernel:*:*:*:net.core.wmem_max:262144
kernel:*:*:*:fs.aio-max-nr:3145728
kernel:*:*:*:net.ipv4.ip_local_port_range:1024 65000
kernel:*:*:Red Hat Enterprise Linux AS release 4:vm.lower_zone_protection:100
kernel:*:*:Enterprise Linux Enterprise Linux AS release 4:vm.lower_zone_protection:100

#Oracle OS User limits (domain=oracle/*)
#category:arch:kernel:distribution:type:item:recommended-value
user:*:*:*:soft:nofile:131072
user:*:*:*:hard:nofile:131072
user:*:*:*:soft:nproc:131072
user:*:*:*:hard:nproc:131072
user:*:*:*:soft:core:unlimited
user:*:*:*:hard:core:unlimited
user:i686:*:*:soft:memlock:3500000
user:i686:*:*:hard:memlock:3500000
user:x86_64:*:*:soft:memlock:50000000
user:x86_64:*:*:hard:memlock:50000000
usercomment:i686:Recommended stack hard limit 32MB for oracle installations
usercomment:i686:oracle hard stack 32768

#Kernel boot parameters
#category:arch:processor:kernel:distribution:parameter:recommended-value
boot:x86_64:AMD:*:*:numa:off

#Kernel module parameters
#listed for reference only
#category:arch:processor:kernel:distribution:parameter:recommended-value
#module:*:*:*:e1000:FlowControl=1
[root@prod results]#


8) Nous vous conseillons enfin de procéder à des vérifications manuelles relatives aux packages RPM requis pour Oracle, aux paramètres du noyau Linux et à la création du compte Linux oracle et des groupes dba et oinstall. Le lecteur peut s'appuyer sur l'excellent article du site Oracle-base intitulé "Oracle 11g Release 1 RAC On Linux Using VMware Server 2" consultable à l'adresse http://www.oracle-base.com/articles/11g/OracleDB11gR1RACInstallationOnOEL5UsingVMwareServer2.php, dans sa partie consacré aux pré-requis.

Labels: , , , ,

0 Comments:

Post a Comment

<< Home