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:
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:
Ora passiamo alle directory, io ho preferito il percorso standard, utilizzato da esempi, tips etc. Quindi, per la directory di base di oracle:
mentre per la directory dei database:
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:
Potete creare le directory con:
root$ mkdir -p /u01/app/oracle
e
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
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:
Ora se usate bash:
oracle$ gedit .bash_profile
se usate sh:
se usate csh o tcsh:
Dove andrete a modificare o ad aggiungere la riga:
dopo di che lanciamo lo script con (se usate bash):
oracle$ . ./.bash_profile
se usate Bourne o Korn:
se usate C:
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:
creiamo una directory per la copia del file:
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:
qualora non esista createlo fancedo una copia di quello esistente in
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