Oracle 9i su RedHat Linux 8.x e 9.x - Installazione Semplice HOWTO Evgueni Tzvetanov v1.1, 23 Giugno 2003 __________________________________________________________________ Questo documento descrive un esempio di un'installazione di un database Oracle 9i Standard Edition sotto RedHat Linux 8.x e 9.x.Traduzione a cura di Ivan Bazzi, revisione a cura di Rita Bandiera.Per versioni aggiornate di questo documento, e per trovare altra documentazionein italiano sul software libero, visitare il sito dell' [1]ILDP __________________________________________________________________ 1. Introduzione Si assume che il lettore abbia familiarità con i file system, i comandi, e gli strumenti, i programmi di utilità, le shell e gli script di shell di Linux. 1.1 Panoramica Questo documento intende mostrare una sequenza semplificata d'installazione per il database Oracle 9i su RedHat Linux 8.x e 9.x. È inteso solo come esempio e se si intende seguirlo si dovrebbe tenere in considerazione la propria versione di Linux, la distribuzione di Oracle e gli specifici parametri del proprio PC. Questo documento inoltre limita le informazioni al solo Linux, e non è inteso per l'uso con altre marche di UNIX. Per installare Oracle 9i su altri sistemi operativi vedere la Guida all'installazione di Oracle. Io non sono un DBA né intendo mostrare grandi abilità d'amministratore di Oracle, quindi non fatemi domande da DBA. Lascerò questo compito ai DBA con esperienza :) 1.2 Copyright Questo documento è sottoposto a Copyright 2003 da Evgueni Tzvetanov (Speedy). E' permesso copiare, distribuire e/o modificare questo documento secondo i termini della GNU Free Documentation License, versione 1.1, o di una qualsiasi versione pubblicata successivamente dalla Free Software Foundation senza alcuna sezione non modificabile, nessun testo di copertina e nessun testo di quarta di copertina. Per il testo completo della licenza visitare la [2]GNU Free Documentation License. 1.3 Liberatoria L'uso delle informazioni contenute in questo documento è a proprio rischio. Disconosco qualsiasi potenziale responsabilità per i contenuti di questo documento. L'uso dei concetti, degli esempi, e/o di altro contenuto di questo documento è interamente a proprio rischio. Tutti i copyright appartengono ai loro proprietari, se non specificatamente indicato diversamente. L'uso di un termine in questo documento non deve inficiare la validità di qualsiasi trademark o service mark. La citazione di particolari prodotti o marchi non deve essere considerata come approvazione. Si consiglia fortemente di fare un backup del sistema prima di importanti installazioni ed eseguire backup ad intervalli regolari. 1.4 Crediti Questo documento è stato creato usando conoscenze ottenute da varie fonti -- libri e siti web. * Oracle 9i Installation Guide * Oracle 9i Database Administrator's Guide * DBA's guide to databases on Linux * Oracle 8i: A beginner's guide * Sito web di Oracle (http://www.oracle.com) Voglio esprimere i miei sinceri ringraziamenti agli autori! Voglio anche ringraziare le persone che mi hanno dato suggerimenti e hanno portato questo aggiornamento ad una più ampia serie di soluzioni. * Steve Schladel, collega ed DBA alla UMDNJ, che mi ha dato un suggerimento riguardo ad una variabile che ha risolto il blocco del processo d'installazione sotto RedHat 9.x. * Rene Bauer, che mi ha spedito una dettagliata spiegazione sui problemi riscontrati con differenti versioni di JRE, relativa a distribuzioni di gcc 2.9.x vs. gcc 3.2, ed installazione di Legato Single Server Version. Alcune delle esperienze elencate negli esempi sono state ricavate da molti test ed esperimenti. Sentitevi liberi di sperimentare; questa è la chiave principale per trovare una soluzione desiderata. Anche se vengono distrutti uno o due sistemi, questo serve ad aumentare la creativitè e dai propri errori s'impara. Sentitevi liberi di spedirmi commenti e suggerimenti a [3]evgueni@email.com 2. Cominciare 2.1 Scaricare il database Oracle 9i Ottenere una copia del database Oracle 9i è semplice. Basta andare sul [4]sito Oracle, cliccare su Download e seguire il percorso basato sulla distribuzione. Ci sono poche pagine da leggere prima di arrivare ai collegamenti per lo scarico. Queste pagine contengono copyright e informazioni sull'accordo, che suggerisco di leggere con attenzione. Tutte le altre informazioni sono solo statistiche. Se non si è un membro ci si deve registrare sul sito web di Oracle per avere il permesso di accedere a qualsiasi distribuzione che può essere scaricata liberamente. Le distribuzioni del server sono in 3 file, chiamate qualcosa come: * lnx_920_disk1.cpio.gz * lnx_920_disk2.cpio.gz * lnx_920_disk3.cpio.gz Altre versioni potrebbero avere nomi differenti, ma l'installazione può considerarsi simile. In base alle istruzioni d'installazione di Oracle ci sono 2 fonti che possono essere usate - installazioni da CD e da Hard Disk. Io ho usato la prima. Lo scarico dei file di distribuzione e la creazione dei CD (si veda il prossimo punto) sono operazioni che portano via tempo, quindi bisogna portare pazienza. Sarà inoltre necessario parecchio spazio sul disco rigido. I 3 file di distribuzione sono circa 1.5 GB. Sarà necessario almeno 3 volte questo spazio se s'intendono mantenere gli archivi, le directory e le immagini dei CD sull'hard disk fino a quando non si ha la certezza che i CD siano stati creati correttamente. Assumendo di essere nella directory dove le distribuzioni sono state scaricate, eseguire quanto segue con tutti e 3 i file di distribuzione da una shell: gunzip lnx_920_disk1.cpio.gz cpio -idmv < lnx_920_disk1.cpio Questi comandi creeranno 3 directory chiamate Disk1, Disk2 e Disk3. 2.2 Creazione dei CD La scrittura di informazioni su CD in Linux è coperta completamente da CD-Writing-HOWTO, così quanto segue sono solo i passi specifici per le distribuzioni di Oracle. Creazione delle immagini dei CD Il primo passo è creare le immagini dei CD per i 3 CD della distribuzione ORACLE. Eseguire la sequenza che segue per le 3 directory, cambiare i nomi dei file ed i nomi delle directory per ciascun comando: mkisofs -r -o ora9id1.iso Disk1/ Questo creerà 3 immagini di CD ISO che verranno usati successivamente nel processo d'installazione. Il comando può generare molti avvertimenti per le sostituzioni di nomi. Non c'è da preoccuparsi. Le immagini conterranno le informazioni corrette sull'albero delle directory. Per controllare se sia vero, montare le immagini in una directory utlizzando il dispositivo di loopback (il kernel in uso dovrebbe supportare i dispositivi di loopback per eseguire il test) come descritto nel CD-Writing-HOWTO: mount -t iso9660 -o ro,loop=/dev/loop0 cd_image mount_dir Dove cd_image è l'immagine del CD risultante dal comando mkisofs. Dopo averlo montato, si può cambiare directory e controllare l'albero delle directory montato per assicurarsi che tutto sia OK. Se tutto è a posto, si può passare al passo successivo. Masterizzazione dei CD E' possibile masterizzare le immagini dei CD su CD con qualsiasi linea di comando o programma GUI che usi immagini CD ISO per creare CD. Vedere CD-Writing-HOWTO per dettagli. Assicurarsi comunque che dopo aver masterizzato i CD contengano esattamente gli stessi alberi di directory come le directory Disk1, Disk2 e Disk3. Questo è possibile montando i nuovi CD ed usando qualsiasi mezzo che si trovi conveniente per percorrere l'albero delle directory. Le immagini possono essere scritte su qualsiasi masterizzatore CD o computer, usando qualsiasi software che supporti la scrittura su CD da immagini ISO. Il comando mkisofs potrebbe generare directory vuote nella directory di radice dell'immagine stessa del CD. Queste non sono un problema per il contenuto dell'installazione. Basta ignorarle. 3. Pre-installazione Ci sono alcuni passi da fare prima del processo d'installazione. Vengono suddivisi nelle seguenti categorie: 3.1 Requisiti di sistema Requisiti Hardware Oracle 9i è un osso duro, e meglio avere una buona macchina. Questo è quello che dice la guida d'installazione (indice): Parametro Richiesta Sufficiente (provato) --------------------------------------------------- CPU PII o K6 K6/2 *(1) RAM 512 MB 256 MB spazio HDD 3.5 GB 2.5 GB *(2) spazio Swap 1GB o RAMx2 512 MB o più (1) Per grandi database si raccomdano doppie CPU. Di solito una coppia di CPU ad alta prestazione (Xeon o Athlon MP) o anche sistemi quadrupli sono considerate buone scelte. (2) Si raccomanda l'uso di HDD SCSI in RAID o di HDD separati per ogni database, se sono installate istanze di database multiple. Requisiti Software Oracle richiede una versione minima del kernel e del software JRE: Parametro Richiesta Sufficiente (provato) --------------------------------------------------- Kernel Version 2.4.7 più recente va bene JRE 1.1.8v3 1.1.8v3 Dalla versione 8i (inclusa) i processi d'installazione sono basati su GUI e sono eseguiti con Java, quindi un requisito principale è un server X ed un Window Manager. Dovrebbe essere installata almeno la versione 1.1.8v3 di JRE. Questa installazione è stata fatta con la versione 1.1.8v3 di JRE. Non posso garantire che altre versioni possano funzionare. E' da provare a proprio rischio. Queste richieste sono valide se si decide di installare l'Enterprise Server. Per la Standard Edition i dati sufficienti vanno bene. In alcuni casi i parametri possono essere anche inferiori. Ambiente di installazione de-facto Ecco l'ambiente di installazione che ho usato per questo esempio: CPU K6 III /400 RAM 512 MB HDD space 2.3 GB Swap space 512 MB CD ROM 24x Kernel version 2.4.18-24.8.0 JRE 1.1.8v3 Sembra che questo ambiente sia sufficiente per fare delle prove con database di piccole dimensioni, se si ha necessità di usare un database grande o molto grande scegliere un hardware migliore. 3.2 Variabili e profili d'ambiente L'installazione richiede l'impostazione di qualche variabile d'ambiente prima di iniziare. Queste variabili possono essere impostate nel proprio profilo direttamente inserendo le linee nel .bash_profile di tutti gli account che verranno usati per accedere al database, ovvero, con un approccio più generale -- nel file /etc/profile (come in questa installazione). Ecco una semplice lista e valori di esempio per le variabili (esempio corrente): __________________________________________________________________ ORACLE_BASE=/u01/app/oracle ORACLE_HOME=/u01/app/oracle/product/9.2.0.1.0 ORACLE_SID=ORTD PATH=$PATH:$ORACLE_HOME/bin LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/lib:$ORACLE_HOME/network/lib export PATH ORACLE_BASE ORACLE_HOME ORACLE_SID LD_LIBRARY_PATH __________________________________________________________________ Fin qui tutto è valido sia per la RedHat 8.x che 9.x, ma sembra che Oracle abbia pensato ad un'altra variabile da impostare per la RedHat 9. Va aggiunta alle precedenti ed esportata di conseguenza. È necessario impostarla se non si vuole essere bloccati in un ciclo infinito durante l'installazione: __________________________________________________________________ LD_ASSUME_KERNEL=2.4.1 __________________________________________________________________ Grazie a Steve Schladel, collega e DBA, l'installazione è proseguita agevolmente senza alcun problema. Ho impostato la variabile ORACLE_SID usando l'abbreviazione di Oracle Test Database. Dipende da chi installa cosa impostare come SID. Questo saràil database di default e parte del nome globale del database. Per maggiori informazioni sul significato delle variabili si faccia riferimento al Manuale o Referenze dell'Amministratore di Oracle. 3.3 JRE È possibile scaricare il JRE (Java Runtime Environment) dal [5]sito di Blackdown. Se non si sa cosa scaricare scaricare l'1.1.8v3 e spacchettare il tarball nella directory /usr/local. Questo creerà una directory chiamata come la versione del JRE. Fare il seguente collegamento in /usr/local/: ln -s jre118_v3 jre per la distribuzione JRE 1.1.8v3. Se viene usata una versione più recente, cambiare il comando corrispondentemente. Ora aggiungere alla variabile PATH la directory bin del proprio JRE: PATH=$PATH:/usr/local/jre/bin export $PATH o aggiungere queste linee con quelle nel profilo come si ritenga efficiente. 3.4 Impostare i compiti da eseguire come utente root Prima di cominciare l'installazione vanno preparati l'ambiente Linux e la struttura delle directory. I passi sono pochi e sono elencati sotto con una descrizione per ogni passo. Si ricordi che questi passi sono i passi minimi richiesti per l'installazione della Standard Edition. Se si intendesse installare Enterprise e servizi aggiuntivi suggerisco un attento studio della guida d'installazione di Oracle 9i. Connettersi come root e seguire l'elenco. Messa a punto del Kernel Se la seguente sezione non è abbastanza chiara, fare riferimento al materiale di consultazione per i programmatori IPC di Linux. >Dalla versione 2.2.1 in avanti, il kernel ha impostato parametri in modo dinamico attraverso il /proc file system e non ha bisogno di essere ricompilato. Per questo scopo il /proc file system può essere usato con grande flessibilità Ecco i passi necessari per aggiornare il kernel e impostare gli script da attivare all'avvio, in modo che i parametri vengano impostati ogni volta che il sistema viene avviato. Cambiare la directory corrente a /proc/sys/kernel. Elencati qui sotto sono le minime impostazioni richieste da aggiornare (se necessario). Leggere e impostare i parametri dei semafori E' possibile leggere i valori dei parametri dei semafori SEMMSL, SEMMNS, SEMOPM, SEMMNI con il seguente comando: cat sem L'output dovrebbe essere simile a: 250 32000 32 128 che è la lista dei valori dei parametri nell'ordine della lista qui sopra. Ora impostare i valori con il seguente comando: echo 100 32000 100 100 > sem Leggere ed impostare i parametri della memoria condivisa Si possono leggere i parametri della memoria condivisa SHMMAX, SHMMIN, SHMMNI, SHMSEG usando il seguente comando: cat shm_param dove shm_param è uno di shmmax, shmmin, shmmni, shmall, ecc. Ora usare i seguenti comandi per impostare i valori per i parametri necessari: echo 2147483648 > shmmax echo 4096 > shmmni echo 2097152 > shmall È possibile combinare l'insieme dei suddetti comandi in uno script di shell ed eseguire all'avvio a livello di esecuzione, per decidere quale database Oracle verrà usato, ma è da tenere presente che questi parametri dovrebbero essere impostati prima che l'istanza del database venga attivata. Fare riferimento alla guida di amministratore di Linux per maggiori informazioni sui livelli di esecuzione e gli script di attivazione di init. Descrittori di file Impostare i descrittori di file usando i seguenti comandi: echo 65536 > /proc/sys/fs/file-max ulimit -n 65536 Socket Impostare i socket usando il seguente comando: echo 1024 65000 > /proc/sys/net/ipv4/ip_local_port_range Limite di processo Impostare il limite di processo usando il seguente comando: ulimit -u 16384 Gruppi ed account Come tutti i database, Oracle, 9i richiede un account per il proprietario, tradizionalmente chiamato oracle. I requisiti per i gruppi sono un po' insoliti; ci deve essere un gruppo per OSDBA, che come valore definito è chiamato dba. Oracle richiede anche un secondo gruppo (di solito chiamato oinstall) per assegnare l'autorità di installare software. Dovrebbe essere anche presente un altro gruppo per gli operatori (ma è facoltativo), usato per consentire l'accesso di operatori a certi gruppi di utenti. Quindi ecco la sequenza di comandi per creare i gruppi: groupadd dba groupadd oinstall groupadd oper Dopo che i gruppi sono stati creati si può aggiungere un account per il proprietario di Oracle: useradd -c DBA -g oinstall -G dba oracle che creerà l'account oracle con gruppo primario oinstall e secondario - dba. Inoltre, gli utenti che useranno questa istanza del database possono essere aggiunti al gruppo nel /etc/group file . Punti di mount e permessi L'installazione Oracle 9i richiede un minimo di due punti di mount -- uno per il software ed uno per i file del database. Se viene usata OFA (Optimal Flexible architecture), allora i minimi punti di mount sono quattro -- uno per il software e tre o più per i file del database. La documentazione Oracle raccomanda che ogni punto di mount sia su un disco fisico separato, ma per un uso minimale come in questo caso, il punto di mount potrebbe essere le directory. Tradizionalmente i nomi dei punti di mount sono /u01, /u02, /u03, ecc. Si possono creare come sotto directory in qualsiasi parte del sistema e collegate da link nella directory di root. Nel mio caso ho creato le directory (solo 2 di esse - /u01 e /u02) nella directory di root. Ecco una piccola lista di comandi per creare e preparare il punto di mount (come root): mkdir /u01 /u02 chown oracle.dba /u01 /u02 chmod 755 /u01 /u02 Gli ultimi due comandi impostano la proprietà delle directory di installazione all'utente autorizzato ad installare Oracle 9i, ma dopo l'installazione per scelta dell'amministratore le directory più elevate possono essere riportate in possesso di root. Permessi per la creazione di file Nella maggior parte dei casi la umask dovrebbe essere impostata a 0022. Installando i database Oracle si consiglia di controllare e impostare umask a 0022 se non impostata in modo appropriato. Questo assicurerà che durante l'installazione tutti i file siano creati con gli attributi appropriati. Usare i seguenti comandi: umask per verificare la maschera e: umask 0022 per impostare la maschera. È possibile anche impostare questo comando nel profilo nel caso il valore predefinito non sia 0022. 3.5 Impostare i compiti da eseguire come utente oracle Prima di iniziare l'installazione connettersi come utente oracle in un terminale X ed accertarsi che le variabili DISPLAY e PATH contengano i valori appropriati. La variabile DISPLAY dovrebbe specificare il nome, numero del server e il numero di schermo del sistema e dove Oracle Universal Installer dovrà girare. Questo passo è necessario solo se si usa un server X remoto. Nel caso di installazione locale, se si può far girare X Window Manager sarà possibile far girare l'installatore senza problemi. Se ci fossero problemi nell'eseguire l'installatore a causa della variabile DISPLAY, eseguire: xhost +localhost export DISPLAY=localhost:0.0 Questo dovrebbe risolvere il problema. In aggiunta eseguire come utente oracle: env e controllare per tutte le variabili precedentemente menzionate le variabili d'ambiente. Se ci fosse un sospetto che una o più non siano impostate correttamente dovrebbero essere corrette e l'ambiente ricaricato. 4. Installazione 4.1 Montaggio dei CD (prima o durante l'installazione) Di solito Linux RedHat ha l'automount, che monta il CD dopo che la porta del CD-ROM è chiusa ma nel caso che questo si debba fare manualmente ecco come in breve. Invocare una finestra di terminale e diventare superuser. Lasciare il terminale aperto durante il corso dell'installazione. Verrà comodo a suo tempo. Inserire il primo CD nel lettore CD-ROM. Controllare se si ha una directory dove montare i CD. In genere è /mnt/cdrom, ma se questa non fosse la scelta favorita la si chiami come si vuole. Ora eseguire il seguente comando (assumendo che la directory di mount sia /mnt/cdrom): mount /dev/cdrom /mnt/cdrom Questo monterà il CD sulla /mnt/cdrom directory che sar à la directory di installazione sorgente. Durante l'installazione Oracle Universal Installer richiederà un cambio di CD, per cui se il CD non può essere smontato automaticamente, andare al proprio terminale di root e dare il seguente: cd /mnt eject Questo smonterà il CD ed aprirà il CD-ROM. Ora inserire il successivo CD e chiudere il CD-ROM. Usare il comando mount ancora se il CD non èmontato automaticamente e passare allo schermo di installazione per continuare il processo. 4.2 Esecuzione dell'installer Dopo aver montato il primo disco, invocare una nuova finestra di terminale e cambiare la directory a /mnt/cdrom. Questo è il punto di mount dell'installazione. Da qui eseguire: ./runInstaller & Inoltre è possibile aprire il file index.html dalla stessa directory in un browser e da là leggere e seguire la documentazione Oracle durante la procedura di installazione. 4.3 Schermi e passi di installazione Oracle Universal Installer 2.2 ha una interfaccia semplice ed intuitiva. E' possibile scegliere di saltare questa sezione della nota sull'installazione e seguire i propri istinti, cosa che potrebbe essere una idea molto buona. Gli schermi sono autoesplicativi e molto ben ordinati in una buona sequenza logica. Nel caso si voglia verificare dove si sia nell'installazione, confrontare il processo con le seguenti descrizioni degli schermi e dei passi. Schermo di benvenuto >Dallo schermo di benvenuto è possibile selezionare di installare o disinstallare prodotti. Se questa è la prima installazione cliccare Next per continuare. Appare una nuova finestra di dialogo (Inventory Location). E' richiesto l'inserimento di una directory d'inventario per la/le installazione/i ora e in futuro. Cliccare OK se si è d'accordo, altrimenti inserire la directory d'inventario desiderata. Schermo del nome di gruppo UNIX Questo schermo richiede il gruppo di installazione di Oracle che ha valore predefinito ointsall. Se si desidera cambiare questo nome o usare un altro gruppo (speciale) per ulteriore installazione, è ora il momento di modificare i gruppi. Altrimenti inserire ointsall e cliccare Next. Appare una finestra di dialogo, che mostra che si deve usare il terminale di root (ricordare quando è stato aperto prima). Andare al terminale di root e seguire le istruzioni sullo schermo, che sono semplici per eseguire lo script /tmp chiamato orainstRoot.sh in Se funziona correttamente, si dovrebbe poter vedere sullo schermo: Creazione del file di puntamento di Oracle Inventory (/etc/oraInst.loc) Cambio del groupname di /u01/app/oracle/oraInventory a oinstall. Ora tornare alla finestra di dialogo e cliccare Continua. Schermo di posizione dei file Questo schermo mostra le posizioni dei file sorgente e destinazione per il processo di installazione. Se le variabili d'ambiente sono okay non si dovrebbe cambiare niente, ma se lo si desidera, farlo con attenzione e con cognizione di causa! Si può semplicemnte cliccare Avanti. Quello che segue è una lunga lettura del disco e una barra di progressione in alto a destra dello schermo. Bisogna essere solo pazienti. Schermo dei prodotti disponibili Questo schermo mostra i prodotti disponibili in questo insieme d'installazione. Poiché si sta installando solo il database, la prima opzione (che è quella predefinita) è quella qui d'interesse. Effettivamente include alcuni dei prodotti elencati nelle sezioni successive. Cliccare Avanti. Schermo di tipi di installazione Dato che il nostro esempio mostra un'installazione Standard Edition, cliccare Standard Edition. E' possibile selezionare Enterprise, ma il percorso da qui in poi potrebbe essere differente e potrebbe essere necessario selezionare altre opzioni. Comunque, è scelta della persona che sta installando. Cliccare Avanti. Un'altra pausa (non lunga) e poi si andrà al passo successivo. Schermo di Configurazione del Database Questo schermo permette all'operatore di selezionare a quale scopo servirà il database, così l'installazione potrà sistemare i parametri di conseguenza. Io ho scelto General Purpose e ho cliccato Avanti. C'è un altro periodo di attesa (anche questo breve). Schermo di Identificazione del Database Qui all'operatore è richiesto di inserire il nome globale del database. Il testo su questo schermo è abbastanza esplicativo. Per il nostro esempio ho inserito: ORTD.zeus dato che il nome host del server del database è zeus. Usare il proprio nome host al suo posto e cliccare Avanti. Schermo di Posizione dei file di database Questo schermo richiede di inserire la posizione dove sono situati i file di database fisici. Si raccomanda anche di mettere i file di dati su un disco separato (directory). Ecco perché ho inserito: /u02/oradata invece che il valore predefinito. Cliccare Avanti quando si è fatto. Schermo di Insieme di Caratteri del Database Questo schermo permette di scegliere differenti insiemi di caratteri per il database. L'ho lasciato com'è usare l'insieme di caratteri predefinito. Cliccare Avanti. Schermo di Indice Se si vede questo schermo, la preparazione per il processo di installazione con la OUI è fatto. Ora si può navigare per i contenuti dell'albero di installazione e vedere quale si è scelto. Questo potrebbe far tornare indietro e mettere a posto alcune cose, se non si è in accordo con la lista. Altrimenti cliccare Install, e il processo di installazione comincerà Schermo di Installazione Questo è uno schermo noioso, di lunghissima durata, che richiede cambi di CD di tanto in tanto. Mostra una barra di progressione e calcola la percentuale per mostrare la progressione complessiva per elemento. Il processo di installazione è molto lungo. Prima tutti i componenti software vengono installati poi di tutto viene fatto il link. Cercate qualcosa da fare per ammazzare il tempo e di quando in quando guardate lo schermo per vedere se il CD va cambiato. IMPORTANTE! Nel mio caso (ho fatto l'installazione due volte) c'è stato una schermata d'errore a circa il 79% nel processo di link. La finestra d'errore dava la seguente informazione: Error in invoking target install of makefile /u01/app/oracle/product/9.2.0.1.0/ctx/lib/ins_ctx.mk Ho cliccato Ignora e in entrambe le installazioni sembra non ci sia stato alcun problema nel finire il processo di link. E' apparsa una finestra quando il processo di link è finito. Richiede qualche comando da terminale da eseguire prima che il processo di installazione sia concluso. Fondamentalmente, c'è uno script chiamato root.sh nella directory $ORACLE_HOME, che deve essere eseguito come root, dal terminale di root. L'esecuzione in sé richiede un po' di tempo e molta attività di HDD, perció bisogna essere pazienti e non preoccuparsi troppo. Schermo degli Strumenti di Configurazione Lo schermo degli strumenti di configurazione cerca di eseguire 3 compiti e notifica il fallimento per tutti e tre. Ecco come ho risolto il problema. Nella directory $ORACLE_HOME c'è un link, chiamato JRE, che fa un collegamento alla directory JRE di ORACLE. Eliminare questo collegamento e crearne uno per la propria distribuzione di JRE, descritta precedentemente. Ecco la lista dei comandi: rm -f JRE ln -s /usr/local/jre/ JRE Dopo aver eseguito questi comandi, cercare di selezionare uno a uno gli elementi nella colonna Nome Strumento della tabella e cliccare su Riprova. Se questo non funziona, non c'è da preoccuparsi. Questi sono facoltativi nella sessione di installazione e si possono fare successivamente. Risoluzione dei problemi Se gli ultimi compiti (facoltativi) non vengono eseguiti, ho uno speciale insieme di istruzioni su come fare almeno due di essi. Ma prima, voglio porre l'accento sul fatto di avere la documentazione di Oracle a portata di mano e cercare di leggere qualche volta tra le righe quando si cerca di risolvere i problemi relativi all'installazione. Se le condizioni sono giuste, non si dovrebbe avere alcun errore serio durante la sessione, ma nel caso se ne abbia una, controllare tutte le condizioni iniziali, i permessi dei file e delle directory e lo spazio su disco. Si può facilmente eliminare tutto e ricominciare da capo basta annullare i contenuti delle directory dei mount point di Oracle (/u01, /u02, ecc.), ed eliminare il file oratab nella directory /etc. C'èancora un insieme di file che si potrebbe eliminare così da non lasciar traccia di Oracle sul sistema. Sono nella directory /usr/local/bin ed i loro nomi sono /oraenv/, /coraenv/ e /dbhome/. Comunque si possono lasciare, alla prossima installazione l'installer chiederò se si vogliono mantenere. Ora i compiti facoltativi: Assistente alla Configurazione di Rete Per eseguirlo, andare alla directory $ORACLE_HOME/bin e da là eseguire: ./netca & Questa applicazione avvierà il primo di quattro compiti. Quello che veramente si vuole impostare è il listener. Gli altri non sono così importanti ma si può provare ad impostarli comunque. Prima di impostare il listener si potrebbe avere un listener già in esecuzione. Controllare questo con l'esecuzione del seguente comando: > ps afx | grep LISTEN | grep -v grep Se si ottiene una linea simile a: 15922 ? S 0:00 /u01/app/oracle/product/9.2.0.1.0/bin/tnslsnr LISTENER Si ha un listener attivo. Fermare il listener con il seguente comando dalla directory $ORACLE_HOME/bin: ./lsnrctl stop Potrebbe essere necessario anche eliminare il listener esistente e crearne uno nuovo. Questo dipende completamente da chi stà eseguendo l'installazione. Seguire semplicemente il naturale flusso dell'applicazione. Al giro finale il nuovo listener verrà attivato se ne è stato creato uno nuovo, naturalmente. Assistente alla Configurazione del Database Per eseguirlo, andare in $ORACLE_HOME/bin ed eseguire: ./dbca & Questa applicazione è probabilmente la più importante del gruppo. Serve a creare e configurare il database. Se un database non è stato creato durante la sessione d'installazione o durante un riavvio delle applicazioni, come menzionato prima, questo è quello che si vorrebbe lanciare per creare il proprio database. Anche se non si è ancora usato il database, si potrebbe volerlo eliminare e ricreare. Si può farlo da qua. Questo documento non può includere tutte le funzionalità dell'applicazione, ma dato che è una GUI, è abbastanza facile eseguire compiti con essa. Personalmente io preferisco crearlo da qui, così ho il controllo su tutti i parametri necessari, specialmente le directory dove i file di dati saranno creati. Scelgliere Typical quando vengono richiesti i parametri del database. Il prossimo schermo, con la struttura ad albero permette di impostare la posizione dei file di database. Invece di {ORACLE_BASE}, si può mettere /u02 per esempio. Questo metterà i file di database da usare nella directory /u02/oradata/SID. Questo è solo un esempio. Ognuno decide come distribuire l'albero delle directory del proprio database. Alla fine della creazione del database verranno chieste password per gli utenti SYS e SYSTEM. Inserirle (confermandole), ricordarle, ed uscire (questo funziona come OK nel caso non lo si sia già indovinato). Questo dovrebbe essere quanto. Ora eseguire: ps afx e lo schermo dovrebbe contenere linee simili a quanto segue: __________________________________________________________________ PID TTY STAT TIME COMMAND 1 ? S 0:04 init 2 ? SW 0:01 [keventd] ..... molte altre linee che non interessano... 11665 ? S 0:00 ora_pmon_ORTD 11667 ? S 0:00 ora_dbw0_ORTD 11671 ? S 0:00 ora_lgwr_ORTD 11673 ? S 0:00 ora_ckpt_ORTD 11675 ? S 0:00 ora_smon_ORTD 11677 ? S 0:00 ora_reco_ORTD 11679 ? S 0:00 ora_cjq0_ORTD 11681 ? S 0:02 ora_qmn0_ORTD 11683 ? S 0:00 ora_s000_ORTD 11685 ? S 0:00 ora_d000_ORTD 11812 pts/1 S 0:00 /u01/app/oracle/product/9.2.0.1.0/bin/tnslsnr LIST ENER -inherit __________________________________________________________________ Se si vede questa immagine l'istanza del database è in funzione. L'ultima linea nel suddetto esempio è il listener (potrebbe essere altrove sullo schermo). Congratulazioni! L'installazione si è conclusa con successo! Aggiornamenti riguardanti la risoluzione di problemi Quello che segue è un aggiornamento, per cortesia di Rene Bauer. Si potrebbero incontrare problemi con i seguenti elementi: * Compatibilità della versione di JRE * File di configurazione del database mancante * Fallimento dell'installazione di Legato Single Server Version I problemi di compatibilità i JRE non sono stati rilevato da Rene solo, ma ho recevuto un po' di email al proposito. Il problema esiste perché RedHat 8 e 9 sono fornite con la versione 3.2.x di gcc, ma alcune versioni precedenti di JRE sono compilate con gcc 2.9.x. La soluzione è quella di scaricare l'ultima versione di JRE. Al momento di questo aggiornamento la versione è 4.1 e dato che non c'è nessun eseguibile jre, eseguire il seguente comando per creare il sym link appropriato: ln -s $JRE_DIR/bin/java $JRE_DIR/bin/jre dove $JRE_BIN è la directory bin di jre. Il secondo aggiornamento è relativo al file di configurazione mancante dopo la creazione del database. Il file init{ORACLE_SID}.ora dovrebbe essere creato in modo predefinito nella propria directory $ORACLE_HOME/dbs/. La soluzione di Rene è l'installatore crea un file chiamato spfile{ORACLE_SID}.ora, così è possibile creare un sym link per simulare il file mancante. Cambiare la propria direttory di lavoro in modo che sia $ORACLE_HOME/dbs/ ed eseguire: ln -s spfile{ORACLE_SID}.ora init{ORACLE_SID}.ora La mia soluzione: dopo l'installazione con creazione del database c'è sempre un file chiamato init.ora. Ho semplicemente copiato questo file in init{ORACLE_SID}.ora. Cambiare la propria directory di lavoro in modo che sia $ORACLE_HOME/dbs/ ed eseguire: cp init.ora initORTD.ora Il terzo problema riguarda il processo di installazione di Oracle, installare Legato Single Server Version. Io non ho avuto questo tipo di problema, ma ecco la versione di Rene, che ho cercato di rendere nel modo più breve possible: l'ultimo file root.sh, eseguito su richiesta dell'installazione di Oracle, ha causato un errore cercando di installare LSSV. Secondo Rene, RedHat 8 e 9 sono fornite di ncurses5, ma in modo predefinito il pacchetto di compatibilità con ncurses4 non viene installato, quindi dopo averlo installato il problema di installazione di LSSV sparisce. Questi possono non essere gli ultimi problemi da risolvere, quindi incoraggio qualsiasi commento ed aggiunta che io possa aggiungere alla sezione Risoluzione dei problemi. Apprezzerei ogni riscontro che possa migliorare la qualità di questo documento. 5. Post-installazione La Guida all'installzione di Oracle descrive una lista molto lunga di procedure che vanno eseguite dopo il processo di installazione. Alcune di esse sono necessarie, alcune di esse probabilmente non serviranno mai nell'istanza, ma, quello che più conta è che questo documento non li ripeterà Fare riferimento alla guida d'installazione per queste procedure. Qui io descriverò i passi che sono molto utili per l'installazione minima che ho usato e che sembrano sufficienti per le operazioni fondamentali del database. 5.1 Modificazione del file oratab In particolare c'è un passo che è importante, così da poter iniziare e chiudere il database dal prompt dei comandi in ogni momento, o per consentire al database di essere lanciato automaticamente durante l'avvio. Andare nella directory /etc e modificare il file oratab. Nella linea: ORTD:/u01/app/oracle/product/9.2.0.1.0:N impostare l'ultimo valore a Y, dovrebbe leggersi: ORTD:/u01/app/oracle/product/9.2.0.1.0:Y Ora salvare il file e tornare alla home directory di Oracle. 5.2 Script per l'avvio automatico all'avvio In genere è una buona idea automatizzare l'attivazione del database al momento dell'avvio sul proprio server di database. In questo caso è necessario uno script, che può essere incluso nell'insieme di quelli a livello esecutivo. Qui c'è solamente un esempio. Adattarlo ai livelli di esecuzione della propria macchina! __________________________________________________________________ #!/bin/bash # # Run-level Startup script for the Oracle Instance and Listener # # chkconfig: 345 91 19 # description: Startup/Shutdown Oracle listener and instance ORA_HOME="/u01/app/oracle/product/9.2.0.1.0" ORA_OWNR="oracle" # if the executables do not exist -- display error if [ ! -f $ORA_HOME/bin/dbstart -o ! -d $ORA_HOME ] then echo "Oracle startup: cannot start" exit 1 fi # depending on parameter -- startup, shutdown, restart # of the instance and listener or usage display case "$1" in start) # Oracle listener and instance startup echo -n "Starting Oracle: " su - $ORA_OWNR -c "$ORA_HOME/bin/lsnrctl start" su - $ORA_OWNR -c $ORA_HOME/bin/dbstart touch /var/lock/subsys/oracle echo "OK" ;; stop) # Oracle listener and instance shutdown echo -n "Shutdown Oracle: " su - $ORA_OWNR -c "$ORA_HOME/bin/lsnrctl stop" su - $ORA_OWNR -c $ORA_HOME/bin/dbshut rm -f /var/lock/subsys/oracle echo "OK" ;; reload|restart) $0 stop $0 start ;; *) echo "Usage: $0 start|stop|restart|reload" exit 1 esac exit 0 __________________________________________________________________ Si può semplicemente copiare e incollare questo file nel proprio sistema e cambiarlo secondo le proprie impostazioni. Una volta copiato e modificato il file, spostarlo nella directory /etc/rc.d/init.d e cambiare la sua proprietà e gli attributi in modo che siano gli stessi degli altri file nella directory. Per fare questo e le successive operazioni è necessario essere collegati come utente root. Alla quinta riga di questo codice si legge: # chkconfig: 345 91 19 è usato dal comando chkconfig quando quando si impostano gli script nei livelli di esecuzione. Il valore 345 elenca i livelli di esecuzione nei quali è consentito il funzionamento di Oracle, così e si vuole essere in grado di eseguire istanze di Oracle solo nei livelli 3 e 5, allora cambiare il questo valore a 35. Il valore successivo (91) descrive il numero d'ordine nella sequenza di avvio. Questo significa che se ci sono 100 processi d'avvio, l'avvio di Oracle sarà il 91esimo a partire. Il numero successivo è il numero di chiusura, significa che quando il sistema viene chiuso e se ci sono ad esempio 100 processi da chiudere, il processo Oracle sarà il 19 nell'ordine. Questi numeri sono usati per impostare la posizione relativa dei processi di lancio e chiusura di Oracle. Qui sono stati impostati come esempio. Si possono cambiare, ma si tenga presente che le istanze di Oracle non possono essere eseguite senza che ci siano prima dei processi attivi nel sistema. Ora esegui il seguente comando: chkconfig -add oracle Questo aggiungerà i corrispondenti collegamenti nelle directory dei livelli di esecuzione come elencato all'inizio dello script. Per provare l'automatizzazione appena creata bisogna riavviare il sistema, ma si ricordi che prima che questa automatizzazione funzioni dovrebbero essere impostati i parametri del kernel. Si possono infatti inserire i comandi di adattamento del kernel nella sezione start) del suddetto script. 5.3 Prova dell'installazione con SQL*Plus Se si è installato un database tipico, dovrebbe essere stato creato un utente chiamato scott. La password è tiger. Eseguire quanto segue: sqlplus scott/tiger che dovrebbe lanciare l'interprete SQL*Plus e connettersi come utente scott. Si dovrebbe vedere lo schermo come segue: __________________________________________________________________ SQL*Plus: Release 9.2.0.1.0 - Production on Fri Feb 21 10:55:45 2003 Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved. Connected to: Oracle9i Release 9.2.0.1.0 - Production JServer Release 9.2.0.1.0 - Production SQL>quit Disconnected from Oracle9i Release 9.2.0.1.0 - Production JServer Release 9.2.0.1.0 - Production __________________________________________________________________ Prima di uscire si può lanciare qualche SQL solo per vedere le tabelle in questo schema di database o qualsiasi cosa si abbia in mente. >Da questo punto in poi è una questione di creatività e obiettivo. 6. Clients E' possibile far funzionare il software Client per il database Oracle 9i su ogni piattaforma, quindi si può scaricare il client per la piattaforma desiderata (qualsiasi sia disponibile, ovviamente). Io personalmente preferisco avere software client sia sul DB server che su una stazione di lavoro MS Windows. Questo mi consente di sperimentare il controllo di un database multi-piattaforma, o così credo. :) Scaricare e preparare il CD con il client sulla stessa piattaforma da cui verranno eseguiti. Non è necessario ma è raccomandato avere un CD con esso. Anche se si può lanciare il processo d'installazione dal proprio HDD dove si èscaricato il client, io raccomando di spendere qualche soldino per un masterizzatore di CD. Diventa sempre utile. Anche il client usa l'Oracle Universal Installer, così questo potrebbe sembrare molto semplice dopo tutti i problemi precedenti. La prima volta che si lancia, l'Enterprise Management Console porta a connettersi al database. Fornire i nomi completi del SID e del database e cercare di connettersi come utente SYS con privilegi da SYSDBA. Ad un certo punto bisogna inserire l'indirizzo IP del database server e scegliere una porta a cui il client dovrà connettersi. Io ho lasciato i valori predefiniti (così come con l'impostazione di rete del server). Se non si vede alcun messaggio di errore, è tutto. E' finito. Divertitevi con il vostro giocattolo client e server! 7. Parole finali Oracle 9i è un'applicazione molto complessa, molto grande e soprattutto molto sicura. Questo documento ha toccato leggermente la superficie e non ha intenzione di essere una guida comprensiva. Spero che possa aiutare nel risolvere alcuni problemi durante l'installazione iniziale ma è importante analizzare la propria situazione e rivolgersi a fonti più affidabili. Alcune delle operazioni potrebbero essere eseguite manualmente usando SQL*Plus. Questo potrebbe essere un modo più flessibile per adattare e impostare l'installazione. Lo lascerà in mani più esperte. Non ho menzionato tante cose che sono descritte in dettaglio nella documentazione di Oracle stessa. Quindi esplorate la fonte originale in profondità Buona fortuna! References 1. http://it.ildp.org/ 2. http://www.gnu.org/copyleft/fdl.html 3. mailto:evgueni@email.com 4. http://www.oracle.com/ 5. http://www.blackdown.org/