Installazione Oracle Server 10g: Linux Ubuntu Intrepid 8.10

esperienze avute con Linux e la configurazione di qualche periferica o programma. Postate solo configurazioni effettuate con successo
Avatar utente
Starless
Ninja Pinguinus
Ninja Pinguinus
Messaggi: 12
Iscritto il: giovedì, 25.09.2008, 11:14
Indica il numero centrale della lista (tre): 0
Località: Martina Franca (TA)

Installazione Oracle Server 10g: Linux Ubuntu Intrepid 8.10

Messaggioda Starless » giovedì, 28.05.2009, 9:14

Distribuzione Linux: Ubuntu 8.10
Kernel: 2.6.27-14-generic
Versione Oracle Server 10g per Linux: 10.2.0.1.0


N.B.: nella guida ci sono delle operazioni da fare con privilegi di amministratore. Essendo Ubuntu la distribuzione usata è consigliabile usare il comando sudo ma niente vieta di cambiare utente e diventare root. STARE ATTENTI a non fare comandi come root se non esplicitamente detto o richiesto. Le operazioni di installazione devono essere fatte come utente oracle.


================
PASSI PRELIMINARI
================

1) Creare il gruppo dba (punto 1 INSTALLAZIONE ORACLE SERVER 10g) e l'utente oracle (punti 2 e 3 INSTALLAZIONE ORACLE SERVER 10g)

2) Loggarsi come utente oracle

3) Scaricare e scompattare il CD di Oracle Server 10g ver. 10.2.0.1.0 e il CD Oracle Client 10g ver. 10.2.0.1.0 (ci servirà per l'installazione di ORACLE ENTERPRISE MANAGER CONSOLE) per Linux da utente oracle in modo da avere tutti i permessi OK.

4) Installare tramite synaptic o apt-get il pacchetto:

Codice: Seleziona tutto

libaio1


Questo è importante altrimenti si incorre nell'errore:

ORA-12547: TNS: lost contact


quando si va a creare un database con il "Database Configuration Assistant".


==============================
INSTALLAZIONE ORACLE SERVER 10g
==============================

1) Creare gruppo dba da utente root o con l'ausilio di sudo con il comando:

Codice: Seleziona tutto

groupadd dba


2) Creare utente oracle da utente root o con l'ausilio di sudo con il comando:

Codice: Seleziona tutto

useradd -c "Utente Oracle" -G admin,dba -d /home/oracle -s /bin/bash -m oracle


3) Impostare la password per l'utente oracle da utente root o con l'ausilio di sudo con il comando:

Codice: Seleziona tutto

passwd oracle


4) Terminare la sessione e accedere con l'utente oracle. Scompattare il CD di Oracle Server 10g ver. 10.2.0.1.0 per Linux. Da ora in avanti tutte le operazioni saranno fatte con questo utente.

5) Spostare la cartella "database" estratta dall'archivio .zip di Oracle Server 10g in una posizione tale che non abbia percorsi con spazi altrimenti si incorre nell'errore:

[: 63: Server: unexpected operator
./runInstaller: 63: /parte/del/percorso/scelto: not found


quando si lancia l'installer.
Esempio di posizionamento cartella "database":

/home/oracle/Oracle\ Server\ 10g/database ==> NON va bene
/home/oracle/database ==> OK


P.S.: consiglio di spostare la cartella "database" in /home/oracle.

6) Creare cartella di destinazione, dare i permessi giusti e settare le variabili d'ambiente (questo serve per settare la ORACLE_BASE e la ORACLE_HOME in cui saranno installati i file). Lanciare i comandi come root o con l'ausilio di sudo:

Codice: Seleziona tutto

cd /opt
mkdir oracle
chown oracle oracle
chgrp dba oracle


Settare le variabili d'ambiente ORACLE_BASE e ORACLE_HOME:

Codice: Seleziona tutto

export ORACLE_BASE=/opt/oracle
export ORACLE_HOME=/opt/oracle/product/10.2.0/db_1


N.B.: nell'export delle variabili d'ambiente NON mettete l'ultimo /


7) Entrare nella cartella "database" decompressa e spostata ai punti 4) e 5) e lanciare il comando:

Codice: Seleziona tutto

./runInstaller -ignoreSysPrereqs


L'opzione da lanciare con l'installer è necessaria altrimenti si ha l'errore:

Avvio di Oracle Universal Installer in corso...

Verifica dei requisiti dell'Installer in corso...

Verifica della versione del sistema operativo: deve essere redhat-3, SuSE-9, redhat-4, UnitedLinux-1.0, asianux-1 or asianux-2
Non superato <<<<

Uscita da Oracle Universal Installer in corso; è possibile trovare il log per questa sessione in /tmp/..............


Il file runInstaller dovrebbe essere già eseguibile. Se non lo è lanciare il comando da root o con sudo:

Codice: Seleziona tutto

chmod a+x runInstaller

e rilanciare il comando ./runInstaller -ignoreSysPrereqs

Installazione Grafica

8) Una volta partito l'Oracle Universal Installer lasciare come "directory di inventario" quella proposta (/opt/oracle/oraInventory) e come "nome del gruppo del sistema operativo" mettere dba. Andare avanti.

9) Scegliere la versione di Oracle Server 10g che preferite e andate avanti.

10) Potete lasciare la cartella di destinazione dei file del prodotto così come viene proposto (io lo consiglio per meglio seguire la guida)

11) Scegliere se creare oppure no un database. Se si sceglie di NON creare il database lo si potrà creare alla fine dell'installazione di Oracle Server 10g tramite il Database Configuration Assistant (dbca). In base alla vostra scelta seguite l'installazione guidata.

12) Durante l'installazione si riscontrano due errori:

ERRORE 1

Errore durante il richiamo della destinazione 'utilities ctx_on' del makefile '/opt/oracle/product/10.2.0/db_1/rdbms/lib/ins_rdbms.mk


Per risolvere il problema aprire un terminale e dare i seguenti comandi:

Codice: Seleziona tutto

export ORACLE_HOME=/opt/oracle/product/10.2.0/db_1
export LD_LIBRARY_PATH=$ORACLE_HOME/lib
sudo ln -s /usr/bin/basename /bin/basename
ln -­s $ORACLE_HOME/lib/libclient10.a $ORACLE_HOME/lib/libagtsh.a
$ORACLE_HOME/bin/genagtsh $ORACLE_HOME/lib/libagtsh.so.1.0


Ritornare all'installazione grafica e cliccare su "Riprova".

ERRORE 2

Errore durante il richiamo della destinazione 'all_no_orcl ihsodbc' del makefile '/opt/oracle/product/10.2.0/db_1/rdbms/lib/ins_rdbms.mk


Per risolvere il problema aprire un terminale e dare come utente root o con l'ausilio di sudo:

Codice: Seleziona tutto

ln -s /usr/lib/libstdc++.so.6 /usr/lib/libstdc++.so.5


Ritornare all'installazione grafica e cliccare su "Riprova".

13) Quando viene chiesto di lanciare come root gli script orainstRoot.sh e root.sh editare root.sh modificando il path di awk da /bin/awk a /usr/bin/awk:
AWK=/bin/awk
AWK=/usr/bin/awk


    a) Lanciare da shell, come root o con l'ausilio di sudo, lo script root.sh contenuto in /opt/oracle/product/10.2.0/db_1:

    Codice: Seleziona tutto

    cd /opt/oracle/product/10.2.0/db_1
    ./root.sh


    Dare invio alla richiesta
    Enter the full pathname of the local bin directory: [/usr/local/bin]:

    b) Lanciare da shell, come root o con l'ausilio di sudo, lo script orainstRoot.sh contenuto in /opt/oracle/oraInventory:

    Codice: Seleziona tutto

    cd /opt/oracle/oraInventory
    ./orainstRoot.sh

Una volta finita l'esecuzione degli script tornare all'installazione e cliccare su "OK"


14) Installazione conclusa. Cliccare su "Esci"


===================
CREAZIONE DATABASE
===================

1) Alla fine dell'installazione se non lo si è creato in precedenza o, in generale, per poter creare un database bisogna lanciare il Database Configuration Assistant (comando dbca che si trova nella cartella bin della home di Oracle. Nel nostro caso /opt/oracle/product/10.2.0/db_1/bin).

Creazione del database
Settare le variabili d'ambiente ORACLE_HOME e PATH con il percorso contenente gli eseguibili di Oracle Server 10g:

Codice: Seleziona tutto

export ORACLE_HOME=/opt/oracle/product/10.2.0/db_1
export PATH=$PATH:$ORACLE_HOME/bin


Lanciare il comando:

Codice: Seleziona tutto

dbca


2) Creare il database in base alle vostre esigenze (es.: General Purpose). Impostare il SID

3) Impostare la/e password per gli account SYS e SYSTEM e cliccare su "Esci"


======================
CREAZIONE DEL LISTENER
======================


Il listener viene creato in automatico durante l'installazione di Oracle Server 10g, quindi, si può procedere alla sezione successiva.

Per poter apportare modifiche al listener dare i seguenti comandi:

a) Andare nella cartella bin contenuta in Oracle Home

Codice: Seleziona tutto

cd /opt/oracle/product/10.2.0/db_1/bin

b) Lanciare il comando:

Codice: Seleziona tutto

./netca


======================================
TEST CONNESSIONE AL DATABASE (opzionale)
======================================

Si può provare a fare una connessione al database per testare che tutto funzioni. Possiamo usare TOAD da Windows, Tora da Linux, SQLPlus.

N.B.: per poter testare la connessione al DB sulla macchina locale bisogna aver configurato il tnsnames.ora che si trova in /opt/oracle/product/10.2.0/db_1/network/admin (in questa posizione si trova anche il listener.ora) e la variabile d'ambiente TNS_ADMIN (per settarla: export TNS_ADMIN=/opt/oracle/product/10.2.0/db_1/network/admin).

A titolo di esempio un tnsnames.ora. Creare un file chiamato tnsnames.ora all'interno della cartella /opt/oracle/product/10.2.0/db_1/network/admin e modificarlo secondo i vostri parametri (state attenti a non usare editor "NON PURI" come OpenOffice o peggio Word perchè inseriscono caratteri strani come fine riga, ritorno a capo, ecc.. che causano errori nella lettura del file. Per questo tipo di cose usate vi, vim, pico, nano, gedit, kate, ecc...):

Codice: Seleziona tutto

SIDSceltoDavoi =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = Service_Name_Scelto_Da_Voi_in_fase_di_installazione_che_in_generale_è_uguale_al_SIDSceltoDaVoi)
    )
  )


Un esempio di connessione locale con SQLPlus è la seguente:

Codice: Seleziona tutto

cd /opt/oracle/product/10.2.0/db_1/bin
./sqlplus SYSTEM/password_scelta_da_voi_in_fase_di_installazione@SIDSceltoDaVoi



========================================
AVVIO MANUALE DEL DATABASE E DEL LISTENER
========================================

Se tutto è andato bene si ha un database funzionante. Il problema è che riavviando il sistema bisogna avviare manualmente il listener, il database e settare le variabili d'ambiente.

RIAVVIARE e ricordate di loggarvi sempre come utente oracle.

Al riavvio non si avrà la possibilità di connettersi. Vediamo come fare per automatizzare il tutto.

1) Editare il file /etc/oratab sostituendo alla N una Y in riferimento all'istanza del database che si vuole startare. Questo fa in modo che lanciando il comando dbstart viene letto il file /etc/oratab e si avviano le istanze contrassegnate con Y

2) Settare la variabile d'ambiente ORACLE_HOME:

Codice: Seleziona tutto

export ORACLE_HOME=/opt/oracle/product/10.2.0/db_1


3) Modificare, con un editor (vi, vim, pico, nano, gedit, ecc...), la riga all'interno dello script dbstart sostituendo:

Codice: Seleziona tutto

ORACLE_HOME_LISTNER=/ade/vikrkuma_new/oracle

con:

Codice: Seleziona tutto

ORACLE_HOME_LISTNER=$ORACLE_HOME


Questa modifica è necessaria per evitare l'errore:

Failed to auto-start Oracle Net Listene using /ade/vikrkuma_new/oracle/bin/tnslsnr


N.B.: il comando dbstart si trova in /opt/oracle/product/10.2.0/db_1/bin.

4) Spostarsi, se necessario, nella cartella /opt/oracle/product/10.2.0/db_1/bin e lanciare il comando dbstart:

Codice: Seleziona tutto

cd /opt/oracle/product/10.2.0/db_1/bin
./dbstart


Il comando dbstart avvia sia il listener che l'istanza del database. In pratica dbstart lancia il listener che legge il listener.ora. Il listener legge oratab e se l'istanza è settata a Y la fa partire.


==========================================================================
AVVIO AUTOMATICO DEL DATABASE E DEL LISTENER AL BOOT DEL SISTEMA OPERATIVO
==========================================================================

1) Per l'avvio automatico del listener e del database editare come utente root o con l'ausilio di sudo il file /etc/profile aggiungendo alla fine del file quanto segue:

Codice: Seleziona tutto

export ORACLE_BASE=/opt/oracle
export ORACLE_HOME=/opt/oracle/product/10.2.0/db_1
export TNS_ADMIN=/opt/oracle/product/10.2.0/db_1/network/admin
export LD_LIBRARY_PATH=/opt/oracle/product/10.2.0/db_1/lib
export PATH=$PATH:$ORACLE_HOME/bin
/opt/oracle/product/10.2.0/db_1/bin/dbstart


A questo punto riavviando e loggandosi come utente oracle il database ed il listener saranno avviati. Si può controllare il tutto sempre con il comando ps ax.


========================================================================================
INSTALLAZIONE ORACLE CLIENT 10g E AVVIO DELL'APPLICAZIONE ORACLE ENTERPRISE MANAGER CONSOLE
========================================================================================

In Oracle Server 9i la gestione del database (utenti, sicurezza, ecc..) veniva fatta attraverso l'applicazione Oracle Enterprise Manager Console (comando oemapp console). In Oracle Server 10g questa applicazione è stata sostituita con un'applicazione che gestisce meno parametri e che si basa su Web Server Apache, repository ed altre cose. Ovviamente sotto Linux far partire questa applicazione è una tragedia ma c'è la possibilità di installare la vecchia e buona Oracle Enterprise Manager Console. L'applicazione si trova nel CD di Oracle Client 10g.

1) Scompattare il file .zip di Oracle Client 10g scaricato in precedenza e spostarlo in /home/oracle (per il percorso vale la stessa cosa detta per l'Oracle Server 10g e, cioè, evitare gli spazi).

2) Entrare nella cartella /home/oracle/client e lanciare l'installer:

Codice: Seleziona tutto

cd /home/oracle/client

Codice: Seleziona tutto

./runInstaller -ignoreSysPrereqs


Il file runInstaller dovrebbe essere già eseguibile. Se non lo è lanciare il comando da root o con sudo:

Codice: Seleziona tutto

chmod a+x runInstaller

e rilanciare il comando ./runInstaller -ignoreSysPrereqs

3) Cliccare su "Avanti" e scegliere l'opzione di installazione "Amministratore"

4) Mettere come nome della home:

Codice: Seleziona tutto

OraClient10g_home1


e come percorso di installazione:

Codice: Seleziona tutto

/opt/oracle/product/10.2.0/client


Andare avanti.

N.B.: cambiare home e posizione per il client è importante altrimenti l'installazione va a sovrascrivere parti fondamentali per il server.

5) Come configurazione di Oracle Net mettere "Configurazione standard"

6) Quando viene chiesto di lanciare come root lo script root.sh editare root.sh modificando il path di awk da /bin/awk a /usr/bin/awk:
AWK=/bin/awk
AWK=/usr/bin/awk


Lanciare da shell, come root o con l'ausilio di sudo, lo script root.sh contenuto in /opt/oracle/product/10.2.0/client:

Codice: Seleziona tutto

cd /opt/oracle/product/10.2.0/client
./root.sh


Dare invio alla richiesta
Enter the full pathname of the local bin directory: [/usr/local/bin]:


Scegliere "No" alle tre richieste di sovrascrittura dei file: dbhome, coraenv, oraenv.

5) Installazione conclusa. Cliccare su "Esci"

6) Aggiungere al file /etc/profile il PATH di bin del client /opt/oracle/product/10.2.0/client/bin mettendolo in coda a "export PATH=$PATH:$ORACLE_HOME/bin" in modo da avere la seguente linea (fare attenzione ai due punti fra i due path):

Codice: Seleziona tutto

export PATH=$PATH:$ORACLE_HOME/bin:/opt/oracle/product/10.2.0/client/bin


7) Salvare e riavviare in modo da aggiornare le variabili d'ambiente.

Per avviare l'Oracle Enterprise Manager Console dare il seguente comando:

Codice: Seleziona tutto

oemapp console


=============================
COMANDI GENERICI DI CONTROLLO
=============================

Tutti i seguenti comandi sono contenuti all'interno della cartella /opt/oracle/product/10.2.0/db_1/bin:

1) Per arrestare il listener dare il comando

Codice: Seleziona tutto

./lsnrctl stop

2) Per vedere lo stato del listener dare il comando

Codice: Seleziona tutto

./lsnrctl status

3) Per arrestare il database dare il comando

Codice: Seleziona tutto

./dbshut

Avatar utente
zeno
Website Administrator
Website Administrator
Messaggi: 130
Iscritto il: sabato, 30.08.2008, 21:57
Indica il numero centrale della lista (tre): 0
Località: Potenza
Contatta:

Re: Installazione Oracle Server 10g: Linux Ubuntu Intrepid 8.10

Messaggioda zeno » giovedì, 28.05.2009, 11:46

Sei semplicemente grandioso!
Spettacolari le tue guide!
Grazie per la tua volontà di condividerle con il Baslug!
http://www.stefanolaguardia.eu
... sopra tutto, Debian GNU/Linux ...
- - - - - - - - - - - - - - - - - - - - - - - - - -
ZeNo is zeno(-AT-)baslug.org
GnuPG public key: 0xB5BE6DD1
Key Fingerprint: A6F8 62FE 42C4 695C D6EA 3A6A 7626 2887 B5BE 6DD1


Torna a “Configurazioni”

Chi c’è in linea

Visitano il forum: Nessuno e 1 ospite