Oracle


Installer Oracle 10g sur une Debian Sarge

Oracle 10g n'est officiellement pas supporté sur Debian, cependant il est tout à fait possible via quelques superfuges de faire à Oracle que vous installez sur un système de type Redhat.

Je vous conseil de bien suivre les étapes et surtout ne pas sauter d'étape en particulier dans la partie préparatif, sinon vous avez de très grandes chances de ne pas réussir à installer Oracle.

Les images sont disponibles gratuitement à l'adresse suivante : Télécharger Oracle 10g

Préparatif

Voici les packages necessaires :apt-get install libdb2 libdb3 libdb4.1 libdb1-compat cpp-3.3 gcc-3.3 libstdc++5-3.3-dev libstdc++2.10-glibc2.2 base-files netbase libc6 libc6-dev make rpm
Vous avez aussi besoin du package libaio, ce dernier n'est pas disponible pour Debian.

Vous pouvez télécharger le package à partir ce lien : libaio_0.3.103-4_i386.deb
dpkg -i libaio_0.3.103-4_i386.deb pour installer le package

Ensuite Oracle va chercher les commandes dans les répertoires spécifiques Redhat/Suse qui ne sont pas les memes que sur Debian, nous devons donc créer des liens symboliques :
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


Faire croire que notre système est une Redhat :
echo "Red Hat Linux release 3.0 (drupal)" > /etc/redhat-release

Créer les utilisateurs et groupes :
/usr/sbin/groupadd oinstall
/usr/sbin/groupadd dba
/usr/sbin/groupadd nobody
/usr/sbin/useradd -g oinstall -G dba -p passwd -d /home/oracle oracle
/usr/sbin/useradd -g nobody nobody

Créer les groupes avec les bon droits :
mkdir -p /u01/app/oracle
mkdir -p /u02/oradata
chown -R oracle:oinstall /u01 /u02
chmod -R 775 /u01 /u02

Paraméter le noyau :
kernel.shmmax = 2147483648
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
fs.file-max = 65536
net.ipv4.ip_local_port_range = 1024 65000

Appliquer les modifications : /sbin/sysctl -p

Modifier les limites du systèmes sur le fichier /etc/security/limits.conf :
     *     soft      nproc      2047
    *     hard     nproc     16384
    *     soft     nofile     1024
    *     hard     nofile     65536

Modifier le fichier /etc/profile :

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

fi

Enfin modifier le fichier .bash_profile de l'utilisateur oracle
su - oracle
vim .bash_profile


Copier/coller :
umask 022

# On ajoute un path à l'actuel (à adapter pour votre cas)
PATH=${PATH}:/u01/app/oracle/oracle/product/10.2.0/db_1/bin/

# Les vars par défaut
ORACLE_HOME=/u01/app/oracle/oracle/product/10.2.0/db_1/
ORACLE_SID=test
ORATAB=/etc/oratab
ORACLE_HOME_LISTNER=$ORACLE_BASE
ORACLE_BASE=$ORACLE_HOME

export ORACLE_BASE ORACLE_SID ORATAB ORACLE_HOME ORACLE_HOME_LISTNER

L'installation

xhost +
su - oracle
export DISPLAY=":0.0"

cd <répertoire_de_l'installateur>
 ./runInstaller

(ne tenez pas compte des erreurs RPM dans la console)

Installation Oracle 10g sur Debian

Installation Oracle 10g sur Debian

Installation Oracle 10g sur Debian

Installation Oracle 10g sur Debian

Installation Oracle 10g sur Debian

Installation Oracle 10g sur Debian

Il vous est ensuite demander d'executer avec l'utilisateur root, le script suivant :

/u01/app/oracle/oracle/product/10.2.0/db_1/root.sh

Oracle est maintenant installé !

Post-installation

Démarrer la base de données lorsqu'oracle démarre, pour cela éditer le fichier /etc/oratab
Vous obtenez alors quelque chose ressemblant à ceci :
data:/u01/app/oracle/product/10.1.0/db_1:N
Data étant le nom de l'instance
et le N à la fin indique de ne pas démarrer la base de données.
Supprimer le N et mettez un Y

Créer ensuite le fichier /etc/init.d/oracle afin de configurer oracle en daemon et copier-y ce script :
#!/bin/bash
#
# Run-level Startup script for the Oracle Instance and Listener
#
# description: Startup/Shutdown Oracle listener and instance


ORA_HOME="/u01/app/oracle/oracle/product/10.2.0/db_1/"
ORA_OWNR="oracle"
ORACLE_HOME_LISTNER=$ORA_HOME

# if the executables do not exist -- display error

if [ ! -f $ORA_HOME/bin/dbstart -o ! -d $ORA_HOME ]
then
echo "Oracle startup: cannot start !! Cannot find install or startup files !!"
exit 1
fi

# depending on parameter -- startup, shutdown, restart
# of the instance and listener or usage display

case "$1" in
start)
# Oracle listener and instance startup
echo -n "Starting Oracle: "
su - $ORA_OWNR -c "$ORA_HOME/bin/lsnrctl start"
su - $ORA_OWNR -c $ORA_HOME/bin/dbstart
touch /var/lock/subsys/oracle
echo "OK"
# iSQLplus
echo "Starting iSQLplus..."
su - $ORA_OWNR -c "$ORA_HOME/bin/isqlplusctl start"
echo "Starting Oracle Entreprise Manager..."
su - $ORA_OWNR -c "$ORA_HOME/bin/emctl start dbconsole"
;;
stop)
# Oracle listener and instance shutdown
echo -n "Shutdown Oracle: "
su - $ORA_OWNR -c "$ORA_HOME/bin/lsnrctl stop"
su - $ORA_OWNR -c $ORA_HOME/bin/dbshut
rm -f /var/lock/subsys/oracle
echo "OK"
# iSQLplus
echo "Stopping iSQLplus..."
su - $ORA_OWNR -c "$ORA_HOME/bin/isqlplusctl stop"
echo "Stopping Oracle Entreprise Manager..."
su - $ORA_OWNR -c "$ORA_HOME/bin/emctl stop dbconsole"
;;
reload|restart)
$0 stop
$0 start
;;
*)
echo "Usage: $0 start|stop|restart|reload"
exit 1
esac
exit 0



Il faut rendre ensuite le script executable
chmod u+x /etc/init.d/oracleEnsuite tapez update-rc.d oracle defaults afin que le script oracle se lance au démarrage de la machine.

Enfin, vous devez corriger le script /u01/app/oracle/oracle/product/10.2.0/db_1/bin/dbstart
Corrigez le chemin dans ligne :
# Set this to bring up Oracle Net Listener
ORACLE_HOME_LISTNER=/u01/app/oracle/oracle/product/10.2.0/db_1

Vous pouvez maintenant arrêter ou démarrer oracle avec les commandes :
/etc/init.d/oracle stop
/etc/init.d/oracle start

Vous pouvez ensuite vous connecter à l'enterprise manager via l'url http://localhost:5500/em

Utilisation oracle (< 10g)

Lancer sqlplus user/password
Pour faire de l'administrateur il faut se connecter avec un utilisateur system
Par défaut le user est system mot de passe manager

Paramètre en prendre en compte pour la création d'une nouvelle instance

Démarrage de oracle

login user/password
svrmgrl ---> Lancement du serveur manager de oracle
connect internal
startup ---> lancement des instances oracle
shutdown immediate --->arrête l'instance oracle

Gestion du listeneur d'oracle, Pour se connecter à une base oracle de l'exterieur il faut que le listener soit lancé.

login user/password
lsnrctl status --> donne l'état du listener
lsnrctl start --> demarrage
lsnrctl stop --> arrrêt

Lancement de SQLPLUS

login user/password

sqlplus system/manager ( par défaut )

Creation d'un tablespace

CREATE TABLESPACE "NOM_TABLESPACE"
LOGGING
DATAFILE '/home/oracle8/oradata/db1/testlogi.ora' SIZE 5M;

Modification d'un tablespace

ALTER TABLESPACE "NOM_TABLESPACE"
ADD DATAFILE ‘/home/oracle8/oradata/db1/testlogi.ora' SIZE 1000M;

Creation d'un utilisateur

CREATE USER "NOM_USER" PROFILE "DEFAULT" IDENTIFIED BY "PASSWORD"
DEFAULT
TABLESPACE "NOM_TABLESPACE" TEMPORARY
TABLESPACE "TEMP" QUOTA UNLIMITED
ON TEMP QUOTA UNLIMITED
ON TESTLOGI ACCOUNT UNLOCK;
GRANT "CONNECT" TO "NOM_USER";

Effacement d'utilisateur

drop user NOM_USER cascade;

Taille restant dans un tablespace

select sum(bytes) from dba_data_files where tablespace_name='GIS';
select sum(bytes) from user_free_space where tablespace_name='GIS';

Chaine de connexion par un DSN

ConnectionString=Server=10.0.10.1;DSN=logipolplus;Password=test;

Export d'une base de données

Exp user/password@INSTANCE file=fichier.dmp compress=no owner=USERsource

Import d'une base de données

Imp user/password@INSTANCE file=fichier.dmp buffer=150000 commit=y fromuser=Usersource touser=userdestination


Script de sauvegarde pour Windows

Ce script permet de sauvegarder une base oracle sur 5 jours.
@Echo off 
setlocal

rem Ce cmd a pour but de sauvegarder des bases Oracle en effectuant un dump du user.
rem --------------------------------------------------------------------------------
rem Partie configuration, à adapter selon votre configuration

rem Nom de l'instance
set instance=Nom_De_L'instance

rem nom du user
set user=Nom_du_user

rem mot de passe de l'utilisateur
set password=Password_de_l'utilisateur

rem chemin de destination de la sauvegarde
set destination=E:\saveOracle
set NLS_LANG=FRENCH_FRANCE.WE8ISO8859P15

rem ----------------------------------------------------
rem ** NE PAS TOUCHER A PARTIR d'ICI **
rem ----------------------------------------------------
echo demarrage de la sauvegarde pour la base %instance% sur %instance%

rem On décalle toutes les sauvegardes pour creer %instance%.dmp
del /F /Q %destination%\%instance%_05.dmp
move %destination%\%instance%_04.dmp %destination%\%instance%_05.dmp
move %destination%\%instance%_03.dmp %destination%\%instance%_04.dmp
move %destination%\%instance%_02.dmp %destination%\%instance%_03.dmp
move %destination%\%instance%.dmp %destination%\%instance%_02.dmp

rem On lance la sauvegarde avec les paramètres
exp system/%password%@%instance% file=%destination%/%instance%.dmp compress=no owner=%user%
rem ----------------------------------------------------

Liens


Quelques commandes - cliquez-ici

Retour à la page d'accueil