Installazione di Oracle 11g R2 su Ubuntu 10.04 LTS
Indice
Introduzione
Passo 1. Installazione e aggiornamento del sistema operativo
Passo 2. Creazione dei gruppi e dell’utente
Passo 3. Creazione dei collegamenti simbolici (symbolic links o symlinks)
Passo 4. Modifica dei file di sistema
Passo 5. Download di Oracle 11g e decompressione del file zip
Passo 6. Configurazione XServer
Passo 7. Installazione di Oracle 11g
Passo 8. I file sqlnet.ora e tnsnames.ora
Passo 9. Avvio di Oracle
Passo 10. Avvio di Enterprise Manager
Per chi volesse approfondire
Ultimo aggiornamento: 6 giugno 2010
Introduzione
Di seguito viene riportata la modalità con cui installare Oracle 11gR2 su Ubuntu 10.04 LTS (Lucid Lynx) Desktop Edition.
Lo scopo di installare Oracle su una Desktop Edition è di utilizzarlo a scopo di analisi valutativa e non quindi disporre di un DBMS propriamente inteso, in quanto gestito e configurato per fornire un servizio di accesso ai dati invocabile da più applicazioni, generalmente residenti su macchine diverse da quella su cui esso è installato.
Secondo questa impostazione, la guida si basa sui seguenti presupposti:
- Oracle e le applicazioni client risiedono sulla stessa macchina normalmente utilizzata nella prassi lavorativa quotidiana;
- Oracle non deve essere avviato automaticamente al boot della macchina, perchè sevizio accessorio e non critico nel contesto in cui viene installato;
- la guida rappresenta un sottoinsieme di attività da condurre per installare Oracle ai fini di un suo utilizzo come DBMS propriamente inteso. La guida può dunque essere presa come base di partenza ed essere facilmente estesa per installare Oracle su Ubuntu Server Edition in un vero ambiente di produzione e sviluppo aziendale come emerge ad esempio da Pythian Remote DBA o Plsql.it
Passo 1. Installazione e aggiornamento del sistema operativo
Posto che la guida si prefigge di descrivere come installare Oracle 11g su Ubuntu 10.04 LTS Desktop Edition, la prima attività consiste nel disporre di una versione aggiornata di Lucid Lynx nonché di una versione adeguata allo scopo. Ciò si concretizza in tre attività:
- installazione del sistema operativo Ubuntu 10.04 LTS (Lucid Lynx) Desktop Edition
- verifica dello stato di aggiornamento del sistema operativo
- installazione dei pacchetti aggiuntivi necessari ad Oracle Installer (il software che Oracle mette a disposizione per l’installazione dei prodotti) e configurazione della shell
Installazione del sistema operativo
Se non è stato ancora installato Ubuntu 10.04 LTS Desktop Edition occorre procedere con la relativa installazione
Il sistema operativo della macchina da cui è stata poi redatta la presente guida, è stato installato nel seguente modo:
- scaricata l’immagine “PC (Intel x86) desktop CD” dal sito di releases.ubuntu.com
- masterizzata l’immagine
- eseguito il processo di installazione
Aggiornamento del sistema operativo
Se è già stato installato Ubuntu 10.04 LTS Desktop Editione (e comunque dopo la sua installazione) è opportuno verificare lo stato di aggiornamento lanciando i seguenti comandi:
sudo apt-get update
e
sudo apt-get install
Può accadere che a seguito del processo di aggiornamento venga richiesto il reboot del sistema, nel qual caso è consigliabile procedere con il riavvio prima di proseguire.
Installazione pacchetti aggiuntivi e configurazione shell
La prossima attività consiste nell’installare i pacchetti necessari al corretto funzionamento di Oracle Installer
root@laptop:~# apt-get install build-essential libaio1 gawk ksh libmotif3 alien libtool lsb-rpm lesstif2 lesstif2-dev
Infine si configura la shell di sistema, /bin/sh , da quella che di default è dash a bash per evitare una serie di errori durante l’installazione di Oracle
root@laptop:/home/jaft# cd /bin
root@laptop:/bin# ls -l /bin/sh
lrwxrwxrwx 1 root root 4 2008-07-15 18:36 /bin/sh -> dash
root@laptop:/bin# ln -sf bash /bin/sh
lrwxrwxrwx 1 root root 4 2008-08-27 21:42 /bin/sh -> bash
Passo 2. Creazione dei gruppi e dell’utente
Oracle richiede la creazione dei seguenti gruppi ed utenti a livello di sistema operativo:
- oinstall (the Oracle Inventory Group), il gruppo proprietario dell’installazione dei prodotti oracle, che ha conseguentemente anche i diritti di aggiornare ed installare patch
- dba (OSDBA group), il gruppo che ha i diritti di amministrare il database (startup, shutting down, backup, recovery, etc). Solo gli utenti appartenenti a questo gruppo dovrebbero qualificarsi come SYSDBA
- nobody , un gruppo senza privilegi
- oracle , l’utente proprietario del software e dell’installazione Oracle in cui girerà Oracle stesso. Questo utente viene così creato:
- password: mypassword
- gruppo primario: oinstall
- gruppo supplementare: dba
Oltre a questi gruppi occorre definire la cosiddetta ORACLE_BASE (che viene poi anche definita come variabile), ossia la directory root di installazione dei prodotti Oracle. Seguendo l’impostazione di Ubuntu questa directory viene definita sotto /opt/oracle e ciò contrariamente a quanto vorrebbe Oracle che avendo come riferimento Linux Redhat vorrebbe che l’installazione fosse condotta a partire da /u01 .
Di seguito i comandi da lanciare per creare i gruppi e l’utente oracle
root@laptop:# addgroup oinstall
Adding group 'oinstall' (GID 1001) ...
Done.
root@laptop:# addgroup dba
Adding group 'dba' (GID 1002) ...
Done.
root@laptop:# addgroup nobody
Adding group 'nobody' (GID 1003) ...
Done.
root@laptop:# usermod -g nobody nobody
root@laptop:# useradd -g oinstall -G dba -p mypassword -d /home/oracle -s /bin/bash oracle
root@laptop:# mkdir /home/oracle
root@laptop:# chown -R oracle:dba /home/oracle
root@laptop:# mkdir -p /opt/oracle
root@laptop:# chown -R oracle:oinstall /opt/oracle
Modifica del file .profile dell’utente oracle
Affinché l’utente oracle sia in grado di gestire il database è necesario che siano adeguatamente impostati i valori di alcune variabili di ambiente:
- ORACLE_HOME che è la directory root dell’installazione della 11g
- PATH che deve essere aggiornato in modo tale da da definire il path in cui si trovano gli eseguibili Oracle (sqlplus, export, import, ecc) i quali risiedono nella sottodirectory /bin di ORACLE_HOME
- ORACLE_OWNR che è il nome dell’utente Ubuntu proprietario dell’installazione
- ORACLE_BASE che è la directory root di installazione dei prodotti Oracle
- ORACLE_SID che è il nome dell’istanza Oracle utilizzata se non ne viene indicata una all’atto della connesione
Mentre le prime due variabili vengono gestite in modo tale da essere automaticamente disponibili a livello di sistema operativo per ogni utente (v. oltre), le altre devono essere esclusivamente impostate a livello di utente oracle perchè di fatto è il solo che dovrebbe accedere al db in qualità di amministratore (dba). Occorre a tal fine modificare il file .profile presente nella home dell’utente oracle così che tali variabili siano automaticamente valorizzate al suo logon.
Occorre quindi modificare il file /home/oracle/.profile aggiungendo le seguenti istruzioni
#oracle env variable for db
export ORACLE_OWNR=oracle
export ORACLE_BASE=/opt/oracle
export ORACLE_SID=orcl
Nel caso in cui il file non dovesse esistere, di seguito le istruzioni per crearlo con le credenziali di utente oracle
jaft@laptop:~$ su - oracle
Password:
oracle@laptop:~$ cd /home/oracle
oracle@laptop:~$ touch .profile
oracle@laptop:~$ ls -l .profile
-rw-r--r-- 1 oracle oinstall 0 2008-10-01 22:10 .profile
oracle@laptop:~$ chgrp dba .profile
oracle@laptop:~$ ls -l .profile
-rw-r--r-- 1 oracle dba 0 2008-10-01 22:10 .profile
oracle@laptop:~$
Passo 3. Creazione dei collegamenti simbolici (symbolic links o symlinks)
Lo scopo è di ingannare l’Oracle Installer in modo tale da fargli trovare i paths laddove si aspetta che essi si trovino.
root@laptop:# ln -s /usr/bin/awk /bin/awk
root@laptop:# ln -s /usr/bin/rpm /bin/rpm
root@laptop:# ln -s /usr/bin/basename /bin/basename
root@laptop:# mkdir /etc/rc.d
root@laptop:# for i in 0 1 2 3 4 5 6 S ; do ln -s /etc/rc$i.d /etc/rc.d/rc$i.d ; done
Passo 4. Modifica dei file di sistema
Lo scopo è di:
- impostare alcuni accorgimenti nei limiti del sistema operativo (/etc/sysctl.conf e /etc/security/limits.conf )
- impostare le variabili di ambiente (/etc/profile )
Per fare tutto questo occorre operare come segue.
Modifica del file sysctl.conf
È necessario aggiungere le seguenti istruzioni alla fine del file /etc/sysctl.conf
fs.file-max = 65535
kernel.shmall = 2097152
kernel.shmmax = 2147483648
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
net.ipv4.ip_local_port_range = 1024 65535
net.core.rmem_default = 1048576
net.core.rmem_max = 1048576
net.core.wmem_default = 262144
net.core.wmem_max = 262144
Affinchè le modifiche apportate vengano lette da Ubuntu sussistono due alternative: eseguire il reboot oppure lanciare il seguente comando
root@laptop:# sysctl -p
Modifica del file limits.conf
È necessario aggiungere le seguenti istruzioni alla fine del file /etc/security/limits.conf
oracle soft nproc 2047
oracle hard nproc 16383
oracle soft nofile 1023
oracle hard nofile 65535
Modifica del file profile
È necessario modificare il file /etc/profile in modo tale da rendere disponibili a tutti gli utenti il valore di due variabili:
- ORACLE_HOME , che specifica dove deve essere installata la nostra versione 11g
- PATH , aggiornata in modo tale da definire il path in cui si trovano gli eseguibili Oracle (sqlplus, export, import, ecc). Se non si specifica dove si trovano gli eseguibili, cercando ad esempio di lanciare lsnrctl, Ubuntu ritornerebbe il messaggio: cannot execute binary file
export ORACLE_HOME=/opt/oracle/product/11.2.0/db_1
export PATH=$PATH:$ORACLE_HOME/bin
Passo 5. Download di Oracle 11g e decompressione del file zip
Dopo aver configurato Ubuntu si passa alle attività più direttamente connesse con l’installazione di Oracle. La prima di queste, consiste nel disporre dei file propri dell’installazione:
- dalla pagina dedicata al download del DBMS Oracle si scaricano i due file .zip contenente tutti i file necessari all’installazione relativamente a Linux x86
- si copiano i file scaricati in /home/oracle
- come utente oracle , si scompattano i file all’interno della sua home
oracle@laptop:~$ cd /home/oracle/
oracle@laptop:~$ unzip linux_11gR2_database_1of2.zip
oracle@laptop:~$ unzip linux_11gR2_database_2of2.zip
Passo 6. Configurazione XServer
Oracle Installer in quanto programma grafico richiede che XServer sia adeguatamente configurato.
Oracle Installer deve essere lanciato con le credenziali dell’utente oracle .
Procediamo come segue:
- come utente root occorre fare in modo che il programma X possa girare sotto l’utente oracle
- come utente oracle si esporta la variabile di ambiente DISPLAY
- come utente oracle occorre verificare che il tutto sia stato configurato correttamente, controllando cioè che sia visibile a video l’applicazione xclock
root@laptop:# xhost +local:oracle
non-network local connections being added to access control list
root@laptop:# su - oracle
Password:
oracle@laptop:~$ export DISPLAY=:0.0
oracle@laptop:~$ xclock
Passo 7. Installazione di Oracle 11g
È ora possibile avviare l’installazione di Oracle 11g lanciando Oracle Installer ma con due accorgimenti.
- lanciare l’istruzione che specifica di utilizzare le AWT a titolo di interfaccia grafica, altrimenti non vengono visualizzati i messaggi di help
- avviare Oracle Installer imponendogli di ignorare i prerequisiti di sistema. Oracle infatti si aspetta che venga installato su Linux Redhat ed dunque necessario evitare che venga condotto questo controllo. A tal fine, si lancia Oracle Installer con l’opzione -ignoreSysPrereqs
root@laptop:~# su - oracle
Password:
oracle@laptop:~$ cd /home/oracle/database
oracle@laptop:~$ AWT_TOOLKIT="MToolkit"
oracle@laptop:~$ ./runInstaller -ignoreSysPrereqs
Di seguito le opzioni scelte nei vari step più significativi del processo di installazione, dettagliando alcuni di questi con le relative schermate. Relativamente a questi dettagli è consigliabile leggere i commenti riportati per ogni schermata prima di proseguire con il singolo step dell’installazione. Si consideri che l’installazione è stata condotta in lingua inglese e conseguentemente tutti i riferimenti alle schermate di Oracle Installer vengono riportati in tale lingua.
- Step 2. Creazione del database (e non quindi solo del software)
- Step 3. Classe di installazione: Server (e non Desktop)
- Step 4. Tipologia di installazione database: Single Instance
- Step 5. Tipo di installazione: Advanced (e non quindi Typical)
- Step 7. Database Edition: Enterprise edition (v. dettaglio)
- Step 8. Installation Location (v. dettaglio)
- Step 9. Inventory directory e oraInventory Group Name (v. dettaglio)
- Step 10. Tipo di configurazione database: General Purpose/Transaction Processing (e non Data Warehousing)
- Step 11. SID e Global Database Name = orcl
- Step 12. Configuration Option (v. dettaglio)
- Step 13. Management option: use database control senza email notifications
- Step 14. Database storage option (v. dettaglio)
- Step 15. Recovery options (v. dettaglio)
- Step 17. Privileged Operating System Groups: scegliere il gruppo dba
- Step 18. Prerequisite Checks (v. dettaglio)
- Step 19. Summary (v. dettaglio)
- Step 20. Install Product (v. dettaglio)
- nome della macchina su cui è stata condotta l’installazione (hostname )= laptop
Al fine di avere una panoramica introduttiva sull’installazione può essere utile visitare la pagina Installazione del software Oracle e creazione del database in cui Oracle descrive le schermate di Oracle Installer
Step 7. Database Edition
Relativamente al passo 7 “Database Edition” si è scelto Enterprise Edition selezionando tutte le opzioni aggiuntive

Step 8. Installation Location
Relativamente a “Oracle Base” e “Software Location”, sostituire i valori di default impostati da Oracle Installer con i seguenti:
- Oracle Base = /opt/oracle
- Software Location = ORACLE_BASE/product/11.2.0/db_1

Step 9. Inventory directory e oraInventory Group Name
Relativamente a “Inventory directory” e “Operating system group name”, impostare i seguenti anche se diversamente consigliati da Oracle Installer:
- Inventory directory = ORACLE_BASE/oraInventory
- oraInventory Group Name = oinstall

Step 12. Configuration Options
Sono state lasciate invariate le opzioni a meno dei due seguenti tab:
- Character sets = Use Unicode (AL32UTF8)
- Security = Assert all new security settings


Step 14. Database storage option (v. dettaglio)
Non si è scelta l’opzion ASM rimandando eventualmente la sua attivazione ad un momento successivo

Step 15. Recovery options
Nessuna tipologia di backup, posto che il sistema installato è solo a scopo di test. Qualora si volesse attivare il backup a scopo di test, abilitare le relative caselle di spunta o procedere alla sua configurazione in un secondo tempo.

Step 18. Prerequisite Checks
Fare click sulla casella di spunta Ignore All, in modo tale che venga forzata la verifica da parte utente ed Oracle non conduca quindi la verifica dei prerequisiti di sistema.

Step 19. Summary
Mediante la schermata riassuntiva, Oracle Installer visualizza tutte le opzioni precedentemente selezionate, che costituiscono i parametri di riferimento per il processo di installazione in senso stretto che verrà avviato allo step immediatamente successivo.

Step 20. Install Product
Rappresenta il processo di installazione vero e proprio, che termina con:
- il lancio degli script di configurazione
- la finestra riassuntiva di configurazione del database
Step 20.1 Execute Configuration scripts
Viene richiesto di lanciare gli script di cui all’immagine riportata di seguito come utente root

La finestra terminale a seguito dell’esecuzione dovrebbe risultare simile alla seguente
jaft@laptop:~$ sudo su
[sudo] password for jaft:
root@laptop:/home/oracle# cd /opt/oracle/oraInventory/
root@laptop:/opt/oracle/oraInventory# . orainstRoot.sh
Changing permissions of /opt/oracle/oraInventory.
Adding read,write permissions for group.
Removing read,write,execute permissions for world.
Changing groupname of /opt/oracle/oraInventory to oinstall.
The execution of the script is complete.
root@laptop:/opt/oracle/oraInventory# cd /opt/oracle/product/11.2.0/db_1/
root@laptop:/opt/oracle/product/11.2.0/db_1# . root.sh
Running Oracle 11g root.sh script...
The following environment variables are set as:
ORACLE_OWNER= oracle
ORACLE_HOME= /opt/oracle/product/11.2.0/db_1
Enter the full pathname of the local bin directory: [/usr/local/bin]:
Copying dbhome to /usr/local/bin ...
Copying oraenv to /usr/local/bin ...
Copying coraenv to /usr/local/bin ...
Creating /etc/oratab file...
Entries will be added to the /etc/oratab file as needed by
Database Configuration Assistant when a database is created
Finished running generic part of root.sh script.
Now product-specific root actions will be performed.
Finished product-specific root actions.
root@laptop:/opt/oracle/product/11.2.0/db_1#
Step 20.2 Database Configuration Assistant
Di seguito la maschera riassuntiva a seguito dell’installazione del database

Passo 8. I file sqlnet.ora e tnsnames.ora
Affinché tutti gli utenti Ubuntu della macchina possano connettersi al DBMS è necessario che abbiano i diritti di lettura dei file sqlnet.ora e tnsnames.ora
Per fare questo, come utente oracle occorre lanciare i seguenti comandi
oracle@laptop:/opt/oracle/product/11.2.0/db_1/network/admin$ chmod o=r tnsnames.ora
oracle@laptop:/opt/oracle/product/11.2.0/db_1/network/admin$ chmod o=r sqlnet.ora
Ai fini di una eventuale comparazione, si riporta il file sqlnet.ora relativo all’installazione oggetto di documentazione della presente guida
# sqlnet.ora Network Configuration File: /opt/oracle/product/11.2.0/db_1/network/admin/sqlnet.ora
# Generated by Oracle configuration tools.
NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT)
ADR_BASE = /opt/oracle
Ai fini di una eventuale comparazione, si riporta il file tnsnames.ora relativo all’installazione oggetto di documentazione della presente guida
# tnsnames.ora Network Configuration File: /opt/oracle/product/11.2.0/db_1/network/admin/tnsnames.ora
# Generated by Oracle configuration tools.
ORCL.world =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = laptop)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl)
)
)
Passo 9. Avvio di Oracle
Posto che da premessa si assume che sia l’utente oracle ad occuparsi della gestione del database, ci si qualifica in Ubuntu con questo utente ed al primo avvio si verifica che tutte le variabile di ambiente siano adeguatamente impostate
jaft@laptop:~$ su - oracle
Password:
oracle@laptop:~$ printenv | grep ORACLE_
ORACLE_SID=orcl
ORACLE_BASE=/opt/oracle
ORACLE_OWNR=oracle
ORACLE_HOME=/opt/oracle/product/11.2.0/db_1
oracle@laptop:~$
Avvio del listener
La seconda attività consiste nell’avviare il listener mediante l’istruzione
lsnrctl start
oracle@laptop:~$ lsnrctl start
LSNRCTL for Linux: Version 11.2.0.1.0 - Production on 03-JUN-2010 22:46:39
Copyright (c) 1991, 2009, Oracle. All rights reserved.
Starting /opt/oracle/product/11.2.0/db_1/bin/tnslsnr: please wait...
TNSLSNR for Linux: Version 11.2.0.1.0 - Production
System parameter file is /opt/oracle/product/11.2.0/db_1/network/admin/listener.ora
Log messages written to /opt/oracle/diag/tnslsnr/laptop/listener/alert/log.xml
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=laptop)(PORT=1521)))
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521)))
STATUS of the LISTENER
------------------------
Alias LISTENER
Version TNSLSNR for Linux: Version 11.2.0.1.0 - Production
Start Date 03-JUN-2010 22:46:39
Uptime 0 days 0 hr. 0 min. 0 sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
Listener Parameter File /opt/oracle/product/11.2.0/db_1/network/admin/listener.ora
Listener Log File /opt/oracle/diag/tnslsnr/laptop/listener/alert/log.xml
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=laptop)(PORT=1521)))
The listener supports no services
The command completed successfully
oracle@laptop:~$
Avvio dell’istanza e mouting del database
Infine la terza attività consiste nell’avviare l’istanza e montare il database connettendoci come sys as sysdba
oracle@laptop:~$ sqlplus /nolog
SQL*Plus: Release 11.2.0.1.0 Production on Thu Jun 3 22:47:22 2010
Copyright (c) 1982, 2009, Oracle. All rights reserved.
SQL> connect sys as sysdba
Enter password:
Connected to an idle instance.
SQL> startup
ORACLE instance started.
Total System Global Area 1473089536 bytes
Fixed Size 1336596 bytes
Variable Size 889195244 bytes
Database Buffers 570425344 bytes
Redo Buffers 12132352 bytes
Database mounted.
Database opened.
SQL>
Connessione da altro utente del sistema operativo
Montato il database è ora possibile aprire una connessione anche con un altro utente Ubuntu (nell’esempio che segue l’utente è jaft )
oracle@laptop:/$ su - jaft
Password:
jaft@laptop:~$ sqlplus sys@ORCL.world as sysdba
SQL*Plus: Release 11.2.0.1.0 Production on Thu Jun 3 22:51:06 2010
Copyright (c) 1982, 2009, Oracle. All rights reserved.
Enter password:
Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production
With the Partitioning, Oracle Label Security, OLAP, Data Mining,
Oracle Database Vault and Real Application Testing options
SQL>
Passo 10. Avvio di Enterprise Manager
Per lavorare con Enterprise Manager è prima necessario avviare la dbconsole tramite linea di comando attraverso l’utente oracle
jaft@laptop:/$ su - oracle
Password:
oracle@laptop:/etc/init.d$ emctl start dbconsole
Oracle Enterprise Manager 11g Database Control Release 11.2.0.1.0
Copyright (c) 1996, 2009 Oracle Corporation. All rights reserved.
https://laptop:1158/em/console/aboutApplication
Starting Oracle Enterprise Manager 11g Database Control ........... started.
------------------------------------------------------------------
Logs are generated in directory /opt/oracle/product/11.2.0/db_1/laptop_orcl/sysman/log
Fatto questo, nel browser digitare https://localhost:1158/em/ per avere accesso a Enterprise Manager
Con Firefox potrebbe emergere un problema di sicurezza sul certificato, impendendo così di accedere allo strumento di amministrazione. In questo sito viene indicata la soluzione al problema.
Per chi volesse approfondire
Oracle Database 11g R2
Oracle Database 11g R2 – Installing Oracle Software on Linux and Building the Database
Installazione di Oracle 11g su Ubuntu 8.04 LTS Desktop Edition




