Installazione di ORACLE 8.1.7 su Linux
Alessandro Martellotta
alessandro.martellotta@mmsoftware.net
v1.0, 26 Giugno 2001
Il presente documento si basa essenzialmente sulla traduzione dell'help
semi-ufficiale che potete trovare all'indirizzo http://jordan.fortwayne.com/oracle/817.html. Il tutto abbondantemente
infarcito di nozioni date da un mese di tentativi di installazione falliti.
Perché Linux su ORACLE?
Perché è veloce, gratuito ed affidabile. Quale sviluppatore di
applicazioni Oracle mi trovo spesso nell'esigenza di dover fornire al cliente
il server applicativo con il motore database. Fino ad oggi sono stato costretto
ad utilizzare NT, e questo porta diversi svantaggi:
Tanto per cominciare NT non è affidabile quanto Linux (che gode di
tempi di uptime tipicamente di diversi mesi).
NT incide pesantemente sul costo complessivo della macchina server. Risparmiare
due milioni di licenza per il sistema operativo consente di spendere un po' di
più in consulenza per l'installazione del sistema operativo gratuito, con
ovvia contentezza sia del fornitore che del cliente.
È più veloce. A parità di macchina NT spreca diverse risorse
sia nella inutile console a finestre sia in vari servizi misteriosi rispetto ad un
sistema essenziale e dalle ottime prestazioni come Linux.
A mio parere NT mette a disposizione meno strumenti a basso livello. Tanto per
fare un esempio, creando un programma di caricamento batch in Perl si può
raggiungere una velocità di diverse centinaia di record al secondo.
Ma non è tutto oro ciò che luccica. L'installazione di Oracle su
Linux è assai più complessa che su NT, ma assolutamente non
impossibile. Consiglio vivamente di leggere la documentazione presente sul cd o
sull'immagine scaricata, senza tuttavia prenderla come oro colato. Diverse cose
che vengono descritte come assolutamente indispensabili sono in realtà
superflue e fuorvianti. Vedremo in seguito quali sono i passi veramente
determinanti.
Requisiti Hardware
Oracle non è tanto tollerante quanto Linux. Mentre quest'ultimo si
accontenta in alcuni casi di veri e propri ruderi, Oracle è invece molto
esigente, specialmente in termini di RAM. Se non avete almeno 128MB dimenticatevi
che tutto funzioni al meglio. Questo valore è infatti lo stretto
indispensabile. 256 o 512MB sono vivamente consigliati.
Le prove che ho effettuato personalmente sono state eseguite su un portatile
PIII 450 con 128MB e tutto sommato andava in modo soddisfacente. Personalmente
suggerirei di rimanere entro questi parametri e di affidarsi per il resto (scheda
video, scheda madre, ecc.) a componentistica standard. Se Linux funziona
correttamente sia in modalità testo che, soprattutto, in X siamo a buon
punto.
Requisiti software
Scelta della distribuzione
Per i neofiti: le installazioni di Linux NON SONO TUTTE UGUALI! Ciascuna di esse
ha pro e contro.
Chi ha lavorato un po' in Linux ha sicuramente effettuato una caterva di
installazioni dai cd in omaggio nelle riviste e avrà quindi una
distribuzione preferita. Salvo divieti assoluti che citerò tra poco
può tranquillamente usare quella che conosce meglio. Per chi non avesse
esperienze di utilizzo, la mia preferita è Mandrake 7.1, anche se ho
installato Oracle senza problemi anche su Suse 6.4 e RedHat 6.2.
Il requisito fondamentale sono le glibc 2.1.3 (o per lo meno la famiglia 2.1),
quindi scartiamo RedHat 7 che esce con le 2.2. Anche se esiste una patch su
ftp://ftp.kernel.org/, probabilmente questa procedura non è
approvata e testata da Oracle, che consiglia ufficialmente di utilizzare RedHat
6.2 con le dovute patch di sicurezza.
Software necessario
X Window tanto per cominciare, non importa se con Gnome o KDE (meglio lasciar
perdere gli altri), ma ci dev'essere e deve funzionare correttamente.
Qualche compilatore (c, gcc, ecc.). A esempio se in fase di installazione di
RedHat avete selezionato "Developement" o "Sviluppo" dovreste essere a posto.
Java SDK (vedi più avanti).
Riconfigurazione del kernel
Oracle dice all'inizio del manuale di installazione che è necessario
cambiare alcuni parametri di configurazione della memoria per poter procedere
con l'installazione. Questo non è del tutto esatto. Oracle può
tranquillamente essere installato senza dover procedere alla riconfigurazione
del kernel, dato che praticamente tutti i parametri già si trovano di
default all'interno dei requisiti.
Nota Bene: se state impostando un database
personale per poter sviluppare non vi preoccupate della riconfigurazione. Tutto
funzionerà correttamente. Se invece state installando il DB su una macchina
di produzione e il carico di lavoro previsto è elevato, allora vale la pena
di ritoccare qualcosa. L'unico parametro che vale la pena di considerare è
l'impostazione SHMMAX, e solo nel caso di un database molto pesante su una macchina
con più di 64MB di RAM. Se ve la sentite ecco come si cambia:
ATTENZIONE: per cambiare un parametro del kernel
è necessario ricompilarlo. Se non lo avete mai fatto è assolutamente
indispensabile dare un'occhiata ad un buon libro che spieghi passo per passo questa
difficile operazione e le oltre 100 opzioni dello script di configurazione. Se non
siete sicuri di qualcosa e scegliete una strada sbagliata potreste impedire al
sistema di ripartire!
Modifiche ai parametri di memoria
Aprite con un editor (nell'esempio vi) il file shmparam.h
# cd /usr/src/linux/include/asm
# vi shmparam.h
Poco al di sotto dell'inizio c'è una linea che dice "#define SHMMAX
0x2000000". Il valore 0x2000000 è la notazione esadecimale per 32MB.
Oracle dice che questo valore dovrebbe essere metà della memoria fisica
della macchina. Su una macchina di 128MB può essere cambiato a 0x4000000
(poco più di 64M).
Altri valori possibili sono:
0x4000000 = 67108854
0x6000000 = 100663296
0x8000000 = 134217728
0x10000000 = 268435456
0x20000000 = 536870912
Salvate il file (in vi con :wq).
Ricompilate il kernel.
Cosa scaricare prima dell'installazione
Il file di Oracle
Lo potete trovare su technet.oracle.com. Il file che vi serve è linux817ee.tar per
l'inglese, oppure linux817it.tar per l'italiano (sono equivalenti). Il file
è grossino, circa 500MB. Potete anche ordinare un CD gratuito sul sito.
Dopo averlo ottenuto, procedete come segue :
Mettete il file in /usr/src
Scompattatelo:
# cd /usr/src
# tar xvf linux817it.tar
Java SDK
Oracle release 3 ha bisogno del JDK 1.1.8. Non la versione succesiva o precedente,
ma esattamente quella! E la vuole in /usr/local/java . Metteremo quindi il JDK in
/usr/local e creeremo un link.
Scaricate il file jdk118_v3-glibc-2.1.3.tar.bz2 (consiglio di andare su ftpsearch.lycos.com e cercare un server
ftp con dominio .it che lo contenga), sono circa 13MB. Mettetelo in /usr/local .
Da una finestra di terminale in qualità di root, scompattatelo, installatelo
e create il link:
# cd /usr/local
# bzip2 -d jdk118_v3-glibc-2.1.3.tar.bz2
# tar xfv jdk118_v3-glibc-2.1.3.tar
# ln -s /usr/local/jdk118_v3 /usr/local/java
L'installazione
Preinstallazione
Prima di procedere all'installazione vera e propria è necessario creare
alcuni utenti e gruppi e impostare i diritti.
Aprite una finestra terminale e date su root.
Create i gruppi oinstall (installazione), dba (amministrazione) e oper
(manutenzione):
# groupadd oinstall
# groupadd dba
# groupadd oper
Create la directory home per l'utente oracle
# mkdir /home/oracle
Create l'utente oracle con oinstall come gruppo primario e dba come secondario
e impostategli la password:
# useradd oracle -g oinstall -G dba,oper
# passwd oracle
Create la directory di installazione (per semplificare installiamo software e
database nella stessa directory) e impostate proprietario e diritti:
# mkdir /u01
# chown oracle.dba /u01
# chmod 775 /u01
Disconnettetevi da root.
Fate il login come oracle.
Verificate che la umask sia 022:
oracle$ umask
Se il risultato non dovesse essere 022, dovrete impostare l'umask a mano in
.bash_profile (vedi qui sotto).
Aprite il file .bash_profile (o createlo se occorre) con il vostro editor
preferito:
oracle$ cd ~
oracle$ vi .bash_profile
Aggiungete le seguenti righe:
ORACLE_BASE=/u01/app/oracle; export ORACLE_BASE
ORACLE_HOME=/u01/app/oracle/product/8.1.7; export ORACLE_HOME
ORACLE_SID=ora1; export ORACLE_SID
# Se volete chiamare l'istanza in modo differente potete farlo, max 8
# caratteri
PATH=$PATH:/u01/app/oracle/product/8.1.7/bin; export PATH
CLASSPATH=.:/u01/app/oracle/product/8.1.7/jdbc/lib/classes111.zip; export CLASSPATH
LD_LIBRARY_PATH=/u01/app/oracle/product/8.1.7/lib; export LD_LIBRARY_PATH
umask 022
# se il test precedente non restituiva il valore corretto!
ORA_NLS33=/u01/app/oracle/product/8.1.7/ocommon/nls/admin/data; export ORA_NLS33
NLS_LANG=italian; export NLS_LANG
# se avete un' impostazione inglese:
# NLS_LANG=american
Disconnettetevi e rifate il login (sempre come oracle).
Aprite una finestra e verificate che le variabili d'ambiente siano correttamente
impostate:
oracle$ env
L'installazione vera e propria
Qualcuno di voi starà pensando: "Se questa è la fase preliminare,
figuriamoci l'installazione vera e propria!!!". Non vi preoccupate, il peggio
è passato. Il resto sono solo conferme da dare ad un programma di
installazione grafico.
Fate il login come utente oracle (assolutamente!)
In una finestra di terminale posizionatevi nella directory contenente i file
d'installazione e lanciate l'installer:
oracle$ cd /usr/src/Disk1
oracle$ ./runInstaller
Compare una schermata grafica: "Welcome to the Java-based Oracle installer".
Cliccate su NEXT.
Verificate che la directory d'origine contenga /usr/src/Disk1/stage/products.jar
La directory di destinazione dovrebbe essere la stessa della variabile d'ambiente
$ORACLE_HOME .
Cliccate su NEXT.
Come gruppo UNIX impostate oinstall. Cliccate su
NEXT.
Una finestrella vi chiederà di eseguire lo script orainstRoot.sh. Ecco come fare:
Aprite una nuova finestra di terminale e dateci su root (digitando ovviamente la password corrispondente).
Posizionatevi nella directory destinazione di Oracle
# cd $ORACLE_HOME
Eseguite lo script
# ./orainstRoot.sh
Lascia aperto il terminale root, servirà più tardi.
Tornate sulla finestrella e cliccate RIPROVA.
Ora vi trovate davanti la scelta dei prodotti. Selezionate Oracle 8i
Enterprise Edition 8.1.7.0.0 e cliccate NEXT.
Nello schermo seguente selezionate TIPICA e cliccate su NEXT.
Vi viene chiesto il nome del database globale, digitate ciò che avete
impostato nel .bash_profile come ORACLE_SID.
La richiesta successiva riguarda la posizione dei file del database. Se avete
creato solo /u01 dovreste già trovare l'impostazione corretta per default.
Vi viene chiesta la directory home del JDK. Assicuratevi che sia /usr/local/java .
Cliccate il bottone INSTALLA. Il software si sta installando! Mitico!
Dopo che tutti i file sono stati copiati e lincati, un'altra finestrella vi
chiederà di eseguire uno script da root.
Tornate nel terminale root che avevate usato in precedenza e date:
# cd $ORACLE_HOME
# ./root.sh
Quando vi viene chiesto il percorso local bin cliccate ENTER.
Date due volte exit per abbandonare i privilegi di
root e chiudere la finestra.
Ritornate alla finestrella e cliccate OK.
Ora parte la configurazione Net8. Tutto ciò che dovete fare è
selezionare la casella "Eseguire una configurazione tipica" e cliccare su
NEXT.
Di seguito parte il Database Configuration Assistant. Nulla da fare, tranne
cliccare su OK quando la configurazione è terminata.
Quando il DCA ha finito, Oracle installa il WebServer sulla porta 7777. Anche
qui nulla da toccare.
Siete ora alla schermata di fine installazione. Cliccate ESCI e confermate.
Tutto il software è installato. Ce l'avete fatta!!!
ATTENZIONE! Gli account Oracle di amministrazione
sono:
sys (pwd: change_on_install)
system (pwd: manager)
Avvio del database
Anche se ora tutti i servizi oracle sono attivi, dopo un riavvio della
macchina sarà necessario avviarli manualmente. Ecco come:
Fate il login come oracle.
Lanciate il listener:
oracle$ lsnrctl start
Avviate il Database:
oracle$ svrmgrl
oracle$ connect internal
oracle$ startup
oracle$ quit
Utilizzo di Oracle
Da questo momento Oracle è utilizzabile tranquillamente da qualsiasi client
in rete con la stessa configurazione di NT o quant'altro. Per accedervi da console
è sufficente digitare:
$ sqlplus
Se volete un ottimo esempio di come accedervi via Perl, suggerisco di visitare il
sito http://dbi.perl.org/.