vendredi 16 mai 2014

Installer ORACLE 11G sur un serveur Linux Noyau REDHAT (exemple un Linux Oracle)


1. Télécharger les fichiers d'installation de la version oracle et les dézipper avec unzip


2. Exécuter la commande :

yum install oracle-rdbms-server-11gR2-preinstall

et suivre les instructions pour installer les packages nécessaires

3. editer le fichier /etc/selinux/config

Modifier la ligne comme suit :
SELINUX=disabled

4. Exécuter les commandes :

mkdir -p /u01/app/oracle
chown -R oracle:oinstall /u01
chmod -R 775 /u01
passwd oracle
rentrer le mot de passe

5. Exécuter la commande :

xhost +<machine-name>



6. Toujours sur le user oracle lancer l'installation :
En étant loggé sur le user oracle via l'interface graphique

Se rendre dans le répertoire ou les fichiers d'installs sont décompressés et taper:
./runInstaller (en cas de problème de permissions, taper chmod -R 777 database)


7. ajouter au fichier /home/oracle/.bash_profile les lignes suivantes :
sans oublier de modifier ORACLE_HOSTNAME avec le nom du poste actuel en configuration (ex: nomdemonserveur.mondomaine.org)

# Oracle Settings
TMP=/tmp; export TMP
TMPDIR=$TMP; export TMPDIR

ORACLE_HOSTNAME=nomduposte.domaine; export ORACLE_HOSTNAME
ORACLE_UNQNAME=orcl; export ORACLE_UNQNAME
ORACLE_BASE=/u01/app/oracle; export ORACLE_BASE
ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1; export ORACLE_HOME
ORACLE_SID=orcl; export ORACLE_SID

PATH=/usr/sbin:$PATH; export PATH
PATH=$ORACLE_HOME/bin:$PATH; export PATH

LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib; export LD_LIBRARY_PATH
CLASSPATH=$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib; export CLASSPATH

8.Se logguer en tant que root et éxécuter :


/u01/app/oraInventory/orainstRoot.sh

/u01/app/oracle/product/11.2.0/dbhome_1/root.sh


9 Editer le fichier

/etc/oratab

Remplacer le N par Y sur l'instance créée

10. Editer dbstart and dbshut scripts based in  /u01/app/oracle/product/11.2.0/dbhome_1/bin/ and change first entry from

ORACLE_HOME_LISTNER=$1
  to
ORACLE_HOME_LISTNER=${1:-$ORACLE_HOME}
  to avoid error "ORACLE_HOME_LISTNER is not SET, unable to auto-stop Oracle Net Listener" on the init or start!



11. Dans le listener.oracd et le tnsnames.ora il faut enlever le suffixe du domaine (mondomaine.org)
Le listener.ora doit contenir :

SID_LIST_LISTENER =
(SID_LIST =
               (GLOBAL_DBNAME = [Nom du SID de la base par exemple :ORCL])
                (ORACLE_HOME = [Chemin en dur du $ORACLE_HOME par exemple /u01/app/oracle/product/11.2.0/dbhome_1])
                (SID_NAME = [Nom du SID de la base par exemple : ORCL])

Exemple de listener fonctionnel:


# listener.ora Network Configuration File: u01/app/oracle/product/11.2.0/dbhome_1/network/admin/listener.ora
# Generated by Oracle configuration tools.

SID_LIST_LISTENER =
 (SID_LIST =
   (SID_DESC =
(GLOBAL_DBNAME = ORCL)
(ORACLE_HOME = /u01/app/oracle/product/11.2.0/dbhome_1)
(SID_NAME = ORCL)
)
 )

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
    )
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = nomdemonserveur)(PORT = 1521))
    )
 )

ADR_BASE_LISTENER = /u01/app/oracle


12.Création d'un script de démarrage automatique de la base et de l'instance:

loggé en tant que root:
#cd /etc/init.d
#touch dbora
#vim dbora

Coller ce texte dedans:

#!/bin/sh
# chkconfig: 345 99 10
# description: Oracle auto start-stop script.
# Set ORA_HOME to be equivalent to the $ORACLE_HOME
# from which you wish to execute dbstart and dbshut;
#
# Set ORA_OWNER to the user id of the owner of the
# Oracle database in ORA_HOME.


ORA_HOME=/u01/app/oracle/product/11.2.0/dbhome_1
ORA_OWNER=oracle
ORACLE_UNQNAME=orcl



if [ ! -f $ORA_HOME/bin/dbstart ]
then
    echo "Oracle startup: cannot start"
    exit
fi
case "$1" in

    'start')
        # Start the Oracle databases:
        # The following command assumes that the oracle login
        # will not prompt the user for any values
        su - $ORA_OWNER -c $ORA_HOME/bin/dbstart
        su - $ORA_OWNER -c "$ORA_HOME/bin/emctl start dbconsole"
        su - $ORA_OWNER -c "$ORA_HOME/bin/sqlplus /nolog"<<!
connect SYS/motdepasse AS SYSDBA
startup
exit
!



       ;;

    'stop')
        # Stop the Oracle databases:
        # The following command assumes that the oracle login
        # will not prompt the user for any values
        su - $ORA_OWNER -c $ORA_HOME/bin/dbshut
        su - $ORA_OWNER -c "$ORA_HOME/bin/emctl stop dbconsole"

       ;;

esac

quitter par :wq!
rendre le sript exécutable et en auto démarrage:
#chmod u+x /etc/init.d/dbora
#chmod 750 /etc/init.d/dbora
#chgrp dba /etc/init.d/dbora
#chkconfig --add dbora
#chkconfig –-level 2345 dbora on

Vérifier si le script est bon :

./dbora start




emca -config dbcontrol db

Quelques aides:

Pour démarrer le moteur de la base :

$ORACLE_HOME/bin/dbstart

Démarrer la console web

$ORACLE_HOME/bin/emctl start dbconsole

Vérifier que le listener fonctionne

$ORACLE_HOME/bin/lsnrctl

LSNRCTL>  stop
LSNRCTL> start (On doit voir affiché l’instance)
LSNRCTL> exit

Montage de la base

$ORACLE_HOME/bin/sqlplus /nolog

SQL>  connect SYS/[Mot de passe] AS SYSDBA
SQL> startup open
SQL> connect SYS/[Mot de passe]@[SID de la base] AS SYSDBA

si le prompt répond ‘Connected’ c’est que tout est OK !

SQL> exit



Différentes commandes utiles

1. Arrêter une instance :

$ORACLE_HOME/bin/sqlplus /nolog

connect SYS/Mot_De_Passe@SID_de_la_base as SYSDBA

shutdown IMMEDIATE;

2. Vérifier une variable d'environnement

echo NOM_DE_LA_VARIABLE

3. modifier une variable d'environnement temporairement

NOM_DE_LA_VARIABLE=valeur

4. Voir l'ensemble des variables d'environnement :

env

5. Se connecter avec un client ORACLE distant (windows ou linux)

Editer le fichier tnsnames.ora et rajouter les lignes

nom_du_SID=
  (DESCRIPTION=
    (ADDRESS=
      (PROTOCOL=TCP)
      (HOST=nom_de_la_machine_sans_extention_du_domaine)
      (PORT=port_ecoute_instance)
    )
    (CONNECT_DATA=
      (SERVICE_NAME=SID_sur_le_serveur)
    )
  )



Aucun commentaire: