Serveur oracle

De wiki.nexiat.fr
Aller à la navigation Aller à la recherche
Fiche express
Type Checklist de préparation système (Linux) pour un serveur Oracle
Voir aussi Semaphores.sh · Tuning Oracle 10g

Checklist des prérequis système Linux (famille RHEL/OEL/CentOS) avant l'installation d'une base Oracle : paquets, réseau, comptes, limites système et paramètres noyau.

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

Sur système 32 bits / compatibilité i386 (installations historiques) :

yum install compat-libstdc++-33.i386 glibc.i686 glibc-devel.i386 libaio.i386 \
  libaio-devel.i386 libgcc.i386 libstdc++.i386 unixODBC.i686 unixODBC-devel.i686

Configuration réseau

net.ipv4.ip_local_port_range = 9000 65500

Compte et groupe

adduser oracle
groupadd oinstall
usermod -aG oinstall oracle

À noter : pour une installation standard, prévoir également le groupe dba (utilisé pour les connexions SYSDBA par authentification OS) — voir Tuning Oracle 10g pour l'exemple complet avec les deux groupes.

limits.conf

Valeurs indicatives (à adapter selon la charge réelle) :

oracle              soft    nproc   2047
oracle              hard    nproc   16384
oracle              soft    nofile  1024
oracle              hard    nofile  65536
# Oracle 11g
oracle              soft    stack   10240

sysctl.conf

# Tuning Memory
kernel.sem = 250 32000 100 128
# physical RAM size / pagesize (exemple pour 60 Go de RAM, pagesize 4096)
kernel.shmall = 15728640
# physical RAM size / 2 (exemple pour 60 Go de RAM)
kernel.shmmax = 32212254720
kernel.shmmni = 4096
# fs.file-max = 512 x nombre de processus (minimum recommandé 327679 pour un système actif)
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

Pour un calcul automatique de shmmax/shmall selon la RAM réellement installée, voir Semaphores.sh.

Service SSH

# /etc/ssh/sshd_config
UsePAM yes

Authentification / PAM

# /etc/pam.d/login
session    required     pam_limits.so
# /etc/profile — limites spécifiques au compte oracle
if [ $USER = "oracle" ]; then
  ulimit -u 16384
  ulimit -n 65536
fi

Bug corrigé : le bloc sysctl.conf de la page source ouvrait un tag <pre> sans jamais le refermer correctement (deuxième <pre> au lieu de </pre>), ce qui cassait le rendu de toute la fin de la page — corrigé dans cette version.

Voir aussi

  • Semaphores.sh — script de calcul automatique des paramètres mémoire/sémaphores
  • Tuning Oracle 10g — variante historique détaillée (RHEL 5, huge pages, grub)
  • SGA — dimensionnement mémoire côté instance