![]() |
|||||||||||||||||||||||||||||||||||||||||||||||
|
Install Oracle 9i2 sous Linux RedHat 8.0 Vous avez besoin des
Trouvés chez www.redhat.com en format ISO ou achetéz, ou . . .
Trouvé chez http://java.sun.com (JRESE 1.3.1_06)
Trouvés chez http://technet.oracle.com
RedHatFaire attention de prendre lors de l’installation les packages situés plus bas.
Pour une première installation (je suis assez vierge coté Linux), j’ai tout installé sur un HD de 120 GigaOctets.
Boot Les 100 Megas proposés sont suffisants.
Root Il occupe 21 Gigas (mais utilise 2G).
Swap Oracle à besoin d'un grand swap : 1,5 Go (Oracle utilise 750 Mo de swap de base).
Là, une SGA bien choisie peut employer . . . quelques megas uniquement de swap (voir mon document Oracle Linux sanity check. [root@zebra root]# df -h Filesystem Size Used Avail Use% Mounted on /dev/hda2 21G 2.3G 17G 12% / /dev/hda1 99M 14M 79M 15% /boot none 756M 0 755M 0% /dev/shm //fatboy/linux 114G 90G 25G 78% /admin [root@zebra root]# Memoire et swap
[root@zebra root]# free
total used free shared buffers cached
Mem: 1548116 407004 1141112 0 51616 241988
-/+ buffers/cache: 113400 1434716
Swap: 1566328 0 1566328
[root@zebra root]#
La partition d'installation oracle. Oracle seul occupe ~ 2.5 Go, et ~ 3.5 Go avec une base, c’est pourquoi je vous conseille d'installer une partition de minimum 7 Go. Moi j’en ai une de 30 gigas (/dev/hda5) que je monte dans /taf/oracle Automatisation J’ai tout automatisé, en partant d’une distrib Linux fraîchement installée.
#!/bin/sh -f # script: oracledistrib.sh # # Copyright 2002 TAFORA # # ---------------------- Historique --------------- clear echo "++++++++++++++++++++++++++++++++++++++++++++++++++++++" echo "++++++++++++++++++++++++++++++++++++++++++++++++++++++" echo " Installation de Oracle9i (9.2.0)" echo "++++++++++++++++++++++++++++++++++++++++++++++++++++++" export ORACLE_INSTQG=/admin/oracle/install echo "ORACLE_INSTQG est $ORACLE_INSTQG" cd $ORACLE_INSTQG . $ORACLE_INSTQG/00_rh8_920_set_varenv.sh . $ORACLE_INSTQG/04_rh8_920_check_env_os.sh . $ORACLE_INSTQG/05_rh8_920_verif_env.sh . $ORACLE_INSTQG/07_rh8_920_cre_users.sh . $ORACLE_INSTQG/15_rh8_920_decompressjava.sh . $ORACLE_INSTQG/20_rh8_920_envoracle.sh su - oracle -c "$ORACLE_INSTQG/10_rh8_920_decompressoracle.sh" su - oracle -c "$ORACLE_INSTQG/25_rh8_920_install.sh" su - oracle -c "$ORACLE_INSTQG/30_rh8_920_applyoraclepatch.sh" Variables d’environnement - préparer l’environnement Oracle - oracle Elles sont utiles lors de l’install et seront mises dans /home/oracle/.bash_profile.
# source: setenvoracle.sh # but: Environnement Oracle # Ce script est execute dans d'autres scripts administratifs # et ajoute au .bash_profile de oracle # # Copyright 2002 by TAFORA # # ---------------------- Historique --------------- # export NLS_LANG=french_france.WE8ISO8859P15 # export ORACLE_BASE=/taf/oracle # export ORACLE_GROUP=dba # export ORACLE_HOME=/taf/oracle/920 # export ORACLE_OWNER=oracle export ORACLE_OWNER_PATH=/home/$ORACLE_OWNER export ORACLE_SID=syrius export ORACLE_INSTQG=/admin/oracle/install # QG install export ORACLE_DISTRIB=$ORACLE_BASE/install/920 # Decompression export ORACLE_SOURCE=/admin/distrib/oracle # install export ORACLE_BASE_MOUNT=/dev/hda5 # si rien, pas de mount point export ORACLE_TERM=xterm export ORACLE_TEMP=/tmp export ORACLE_USERID=owa/owa@aleph # DBD::Oracle export ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data export PATH=$PATH:$ORACLE_HOME/bin export TNS_ADMIN=$ORACLE_HOME/network/admin export VAROPT=/var/opt/$ORACLE_OWNER CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib CLASSPATH=$CLASSPATH:$ORACLE_HOME/network/jlib LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib export LD_LIBRARY_PATH echo "**************************" echo "Oracle home = $ORACLE HOME" echo "Oracle SID = $ORACLE SID" echo "**************************" Vérifier l’environnement OS (root) #!/bin/sh # Sonde systeme pur Linux. User oracle peut regarder, mais c'est tout # ------------------------------------------------------------------ # Copyright 2002 TAFORA echo "+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++" echo " Verifications de l'environnement OS" echo "+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++" echo "Utiliser ipcs (Linux) pour obtenir une liste de segments partages," echo " semaphores, ainsi que leur identification et appartenance. " echo "ipcs" ipcs echo "1. Log root." echo "2. cd /proc/sys/kernel" cd /proc/sys/kernel echo "3. Parametres des semaphores" echo "# cat sem" echo "SEMMSL, SEMMNS, SEMOPM, SEMMNI" cat sem echo "4. Modifier leurs valeurs :" echo "# echo SEMMSL_value SEMMNS_value SEMOPM_value SEMMNI_value > sem" echo "# echo 100 32000 100 100 > sem" echo "5. Analyser les params mem partagee: " echo " # cat shmmax" cat shmmax echo " # cat shmmni" cat shmmni echo "------------------------------------------------------" echo "Verifiez la taille de la memoire disponible" echo "grep MemTotal /proc/meminfo" grep MemTotal /proc/meminfo echo "------------------------------------------------------" echo "Verifiez la taille du swap" echo "cat /proc/swaps" cat /proc/swaps echo "------------------------------------------------------" echo "Verifiez shmmax :" echo " cat /proc/sys/kernel/shmmax" cat /proc/sys/kernel/shmmax echo " et modifiez-le (temporairement) si besoin est:" echo " echo `expr 1024 \* 1024 \* 1024` > /proc/sys/kernel/shmmax" echo " ou modifiez-le (d'une maniere permanente) :" echo " (ajouter dans /etc/sysctl.conf) kernel.shmmax = `expr 1024 \* 1024 \* 1024`" En linux, la taille maximum de mémoire partagée est révélée par max seg size (k) issue de la commande :
ipcs –ml Pour modifier cette mémoire,
echo 1073741824 > /proc/sys/kernel/shmmax
kernel.shmmax = 1073741824 Créer les groupes et utilisateurs #!/bin/sh # script: 01_linux_920_cre_users.sh # but: Creation de l'utilisateur oracle dans le group dba # # Copyright 2002 by TAFORA # # ---------------------- Historique --------------- userdel $ORACLE_OWNER groupdel $ORACLE_GROUP groupdel oinstall groupadd $ORACLE_GROUP groupadd oinstall useradd -g oinstall -G "$ORACLE_GROUP" -m "$ORACLE_OWNER" -d "$ORACLE_OWNER_PATH" -m -k /etc/skel /usr/bin/rm $ORACLE_OWNER_PATH/local.cshrc /usr/bin/rm $ORACLE_OWNER_PATH/local.login /usr/bin/rm $ORACLE_OWNER_PATH/local.profile /usr/bin/rm $ORACLE_OWNER_PATH/.profile echo "Password du compte UNIX $ORACLE_OWNER ?" passwd $ORACLE_OWNER mkdir $ORACLE_HOME mkdir $VAROPT echo "Modification des droits des repertoires crees - root" chown -R $ORACLE_OWNER:oinstall $ORACLE_HOME chown $ORACLE_OWNER:$ORACLE_GROUP $VAROPT chown $ORACLE_OWNER:oinstall $VAROPT chown $ORACLE_OWNER:$ORACLE_GROUP $ORACLE_DISTRIB chown -R $ORACLE_OWNER:oinstall $ORACLE_DISTRIB chown $ORACLE_OWNER:oinstall $ORACLE_OWNER_PATH chown $ORACLE_OWNER:oinstall $ORACLE_BASE echo "Modification des propriétés des répertoires crées - root" chmod 755 $VAROPT echo "Permettre à Oracle de se connecter au serveur X." xhost +localhost echo "Quelques packages sont nécessaires. Tester leur présence avec" echo " rpm -q gcc cpp glibc-devel kernel-headers binutils" rpm -q gcc cpp glibc-devel kernel-headers binutils Télécharger et décompresser les trois CD Oracle (http://technet/oracle.com) # script: 10_rh8_920_decompressoracle.sh # but: # # Copyright 2002 by TAFORA # # ---------------------- Revision History --------------- COMEBACK=$pwd echo "$0" echo "Suppression des anciens repertoires d'install" rm -rf $ORACLE_DISTRIB/Disk1/ rm -rf $ORACLE_DISTRIB/Disk2/ rm -rf $ORACLE_DISTRIB/Disk3/ cd $ORACLE_DISTRIB echo "Creation repertoire 1 Oracle en $ORACLE_DISTRIB" echo " 3 mins en reseau" zcat $ORACLE_SOURCE/lnx_920_disk1.cpio.gz | cpio -idm echo "Creation repertoire 2 Oracle en $ORACLE_DISTRIB" echo " 3 mins en reseau" zcat $ORACLE_SOURCE/lnx_920_disk2.cpio.gz | cpio -idm echo "Creation repertoire 3 Oracle en $ORACLE_DISTRIB" echo " 3 mins en reseau" zcat $ORACLE_SOURCE/lnx_920_disk3.cpio.gz | cpio -idm cd $COMEBACK ls $ORACLE_DISTRIB Si vous décidez de décompresser la distrib sur le HD, garder les noms Disk1, Disk2, Disk3. La taille des trois disques décompressés est d'environ 1214 Mo.
Création des réceptacles Oracle – root Nous avons choisi d’installer Oracle en /taf sur un autre disque et les futurs points de montage des bases en /u01, /u02
mkdir /taf/oracle mkdir /taf/oracle/product mkdir /taf/oracle/product/9.2.0 mkdir /var/opt/oracle mkdir /u01 mkdir /u02 mkdir /u03 mkdir /u04 Modification des droits des répertoires crées - root #!/bin/sh # script: # but: # # Copyright 2002 by TAFORA # # ---------------------- Historique --------------- chown -R $ORACLE_OWNER:$ORACLE_GROUP /u01 chown -R $ORACLE_OWNER:$ORACLE_GROUP /u02 chown -R $ORACLE_OWNER:$ORACLE_GROUP /u03 chown -R $ORACLE_OWNER:$ORACLE_GROUP /u04 mkdir -p /u01/db/920/hades Installation du JDK (root) Vous avez le choix: JDK 1.3.1 ou Blackdown 1.1.8_v3: http://www.blackdown.org http://java.sun.com #! /bin/sh -f # script: # but: # # Copyright 2002 by TAFORA # # ---------------------- Historique --------------- # ftp://sunsite.dk/mirrors/java-linux/JDK-1.1.8/i386/v3/ # echo "$0" echo "Installation Java (JDK)" mkdir /usr/local mkdir /usr/local/java bzip2 -dc $ORACLE_SOURCE/jdk118_v3-glibc-2.1.3.tar.bz2 | tar xf - -C /usr/local ln -s /usr/local/jdk118_v3 /usr/local/java Se connecter oracle : su - oracle startx cd $ORACLE_HOME/disk1 ./runInstallerNom de groupe unix : dba Lancer une Xterm su -root ./tmp/orainstRoot.sh exit Quelques liens http://www.greenspun.com/com/kurup/acs/openacs4/oracle.html http://www.puschitz.com/OracleOnLinux.shtml Erreurs En cas d’erreur lors du link ($ORACLE_HOME/ctx/lib/env_ctx.mk), ajouter $(LDLIBFLAG)dl sur la ligne de "INSO_LINK =", sauvegarder et continuer dans le menu d’installation. [root@zebra root]# tail -27 /taf/oracle/920/ctx/lib/env_ctx.mk | head -4
INSO_LINK = -L$(CTXLIB) $(LDLIBFLAG)m $(LDLIBFLAG)sc_ca $(LDLIBFLAG)sc_fa $(LDLIBFLAG)sc_ex $(LDLIBFLAG)sc_da $(LDLIBFLAG)sc_ut $(LDLIBFLAG)sc_ch $(LDLIBFLAG)sc_fi $(LLIBCTXHX) $(LDLIBFLAG)c -Wl,-rpath,$(CTXHOME)lib $(CORELIBS) $(COMPEOBJS) $(LDLIBFLAG)dlAutomatiser le démarrage/arrêt de la base au boot Dbora, lsnrora et agntora doivent résider dans /etc/rc.d/init.d. Des liens ulterieurs dans les divers niveaux d’exécution pointeront dessus.
dbora
#!/bin/sh
# Startup automatique des instances
# -------------------------------------------------
# Copyright 2002 TAFORA
# dbora
# -------------------------------------------------
if [ -f /etc/init.d/functions ] ; then
. /etc/init.d/functions
elif [ -f /etc/rc.d/init.d/functions ] ; then
. /etc/rc.d/init.d/functions
else
echo "Oracle exit"
exit 0
fi
# Source networking configuration.
. /etc/sysconfig/network
export NLS_LANG=french_france.WE8ISO8859P15
ORACLE_OWNER=oracle; export ORACLE_OWNER
ORACLE_SCRIPTS_DIR=/sysop/oracle/admin; export ORACLE_SCRIPTS_DIR
if [ ! -f $ORACLE_SCRIPTS_DIR/dbstart.sh ]
then
echo "Instance non demarrees (pas de script dbstart)"
exit
fi
if [ ! -f $ORACLE_SCRIPTS_DIR/dbshut.sh ]
then
echo "Instance non arretee (pas de script dbshut)"
exit
fi
case "$1" in
'start') # Start Oracle Database
echo "Starting Oracle: "
su oracle -c "/sysop/oracle/admin/dbstart.sh"
touch /var/lock/subsys/dbora
echo
;;
'stop') # Stop Oracle Database
echo "Stopping Oracle: "
su oracle -c "/sysop/oracle/admin/dbshut.sh"
rm /var/lock/subsys/dbora
echo
;;
'restart') # Stop Oracle Database
echo "Restarting Oracle: "
$0 stop
$0 start
echo
;;
esac
dbstart.sh Verifier les connect sys/xxx as sysdba !!!
#!/bin/sh
# ----------------------------------------------------------------------
ORATAB=/etc/oratab
trap 'exit' 1 2 3
# Set path if path not set (if called from /etc/rc)
case $PATH in
"") PATH=/bin:/usr/bin:/etc
export PATH ;;
esac
# Loop for every entry in oratab file and and try to start
# that ORACLE
cat $ORATAB | while read LINE
do
case $LINE in
\#*) # Comment in ORATAB
;;
*) # Proceed only if third field is 'Y'
if [ "`echo $LINE | awk -F: '{print $3}' -`" = "Y" ] ; then
# Called programs use same database ID
ORACLE_SID=`echo $LINE | awk -F: '{print $1}' -`
if [ "$ORACLE_SID" = '*' ] ; then
ORACLE_SID=""
fi
export ORACLE_SID
# Called scripts use same home directory
ORACLE_HOME=`echo $LINE | awk -F: '{print $2}' -`
export ORACLE_HOME
export ORACLE_OWNER=oracle
export ORACLE_TERM=xterm
export TNS_ADMIN=$ORACLE_HOME/network/admin
export NLS_LANG=french_france.WE8ISO8859P15
export ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data
LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib export LD_LIBRARY_PATH
CLASSPATH=$ORACLE_HOME/jdbc/lib/classes111.zip; export CLASSPATH
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:$ORACLE_HOME/bin
PATH=$PATH:/usr/local/sbin:/usr/bin/X11:/usr/X11R6/bin:/root/bin
PATH=$PATH:/home/local/bin
export PATH
PFILE=${ORACLE_HOME}/dbs/init${ORACLE_SID}.ora
PFILE=${ORACLE_HOME}/dbs/spfile${ORACLE_SID}.ora
if test -f $ORACLE_HOME/dbs/sgadef${ORACLE_SID}.dbf -o \
-f $ORACLE_HOME/dbs/sgadef${ORACLE_SID}.ora
then
STATUS="-1"
else
STATUS=1
fi
case $STATUS in
1) if [ -f $PFILE ] ; then
sqlplus /nolog < |
||||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||||||