![]() |
Oracle sous Debian |
Installation d'Oracle sous Debian :
Bien que Oracle indique clairement que leurs produits ne sont pas maintenu sous un autre système que RedHat, voici une documentation d'installation d'Oracle10g sous Linux Debian Etch 64bits
Téléchargement du produit : http://download.oracle.com/otn/linux/oracle10g/10201/10201_database_linux_x86_64.cpio.gz
Enregistrer le fichier sur le serveur Linux.
Linux doit être installé de façon minimal avec un serveur X (GnomE, KDE, XFCE ou autres) - Note que dans le cadre d'un serveur de production l'environnement graphique pourra être désactiver après l'installation d'Oracle.
Il faut paramètrer les variables d'environnement du Charset : dpkg-reconfigure locales ( en_US.UTF-8)
Modifier ensuite le fichier /etc/apt/sources.list :
deb http://ftp.fr.debian.org/debian/ etch non-free
deb-src http://ftp.fr.debian.org/debian/ etch non-freeMettre à la jour les sources de apt :
apt-get update Installation des paquets necessaires à l'installation de Oracle 10g :
apt-get install cpp-3.3 g++ g++-3.3 g++-4.1 gcc gcc-3.3 gcc-3.3-base gcc-4.1 lesstif2 libaio1 libbeecrypt6 libc6-dev libdb3 libneon25 librpm4 libssp0 libstdc++5 libstdc++5-3.3-dev libstdc++6-4.1-dev linux-kernel-headers rpm unzip sudo Installer les bibliothèque de compatibilité 32 bits :
apt-get install ia32-libs
apt-get install libc6-dev-i386Créez des liens symboliques pointant sur le véritable emplacement de ces outils. Voici tous les liens à ajouter pour rendre votre système opérationnel :
ln -s /usr/bin/awk /bin/awk
ln -s /usr/bin/rpm /bin/rpm
ln -s /usr/bin/basename /bin/basename
ln -s /etc /etc/rc.d
ln -s /lib/libgcc_s.so.1 /lib/libgcc_s.soCréez maintenant un fichier indiquant à Oracle que le système sur lequel il s'installe est un RedHat. Ce fichier servira à Oracle lors de la détection des pré-requis.
echo "Red Hat Linux release 3.0 (drupal)" > /etc/redhat-release Une des plus grosse différences entre RedHat et Debian est leur système de gestion des paquets : sous Debian, les paquets sont des .deb alors que sous redhat il s'agit de .rpm. Etch traite des rpm à certaines conditions, vous avez peut-être remarqué d'ailleurs qu'au début un paquet Debian en rpm a été installé avec apt. Néanmoins, la structure de gestion des rpm doit être initialisée :
mkdir /var/lib/rpm
rpm --initdb
rpm --rebuilddbModification de fichiers systèmes
Module d'authentification PAM : - vous devez retirer le commentaire de deux lignes (enlever le " # " en début de ligne) dans deux fichiers : /etc/pam.d/su et /etc/pam.d/login. - la ligne à activer est la suivante (il se peut qu'elle soit déjà active dans un des deux fichiers) : session required pam_limits.soParamétrez le kernel ainsi que les sémaphores
Éditez le fichier /etc/sysctl.conf et ajoutez à la fin ces lignes :
kernel.shmall = 2097152
kernel.shmmax = 2147483648
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
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 = 262144Exécutez la commande suivante :
sysctl -p /etc/sysctl.conf Modifiez le fichier /etc/security/limits.conf
* soft nproc 2047
* hard nproc 16384
* soft nofile 1024
* hard nofile 6553Redémarrez le serveur
Modifiez /etc/profile :
if [ $USER = "oracle" ]; then
ulimit -u 16384 -n 65536
fiLancer ensuite ces commandes :
groupadd nobody
usermod -g nobody nobody
groupadd dba
groupadd oinstall
groupadd oper
useradd -d /home/oracle -g oinstall -G dba,oper -s /bin/bash oraclemkdir -p /home/oracle
mkdir -p /u01/app/oracle/product
mkdir -p /u01/app/oracle/oraInventory
mkdir -p /u01/app/oracle/distribs
mkdir -p /u01/app/oracle/distribs/10201_linux64mkdir -p /u01/oradata
# mkdir -p /oracle/installchown -R oracle:oinstall /u01
touch /home/oracle/.bashrc
chown -R oracle:oinstall /home/oracle
chmod 644 /home/oracle/.bashrcContenu du fichier /home/oracle/.bashrc :
PS1='[ \u sur \h ] \w :'
umask 022
unset USERNAME
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=/u01/app/oracle/product/10.2/db_1
export ORACLE_SID=inapa
#export ORACLE_TERM=xterm
export PATH=$ORACLE_HOME/bin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib:/usr/lib32
export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib
export ORATAB=/etc/oratab
export ORACLE_HOME_LISTENER=$ORACLE_BASEPlacer le fichier 10201_database_linux_x86_64.cpio.gz dans le répertoire : /u01/app/oracle/distribs/10201_linux64
gunzip 10201_database_linux_x86_64.cpio.gz
cpio -idmv < 10201_database_linux_x86_64.cpioLancer l'installeur Oracle
/u01/app/oracle/distribs/10201_linux64/database :./runInstaller
Lancer les scripts :
MyDebianServer:/u01/app/oracle/oraInventory/logs# /u01/app/oracle/oraInventory/orainstRoot.sh
Changing permissions of /u01/app/oracle/oraInventory to 770.
Changing groupname of /u01/app/oracle/oraInventory to oinstall.
The execution of the script is complete
MyDebianServer:/u01/app/oracle/oraInventory/logs# /u01/app/oracle/product/10.2/db_1/root.sh
Running Oracle10 root.sh script...The following environment variables are set as:
ORACLE_OWNER= oracle
ORACLE_HOME= /u01/app/oracle/product/10.2/db_1Enter the full pathname of the local bin directory: [/usr/local/bin]:
Copying dbhome to /usr/local/bin ...
Copying oraenv to /usr/local/bin ...
Copying coraenv to /usr/local/bin ...
Creating /etc/oratab file...
Entries will be added to the /etc/oratab file as needed by
Database Configuration Assistant when a database is created
Finished running generic part of root.sh script.
Now product-specific root actions will be performed.
Paramétrez le démarrage automatique d'oracle
touch /etc/init.d/oracle
------
#!/bin/sh
# description: Script de demarrage d'oracleRETVAL=0
prog="oracle"export ORACLE_BASE=/oracle/u01/app/oracle
export ORACLE_HOME=/oracle/u01/app/oracle/product
export ORACLE_SID=bdtest #bdtest étant le nom de votre base de donnée
export ORACLE_TERM=xterm
export PATH=/oracle/u01/app/oracle/product/bin:/usr/sbin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib
export ORATAB=/etc/oratab
export ORACLE_HOME_LISTENER=$ORACLE_BASEcase "$1" in
start)
echo -n "Demarrage de ORACLE (assez long)"
sudo -u oracle /oracle/u01/app/oracle/product/bin/lsnrctl start >/dev/null 2>&1
sudo -u oracle /oracle/u01/app/oracle/product/bin/dbstart >/dev/null 2>&1
RETVAL=$?
echo
[ $RETVAL -ne 0 ] && echo "ERREUR - DEMARRAGE NON EFFECTUE"
[ $RETVAL -eq 0 ] && echo "SUCCES - DEMARRAGE SANS PROBLEME"
echo
;;stop)
echo -n "Arret de ORACLE (assez long): "
sudo -u oracle /oracle/u01/app/oracle/product/bin/lsnrctl stop >/dev/null 2>&1
sudo -u oracle /oracle/u01/app/oracle/product/bin/dbshut >/dev/null 2>&1
RETVAL=$?
echo
[ $RETVAL -ne 0 ] && echo "ERREUR - ARRET NON EFFECTUE"
[ $RETVAL -eq 0 ] && echo "SUCCES - ARRET SANS PROBLEME"
echo
;;restart)
$0 stop
sleep 5
$0 start
;;*)
echo "Utilisation: /etc/init.d/oracle {start|stop|restart}" >&2
exit 2
;;esac
-------
chown root:root /etc/init.d/ ?oracle
chmod 755 /etc/init.d/oracle
update-rc.d oracle start 90 2 3 45 . stop 10 0 1 6 .