Installare Oracle 10g su Redhat Enterprise Linux AS 3 Update 4 su x86 (Step-to-Step)

Premetto che ho iniziato l'installazione su un pc dove avevo precedentemente installato la Redhat con una installazione di base che comprendeva anche un windows manager (nel mio caso gnome). I puristi troveranno da obbiettare: tutto a riga di comando! ... ma io non sono un purista ;)

Vi consiglio di utilizzare una installazione di base predefinita e di modificare l'elenco dei package in un secondo momento (aggiungendo o rimuovendo i package desiderati, dopo la fine dell'installazione). Per quando riguarda le mie esperienze con le installazione redhat (cioè dalla Redhat 3.0 - non la enterprise :p - in poi), ho avuto modo di vivere sulle mie pelle l'amara conferma che l'installazione personalizzata (in cui si va a scegliere package per package) non sempre funziona correttamente, pena: reinstallare tutto da capo. Non so se per la Enterprise le cose siano migliorate ma ho deciso di non rischiare.

Prima di iniziare controllate le seguenti richieste hardware:

   
RAM 512 MB
Partizione Swap 1 GB (o il doppio della ram installata)
Spazio Libero ( /tmp ) 400 MB
Spazio Libero ( per il software ) 2.5 GB [Nota: questo spazio include anche l'installazione di Companion CD]
Spazio Libero ( database ) 1.2 GB

E le seguenti software:

Kernel

2.4.21-15 o superiore

Packages

gcc-3.2.3-34
gcc-c++-3.2.3-34
glibc-2.3.2-95.20
make-3.79.1
openmotif21-2.1.30-8
setarch-1.3-1
compat-db-4.0.14-5
compat-gcc-7.3-2.96.128
compat-gcc-c++-7.3-2.96.128
compat-libstdc++-7.3-2.96.128
compat-libstdc++-devel-7.3-2.96.128

Potete controllare l'esistenza del package con:

root$ rpm -q package_name

Iniziamo effettuiamo il login come root.

Avviando l'interfaccia grafica con startx, non amo il login in modalità grafica - per spiacevoli esperienze -.

E iniziamo la nostra "pre-installazione" aprendo una "prima" finestra di terminale come root.

E' richiesta l'esistenza dei seguenti gruppi: oinstall, dba

Potete verificare l'esistenza dei gruppi con:

root$ grep oinstall /etc/group
root$ grep dba /etc/group

Nel caso non esistessero potete aggiugerli con:

root$ /usr/sbin/groupadd oinstall
root$ /usr/sbin/groupadd dba

E' richiesta l'esistenza dei seguenti utenti: oracle

Potete controllare se esiste con:

root$ id oracle

Se l'utente esiste associatelo ai gruppi creati con:

root$ /usr/sbin/usermod -g oinstall -G dba oracle

Se non esiste allora:

root$ /usr/sbin/useradd -g oinstall -G dba oracle

Quindi assegnate una pasword all'utente oracle:

root$ passwd oracle

Ora passiamo alle directory, io ho preferito il percorso standard, utilizzato da esempi, tips etc. Quindi, per la directory di base di oracle:

/u01/app/oracle

mentre per la directory dei database:

/u02/oradata

Controllate che ci sia almeno 2.5 GB liberi per il primo percorso e 1.2 GB liberi per il secondo. Se installate tutto sullo stesso disco controllate che ci siano almeno 3.7 GB liberi (è la somma che fa il totale diceva Totò).

Potete controllare lo spazio libero con:

root$ df -h

Potete creare le directory con:

root$ mkdir -p /u01/app/oracle

e

root$ mkdir /u02/oradata

Una volta create le directory applicate i seguenti proprietari:

root$ chown -R oracle:oinstall /u01/app/oracle
root$ chown -R oracle:oinstall /u02/oradata

e permessi:

root$ chmod -R 775 /u01/app/oracle
root$ chmod -R 775 /u02/oradata

Ora dobbiamo configurare alcuni parametri del kernel, ed abbiamo bisogno di un text editor, io ho usato gedit. Ovviamente i puristi avranno da ridire: only vi. Ma io non sono un purista :p e soprattuto odio vi! Immaginate un ragazzo alla sua prima esperienza con linux: una versione di 3 dischetti uscita in un lontato computer programming installabile sotto dos. Secondo voi quali traumi potra subire dopo aver "incautamente" avviato vi? Cosa pensate che provi davanti ad uno schermo nero, dove qualsiasi combinazione di tasti fin'allora conoscita (ESC, F10, etc.) non da alcun esito e ci si vede costretti a premere il reset del pc (quello sotto al pulsante "turbo", che permetteva di passare da 25 a 50 Mhz e viceversa)?

Ok dopo la pausa modifichiamo il primo file:

root$ gedit /etc/sysctl.conf &

Dove bisogna controllare che vi siano i seguenti parametri:

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

Dopo le varie modifiche, salviamo i cambiamenti e utiliziamo

root$ /sbin/sysctl -p

per aggiornare il sistema.

Ora passiamo a:

root$ gedit /etc/security/limits.conf &

Dove bisogna controllare che esistano i seguenti parametri:

oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536

salviamo e passiamo al prossimo:

root$ gedit /etc/pam.d/login &

dove controlliamo se esiste:

session required /lib/security/pam_limits.so

Se usiamo le shell Bourne, Bash, orKorn. inseriamo in

root$ gedit /etc/profile &

Le seguenti righe:

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

ORACLE_BASE=/u01/app/oracle
ORACLE_SID=sales
export ORACLE_BASE ORACLE_SID

Ovviamente per queste ultime tre righe userete i valori opportuni per la vostra installazione.

Mentre se usiamo le shell C o tcsh, modifichiamo il file:

/etc/csh.login

if ( $USER == "oracle" ) then
  limit maxproc 16384
  limit descriptors 65536
endif

setenv ORACLE_BASE /u01/app/oracle
setenv ORACLE_SID sales

Ovviamente per queste ultime due righe userete i valori opportuni per la vostra installazione.

Ora apriamo un altra finestra di terminal (non chiudete quella corrente vi servirà ancora), dove passeremo all'account oracle con:

root$ su - oracle

Ora se usate bash:

oracle$ gedit .bash_profile

se usate sh:

oracle$ gedit .profile

se usate csh o tcsh:

oracle$ gedit .login

Dove andrete a modificare o ad aggiungere la riga:

umask 022

dopo di che lanciamo lo script con (se usate bash):

oracle$ . ./.bash_profile

se usate Bourne o Korn:

oracle$ . ./.profile

se usate C:

oracle$ source ./.login

Dopo di che passiamo alle variabili di ambiente:

Se usate Bourne, Bash, o Korn:

oracle$ TEMP=/directory
oracle$ TMPDIR=/directory
oracle$ export TEMP TMPDIR

se usate C:

oracle$ setenv TEMP /directory
oracle$ setenv TMPDIR /directory

ovviamente modificate le seguenti righe secondo il vostro caso, ricordandovi di creare le tali directory ed assicurarvi che vi sia spazio a sufficienza secondo le richieste.

Ok siamo quasi giunti all'installazione. Montiamo il cd dove avremo precedentemente masterizzato il file "ship.db.lnx32.cpio.gz" di oracle 10g con:

mount /mnt/cdrom

creiamo una directory per la copia del file:

oracle$ mkdir inst

e vi copiamo il file:

oracle$ cp /mnt/cdrom/ship.db.lnx32.cpio.gz ./inst

dopo di che lo "gunzippiamo":

oracle$ cd inst
oracle$ gunzip ./ship.db.lnx32.cpio.gz

quindi scompattiamo il file con:

oracle$ cpio -idmv < ./ship.db.lnx32.cpio.gz

E quindi lanciamo "finalmente l'installazione grafica":

oracle$ ./???/runInstaller

(??? non ricordo se cpio crea una directory o meno)

A questo punto seguite i vari step dell'installazione secondo le vostre esigenze. Durante l'installazione vi verrà chiesto diverse volte di lanciare alcuni script come root (per questo potete usare l'altra finestra di terminal che abbiamo lasciata aperta). Fate una copia di backup degli script lanciati (almeno così consiglia oracle).

Giunti alla fine dell'installazione possiamo passare alla post-installazione. Infatti, non appena riavvieremo il pc, oracle non verrà automaticamente caricato.

Per prima cosa controlliamo che esista il file:

/var/opt/oracle/oratab

qualora non esista createlo fancedo una copia di quello esistente in

/etc/oratab

quindi editiamo il file:

root$ gedit /var/opt/oracle/oratab

quindi ci saranno informazioni del tipo:

test1:/u01/app/oracle/product/10.1.0/db_1:?

dove la ? può assumere i seguenti valori: Y/N

a seconda se vogliamo o meno che venga avviato in automatico.

Una volta apportate le opportune modifiche, dobbiamo creare uno script (che ricordo mi è stato passato da Andrea):

root$ gedit /etc/init.d/dbora

il cui contenuto sarà:

#!/bin/bash
# chkconfig: - 20 80
# 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_OWNER=oracle
LOG=$ORA_HOME/dbora.log
touch $LOG
chmod a+r $LOG
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
       echo "$0: starting up" >> $LOG
       date >> $LOG(br>        su - $ORA_OWNER -c "$ORA_HOME/bin/lsnrctl start" >> $LOG 2>&1
       su - $ORA_OWNER -c "$ORA_HOME/bin/dbstart &" >> $LOG
       su - $ORA_OWNER -c "$ORA_HOME/bin/emctl start dbconsole &" >> $LOG
       ;;
      'stop')
       # Stop the Oracle databases:
       # The following command assumes that the oracle login
       # will not prompt the user for any values
       echo "$0: stopping down" >> $LOG
       date >> $LOG
       su - $ORA_OWNER -c "$ORA_HOME/bin/emctl stop dbconsole &" >> $LOG
       su - $ORA_OWNER -c "$ORA_HOME/bin/lsnrctl stop" >> $LOG 2>&1
       su - $ORA_OWNER -c "$ORA_HOME/bin/dbshut &" >> $LOG
       ;;
     'status')
       echo "$0: status"
       date

       su - $ORA_OWNER -c "$ORA_HOME/bin/lsnrctl status"
       ;;
esac

salvato lo script lo rendiamo eseguibile.

Dopo di che creiamo i seguenti collegamenti:

ln -s /etc/init.d/dbora /etc/rc.d/rc2.d/S99dbora
ln -s /etc/init.d/dbora /etc/rc.d/rc3.d/S99dbora
ln -s /etc/init.d/dbora /etc/rc.d/rc4.d/S99dbora
ln -s /etc/init.d/dbora /etc/rc.d/rc0.d/K01dbora
ln -s /etc/init.d/dbora /etc/rc.d/rc6.d/K01dbora

Ora riavviate il pc e... Finito! Facile no? :p

Per ulteriori informazioni vi prego di consultare:

B10811-05 Oracle Database Installation Guide for UNIX Systems
B15521-01 Oracle Database Quick Installation Guide 10g Release 1 (10.1.0.3) for Linux x86

Starting and Stopping Oracle 10g

Print | posted on sabato 19 febbraio 2005 00:16

Comments have been closed on this topic.