Tuning Oracle 10g
| Fiche express | |
|---|---|
| Type | Guide historique — préparation système RHEL 5 pour Oracle 10g R2 |
| Voir aussi | Serveur oracle · Semaphores.sh |
Contenu historique conservé à titre de référence : procédure complète de préparation d'un serveur RHEL 5 / OEL 5 pour l'installation d'Oracle Database 10g R2. Oracle 10g et RHEL 5 sont tous deux en fin de vie depuis longtemps (voir la matrice de fin de support constructeur) ; pour une préparation système actuelle, se reporter à Serveur oracle (checklist générique, versions récentes) et Semaphores.sh (calcul automatisé des paramètres mémoire). Cette page reste utile pour la maintenance d'un existant encore sous 10g/RHEL5 ou par souci de traçabilité historique.
Sources d'origine (à vérifier, liens potentiellement obsolètes côté support Oracle) :
- "Requirements For Installing Oracle10gR2 On RHEL 5/OEL 5 (x86_64)" — note MOS ID 421308.1
- "Oracle 10g Server on Red Hat Enterprise Linux 5" — livre blanc Red Hat/Oracle
Installation des paquets
yum install compat-libstdc++-33 elfutils-libelf elfutils-libelf-devel \ elfutils-libelf-devel-static gcc gcc-c++ glibc glibc-common glibc-devel glibc-headers \ kernel-headers ksh libaio libaio-devel libgcc libgomp libstdc++ libstdc++-devel make \ sysstat pam vim-enhanced unixODBC unixODBC-devel libXp libXt libXtst
Compatibilité 32 bits (systèmes x86_64 historiques) :
yum install -y compat-libstdc++-33.i386 glibc.i686 glibc-devel.i386 libaio.i386 \ libaio-devel.i386 libgcc.i386 libstdc++.i386 yum install -y unixODBC unixODBC.i686 unixODBC-devel unixODBC-devel.i686
Utilisateur et groupes
adduser oracle groupadd oinstall groupadd dba usermod -aG oinstall oracle usermod -aG dba oracle
Configuration du noyau
vi /etc/sysctl.conf
# Tuning Memory
kernel.sem = 250 32000 100 128
# physical RAM size / pagesize — exemples pour 16/32/60 Go de RAM (pagesize 4096)
# 16 Go -> 4194304 32 Go -> 8388608 60 Go -> 15728640
kernel.shmall = 15728640
# physical RAM size / 2 — mêmes exemples
# 16 Go -> 8589934592 32 Go -> 17179869184 60 Go -> 32212254720
kernel.shmmax = 32212254720
kernel.shmmni = 4096
fs.file-max = 327679
# Tuning Network
net.ipv4.ip_local_port_range = 9000 65500
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576
net.ipv4.tcp_rmem = 2097152
net.ipv4.tcp_wmem = 1048576
# HugePages (à configurer en fonction des besoins)
#vm.nr_hugepages =
fs.aio-max-nr = 1048576
# Tuning Page Cache (optionnel)
#vm.min_free_kbytes = 1024
#vm.swappiness = 10
#vm.dirty_background_ratio = 3
#vm.dirty_ratio = 15
#vm.dirty_expire_centisecs = 500
#vm.dirty_writeback_centisecs = 100
sysctl -p
Huge pages
Référence : documentation oracle-base.com sur la configuration des huge pages Linux (à vérifier, l'URL d'origine peut avoir changé de structure sur le site).
Récupérer la taille de page :
grep Huge /proc/meminfo # Hugepagesize: 2048 kB
Estimation du nombre de pages à réserver :
vm.nr_hugepages = (RAM_Mo * 0.65) / hugepagesize_Ko
Associer le groupe dba aux huge pages :
fgrep dba /etc/group # dba:x:54322:oracle vm.hugetlb_shm_group = 54322
vi /etc/security/limits.conf
* soft memlock 626688
* hard memlock 626688
Limites système (limits.conf)
vi /etc/security/limits.conf
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
# Pour les huge pages
oracle soft memlock 4194304
oracle hard memlock 4194304
Vérifier l'application :
ulimit -a
SSH / PAM
vi /etc/ssh/sshd_config UsePAM yes
vi /etc/pam.d/login session required pam_limits.so
Profile
vi /etc/profile
if [ $USER = "oracle" ]; then
ulimit -u 16384
ulimit -n 65536
fi
Grub (ordonnanceur disque)
vi /etc/grub/grub.conf
Ajouter l'option elevator=deadline à la ligne kernel — ordonnanceur I/O recommandé historiquement pour les charges de type base de données (moins pertinent sur les noyaux/ ordonnanceurs plus récents — à vérifier selon le noyau réellement utilisé) :
kernel /vmlinuz-2.6.18-348.el5 ro root=/dev/vg_root/lv_root elevator=deadline
Voir aussi
- Serveur oracle — checklist équivalente, générique et à jour
- Semaphores.sh — calcul automatisé de shmmax/shmall selon la RAM réelle
- Tuning database — tuning mémoire côté instance (indépendant de l'OS)
- Support Lifetime — dates de fin de support Oracle/RHEL