Outils personnels

Oracle 10g sur CentOS 64 bits

De wikiGite

PRE-REQUIS : *** Autoriser l'affichage X11 en local sur le poste.

le plus simple :

ssh -Y root@192.168.1.10 #(X11 forwarding par ssh, pas besoin de "xhost +")

Vérifications des pré-requis

# cat /etc/redhat-release 
CentOS release 5.4 (Final) 
# uname -a 
Linux dtc-s0002b 2.6.18-164.el5 #1 SMP Thu Sep 3 03:28:30 EDT 2009 x86_64 x86_64 x86_64 GNU/Linux 
# cat /proc/version 
Linux version 2.6.18-164.el5 (mockbuild@builder10.centos.org) (gcc version 4.1.2 20080704 (Red Hat 4.1.2-46)) #1 SMP Thu Sep 3 03:28:30 EDT 2009 
# grep "model name" /proc/cpuinfo 
model name	: Intel(R) Xeon(R) CPU           E5530  @ 2.40GHz 
model name	: Intel(R) Xeon(R) CPU           E5530  @ 2.40GHz 
model name	: Intel(R) Xeon(R) CPU           E5530  @ 2.40GHz 
model name	: Intel(R) Xeon(R) CPU           E5530  @ 2.40GHz 
model name	: Intel(R) Xeon(R) CPU           E5530  @ 2.40GHz 
model name	: Intel(R) Xeon(R) CPU           E5530  @ 2.40GHz 
model name	: Intel(R) Xeon(R) CPU           E5530  @ 2.40GHz 
model name	: Intel(R) Xeon(R) CPU           E5530  @ 2.40GHz 
# grep MemTotal /proc/meminfo 
MemTotal:     18477588 kB
# grep SwapTotal /proc/meminfo 
SwapTotal:    18874360 kB
# df -k 
Filesystem           1K-blocks      Used Available Use% Mounted on 
/dev/mapper/vg00-lvol01 
                     15236080   2539764  11909884  18% / 
/dev/mapper/vg00-lvol03 
                      4062912    238216   3614984   7% /var 
/dev/mapper/vg00-lvol04 
                      4062912    220680   3632520   6% /tmp 
/dev/mapper/vg00-lvol02 
                      4062912    139500   3713700   4% /home 
/dev/cciss/c0d0p1       101086     19585     76282  21% /boot 
tmpfs                  9238792         0   9238792   0% /dev/shm 
/dev/mapper/vg00-lvol05 
                    103212320   4159408  93810032   5% /work 
/dev/mapper/vg00-lvol06 
                     10321208    154236   9642684   2% /oracle 
# ls /oracle 
lost+found 

Packages requis et versions minimum :

binutils-2.15.92.0.2-10.EL4 
compat-db-4.1.25-9 
control-center-2.8.0-12 
gcc-3.4.3-9.EL4 
gcc-c++-3.4.3-9.EL4 
glibc-2.3.4-2 
glibc-common-2.3.4-2 
gnome-libs-1.4.1.2.90-44.1 
libstdc++-3.4.3-9.EL4 
libstdc++-devel-3.4.3-9.EL4 
make-3.80-5 
pdksh-5.2.14-30 
sysstat-5.0.5-1 
xscreensaver-4.18-5.rhel4.2 (?????) 

Packages installés par défaut (vérification par "rpm -q <nom du paquet>"):

binutils-2.17.50.0.6-12.el5 
control-center-2.16.0-16.el5 # --> vraiment utile ??
glibc-2.5-42.el5_4.3 
glibc-common-2.5-42.el5_4.3 
libstdc++-4.1.2-46.el5_4.2 
make-3.81-3.el5 

NOTE : on peut formater la sortie de rpm -q par «  rpm -q --qf '%{NAME}-%{VERSION}-%{RELEASE} %{ARCH}\n' <liste de packages> »

Packages Manquants (installés individuellement par "yum install <nom du paquet>", tous disponibles dans les sources CentOS):

compat-db 
gcc 
gcc-c++ 
gnome-libs # --> vraiment utile ??
libstdc++-devel 
pdksh 
sysstat 

Pour une install x86_64, installer aussi les version 32bits de glibc, glibc-devel, libstdc++ et libstdc++-devel. Exemple :

yum install glibc-devel.i386

Création de l'environnement

Création user Oracle (HOME DIR "/oracle", ne pas oublier de vérifier les droits sur ce répertoire) et groupes :

groupadd oinstall 
groupadd dba 
useradd -g oinstall -G dba oracle -d /oracle 
passwd oracle 
    • l'utilisateur nobody doit exister :
# id nobody 
uid=99(nobody) gid=99(nobody) groups=99(nobody) 

Vérifications système :

KERNEL valeurs minimum préconisées par Oracle :
kernel.sem = 250 32000 100 128 
kernel.shmmni = 4096 
kernel.shmall = 2097152 
kernel.shmmax = 2147483648 
fs.file-max = 65536 
net.ipv4.ip_local_port_range = 1024 65000 
net.core.rmem_default = 262144 
net.core.rmem_max = 262144 
net.core.wmem_default = 262144 
net.core.wmem_max = 262144 

valeurs par défaut CentOS (par "sysctl -a | grep <parametre_a_afficher>") :

kernel.sem = 250	32000	32	128 
kernel.shmmni = 4096 
kernel.shmall = 4294967296 
kernel.shmmax = 68719476736 
fs.file-max = 1801081 
net.ipv4.ip_local_port_range = 32768	61000 
net.core.rmem_default = 129024 
net.core.rmem_max = 131071 
net.core.wmem_default = 129024 
net.core.wmem_max = 131071 

Modification /etc/sysctl.conf, ajout à la fin :

# Added for Oracle 
kernel.sem = 250 32000 100 128 
net.ipv4.ip_local_port_range = 1024 65000 
net.core.rmem_default = 262144 
net.core.rmem_max = 262144 
net.core.wmem_default = 262144 
net.core.wmem_max = 262144 

Charger les nouveaux réglages par "sysctl -p"

Ajout à la fin de /etc/security/limits.conf :

oracle           soft    nproc   2047 
oracle           hard    nproc   16384 
oracle           soft    nofile  1024 
oracle           hard    nofile  65536 

Création de /etc/profile.d/oracle.sh :

if [ $USER = "oracle" ]; then 
        if [ $SHELL = "/bin/ksh" ]; then 
              ulimit -p 16384 
              ulimit -n 65536 
        else 
              ulimit -u 16384 -n 65536 
        fi 
fi 

Sans oublier :

# chmod 755 /etc/profile.d/oracle.sh 

Sur CentOS, modifier le fichier /etc/redhat-release pour correspondre à ce qu'Oracle attend

cp /etc/redhat-release /etc/redhat-release.old
vi /etc/redhat-release

Et remplacer la ligne par

redhat-4

Déconnecter la session SSH et se reconnecter avec "oracle" (le X11 forwarding ne fonctionne plus si on change simplement d'utilisateur par "su")

Lancement de l'installation

Décompresser l'archive. S'il s'agit d'un cpio :

gunzip 10201_database_linux_x86_64.cpio.gz
cpio -idvm < 10201_database_linux_x86_64.cpio

Ou s'il s'agit d'un simple zip :

gunzip 10201_database_linux_x86_64.zip

Puis lancer l'installateur (une session X doit être ouverte entre les deux machines si on fait l'installation à distance):

cd database
./runInstaller

En cas d'erreur :

Error in CreateOUIProcess(): 13 : Permission denied

Modifier /etc/fstab pour autoriser l'exécution de script dans /tmp (sur la ligne correspondant à la partition /tmp, supprimer "noexec".

Note : Remettre ce paramètre à la fin de l'installation d'Oracle ! C'est une sécurité importante si le serveur est visible d'internet, par exemple.

Laisser le chemin "inventory" par défaut, puis choisir Enterprise ou Standard Edition.

Régler les éventuels problèmes relevés par la vérification des pré-requis.

Choisir si on ne veut installer que les exécutables ou si on veut aussi créer une base tout de suite.

Valider le résumé.

En cas d'erreur :

Error in invoking target 'agent nmo nmb' of makefile ......

Passer en cliquant sur « Continue ». A la fin de l'installation on peut re-linker les exécutables. Vérifier le fichier log indiqué dans le message d'erreur, régler le problème, et relancer le link  :

  • paramétrer ORACLE_BASE et ORACLE_HOME dans l'environnement d'oracle (.bash_profile)
  • aller dans $ORACLE_HOME/bin
  • lancer « ./relink all > relink.log 2>&1 »
  • Vérifier dans relink.log si les erreurs subsistent. On peut éventuellement linker individuellement chaque partie :
% relink oracle
% relink network
% relink client
% relink client_sharedlib
% relink interMedia
% relink ctx
% relink precomp
% relink utilities
% relink ldap

A la fin de l'installation, lancer les scripts "root" dans un terminal comme indiqué.

Après avoir exécuté les scripts en « root », cliquer OK.

Installation du patch 10.2.0.4

  • Si ça n'a pas été fait, paramétrer ORACLE_BASE et ORACLE_HOME dans l'environnement d'oracle (.bash_profile) et se reconnecter.
  • Dézipper le patch, aller dans Disk1 et lancer runInstaller.
  • S'assurer que le Oracle_Home indiqué pointe bien vers le bon répertoire.
  • Laisser tous les autres écrans par défaut.

Si erreur sur ins_rdbms.mk, vérifier le log indiqué. Ici gcc cherchait une librairie en version « .so.5 » alors que le système avait une « .so.6 ». Un lien symbolique créé dans un autre terminal suffit :

# ln -s /usr/lib64/libstdc++.so.6 /usr/lib64/libstdc++.so.5

Finir en lançant le script "root" indiqué.