Installer Oracle sur Slackware

Un article de Mwyann.info.

Guide d'installation de Oracle sous Linux Slackware.

Sommaire

Installation

Exécuter en root :

echo "Red Hat Linux release 3.0 (drupal)" > /etc/redhat-release
ln -s /usr/bin/basename /bin/basename
/usr/sbin/groupadd oinstall
/usr/sbin/groupadd dba
/usr/sbin/useradd -g oinstall -G dba -p passwd -d /home/oracle oracle
passwd oracle
mkdir /home/oracle
mkdir -p /u01/app/oracle
mkdir -p /u02/oradata
chown -R oracle:oinstall /u01 /u02 /home/oracle
chmod -R 775 /u01 /u02

Ajouter ceci à /etc/profile ainsi qu'à /home/oracle/.oracle_profile :

# Oracle configuration
PATH=${PATH}:/u01/app/oracle/bin/
ORACLE_HOME=/u01/app/oracle/
ORACLE_SID=orcl
ORATAB=/etc/oratab
ORACLE_HOME_LISTNER=$ORACLE_BASE
ORACLE_BASE=$ORACLE_HOME
NLS_LANG=FRENCH_FRANCE.WE8ISO8859P1
NLS_DATE_FORMAT=dd/mm/yyyy_hh24:mi:ss
NLS_SORT=BINARY
NLS_NUMERIC_CHARACTERS=".,"
export ORACLE_BASE ORACLE_SID ORATAB ORACLE_HOME ORACLE_HOME_LISTNER NLS_LANG NLS_DATE NLS_SORT NLS_NUMERIC_CHARACTERS

Créer le fichier /etc/sysctl.conf et mettre ceci :

kernel.sem = 250 32000 100 128
kernel.shmall = 2097152
kernel.shmmax = 2147483648
kernel.shmmni = 4096
fs.file-max = 65536
net.ipv4.ip_local_port_range = 1024 65000

Exécuter :

sysctl -p

Passer en utilisateur Oracle et effectuer les opérations suivantes : Commande pour décompresser l'archive si ce n'est déjà fait :

cpio --extract -F ship.db.lnx32.cpio --make-directories

Lancer le runInstaller d'Oracle :

  • Mode Expert
  • Créer une base de données
  • Ne pas oublier au choix "Enterprise/Standard/Custom" d'ajouter la langue French
  • Paramètres des noms de répertoire :
  • Installation du soft : /u01/app/oracle
  • Installation de la database : /u02/oradata

Créer un fichier /etc/rc.d/rc.oracle (exécutable au moins par l'utilisateur oracle) :

#!/bin/sh
echo "Running Oracle..."
source /home/oracle/.oracle_profile
lsnrctl start
sqlplus <<EOF
connect as SYSDBA
startup
EOF

Ajouter dans rc.M, juste avant Apache :

# Start Oracle:
if [ -x /etc/rc.d/rc.oracle ]; then
 source /home/oracle/.oracle_profile
 su - oracle -c /etc/rc.d/rc.oracle
fi

Installation terminée, vous pouvez rebooter.

Post-installation

Dernière manipulation, pour autoriser les procédures et fonctions :

Logguez-vous en tant que Oracle et faites :

sqlplus connect as SYSDBA

Pas besoin de mettre de pass, puis mettez cette commande :

@/u01/app/oracle/rdbms/admin/dbmsstdx.sql;

Terminé pour de bon.

Configuration

Console Oracle

Pour configurer Oracle (utilisateurs etc...), lancer :

/u01/app/oracle/bin/emctl start dbconsole

Ensuite aller sur http://localhost:5500/em

(Attention, cette console prend énormément de mémoire vive, et est assez lente ! Préférez utiliser des bouts de scripts, comme ceux plus bas).

Configurer SQLPlus avec Emacs

Dans chaque dossier ~ de chaque utilisateur, mettre un fichier .emacs comme suit, en adaptant bien sur le chemin de la première ligne :

(setq load-path (cons "/home/oracle/" load-path))

(autoload 'sqlplus "sqlplus-mode"
    "Start the interactive SQL*Plus interpreter in a new buffer." t)

(autoload 'sqlplus-mode "sqlplus-mode"
      "Mode for editing SQL files and running a SQL*Plus interpretor." t)

(add-to-list 'auto-mode-alist '("\\.sql\\'" . sqlplus-mode))

Créer également un ~/sqlplus-mode.el comme celui fourni ici : [1], en changeant au début du fichier le nom et le mot de passe de l'utilisateur.

Activer Oracle dans PHP

Compilez les sources avec l'option --with-oci8 dans le ./configure ; Exemple :

./configure --with-mysql --with-oci8 --with-crypt --with-apxs=/usr/sbin/apxs

Ne pas oublier de configurer apache comme suit, si vous le recompilez :

./configure --enable-module=so

Commandes utiles

Créer/supprimer un utilisateur

Tout d'abord, logguez-vous sous linux en tant que oracle, et exécutez :

sqlplus connect as SYSDBA

Pas besoin de mettre de pass, puis mettez ces commandes, en ajustant le NOM_USER, motdepasse et les quotas. Attention ! le nom d'utilisateur doit être en majuscules à la création !

CREATE USER NOM_USER PROFILE "DEFAULT" IDENTIFIED BY "motdepasse" ACCOUNT UNLOCK;
GRANT "CONNECT" TO NOM_USER;
GRANT CREATE PROCEDURE TO NOM_USER;         -- Pour les procédures/fonctions
GRANT CREATE TRIGGER TO NOM_USER;           -- Pour les triggers
ALTER USER NOM_USER QUOTA 10 M ON "USERS";  -- Nécessaire
ALTER USER NOM_USER QUOTA 10 M ON "TEMP";   -- Pareil

Pour supprimer cet utilisateur :

DROP USER NOM_USER;

Dernières infos

Ces informations sont affichées à la fin de l'installation. Elles peuvent être utiles, alors les voici :

The following J2EE Applications have been deployed and are accessible at the URLs listed below.

Ultra Search URL:
http://localhost:5620/ultrasearch

Ultra Search Administration Tool URL:
http://localhost:5620/ultrasearch/admin

iSQL*Plus URL:
http://localhost:5560/isqlplus

iSQL*Plus DBA URL:
http://localhost:5560/isqlplus/dba

Enteprise Manager 10g Database Control URL:
http://localhost:5500/em