Wiki Ubuntu-it

Indice
Partecipa
FAQ
Wiki Blog
------------------
Ubuntu-it.org
Forum
Chiedi
Chat
Cerca
Planet
  • Immutable Page
  • Info
  • Attachments


Introduzione

Di seguito viene riportata la modalità con cui installare Oracle 11gR1 su Ubuntu 8.04 LTS (Hardy Heron) 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:

  1. Oracle e le applicazioni client risiedono sulla stessa macchina normalmente utilizzata nella prassi lavorativa quotidiana;
  2. Oracle non deve essere avviato automaticamente al boot della macchina, perchè sevizio accessorio e non critico nel contesto in cui viene installato;
  3. 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 8.04 LTS Desktop Edition, la prima attività consiste nel disporre di una versione aggiornata di Hardy Heron nonché di una versione adeguata allo scopo. Ciò si concretizza in tre attività:

  1. installazione del sistema operativo Ubuntu 8.04 LTS (Hardy Heron) Desktop Edition

  2. verifica dello stato di aggiornamento del sistema operativo
  3. 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 8.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:

  1. scaricata l'immagine "PC (Intel x86) desktop CD" dal sito di releases.ubuntu.com

  2. masterizzata l'immagine
  3. eseguito il processo di installazione

Aggiornamento del sistema operativo

Se è già stato installato Ubuntu 8.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 upgrade

Può accadere che a seguito del processo di aggiornamento venga richiesto il riavvio del sistema, eseguirlo prima di proseguire.

Installazione pacchetti aggiuntivi e configurazione shell

Installare i pacchetti necessari al corretto funzionamento di Oracle Installer:

  • build-essential

  • libaio1

  • gawk

  • ksh

  • libmotif3

  • alien

  • libtool

  • lsb-rpm

Infine si configura la shell di sistema, /bin/sh, da quella predefinita (dash) a bash per evitare una serie di errori durante l'installazione di Oracle.

Entrare nella cartella /bin

cd /bin 

Fare in modo che sh punti bash

sudo ln -sf bash /bin/sh

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

sudo addgroup oinstall

dba (OSDBA group), il gruppo che ha i diritti di amministrare il database. Solo gli utenti appartenenti a questo gruppo dovrebbero qualificarsi come SYSDBA

sudo addgroup dba 

nobody, un gruppo senza privilegi

sudo addgroup nobody 

Dare all'utente il gruppo nobody

sudo usermod -g nobody nobody 

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

sudo useradd -g oinstall -G dba -p mypassword -d /home/oracle -s /bin/bash oracle 

Poi occorre definire la cosiddetta ORACLE_BASE (che viene poi anche definita come variabile), ossia la cartella root di installazione dei prodotti Oracle. Seguendo l'impostazione di Ubuntu questa cartella 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.

sudo mkdir /home/oracle 
sudo chown -R oracle:dba /home/oracle 
sudo mkdir -p /opt/oracle 
sudo 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 è l 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:

  1. ORACLE_HOME, che specifica dove deve essere installata la nostra versione 11g

  2. PATH, aggiornata in modo tale da definire il path in cui si trovano gli eseguibili Oracle (sqlplus, export, import, ecc)

export ORACLE_HOME=/opt/oracle/product/11.1.0/db_1 
export PATH=$PATH:/opt/oracle/product/11.1.0/db_1/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:

  1. dalla pagina dedicata al download del DBMS Oracle si scarica il file .zip contenente tutti i file necessari all'installazione relativamente a Linux x86

  2. si copia il file scaricato in /home/oracle

  3. come utente oracle, si scompatta il file all'interno della sua home

oracle@laptop:~$ cd /home/oracle/ 
oracle@laptop:~$ unzip linux_x86_11gR1_database.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:

  1. come utente root occorre fare in modo che il programma X possa girare sotto l'utente oracle

  2. come utente oracle si esporta la variabile di ambiente DISPLAY

  3. 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 un accorgimento. Occorre cioè 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/ 
oracle@laptop:~$ ./runInstaller -ignoreSysPrereqs 

Di seguito le schermate più significative del processo di installazione condotto attraverso Oracle Installer. È consigliabile leggere i commenti riportati per ogni schermata prima di proseguire con il singolo passo dell'installazione. Si consideri che il processo di installazione documentato è stato condotto con le seguenti opzioni:

  • in lingua inglese e conseguentemente tutti i riferimenti alle schermate di Oracle Installer vengono riportati in lingua inglese

  • creazione del database e non quindi solo del software
  • versione Enterprise
  • SID e Global Database Name = orcl

  • 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

Inventory directory e Operating system group name

Relativamente a "Inventory directory" e "Operating system group name", sostituire i valori di default impostati da Oracle Installar con i seguenti:

Inventory directory = ORACLE_BASE/product/oraInventory

Operating system group name = oinstall

InventoryCredentials.png

Install Location

Relativamente a "Oracle Base" e "Software Location", sostituire i valori di default impostati da Oracle Installar con i seguenti:

Oracle Base = /opt/oracle

Name = OraDb11g_home1

Path = ORACLE_BASE/product/11.1.0/db_1

Location.png

Prerequisite Checks

Fare click su ogni casella di spunta in modo tale che venga forzata la verifica da parte utente ed Oracle non conduca quindi la verifica dei prerequisiti di sistema.

PrerequisiteChecks.png

Configuration options

Selezionare l'opzione "Create a Database" e non quindi quella di default "Install Software Only"

Privileged Operating System Groups

Selezionare il gruppo dba per ognuno dei tre tipi di amministratori: OSDBA, OSOPER, OSASM

Summary Oracle Database 11g

Le informazioni più significative relative alla schermata riassuntiva dell'installazione sono le seguenti:

  • Source: `/home/oracle/database/stage/products.xml
  • Oracle Base: /opt/oracle

  • Oracle Home: /opt/oracle/product/11.1.0/db_1(OraDb11g_home1)

  • Installation Type: Enterprise Edition
  • Product Languages: English

Execute Configuration scripts

Viene richiesto di lanciare gli script di cui all'immagine riportata di seguito come utente root

ConfigScripts.png

La finestra terminale a seguito dell'esecuzione dovrebbe risultare simile alla seguente

jaft@laptop:~$ sudo su 
[sudo] password for jaft: 
root@laptop:/home/jaft# cd /opt/oracle/product/oraInventory 
root@laptop:/opt/oracle/product/oraInventory# . orainstRoot.sh 
Changing permissions of /opt/oracle/product/oraInventory to 770. 
Changing groupname of /opt/oracle/product/oraInventory to oinstall. 
The execution of the script is complete 
root@laptop:/opt/oracle/product/oraInventory# cd 
root@laptop:~# cd /opt/oracle/product/11.1.0/db_1/ 
root@laptop:/opt/oracle/product/11.1.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.1.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.1.0/db_1# 

Database Configuration Assistant

Di seguito la maschera riassuntiva a seguito dell'installazione del database

DBConfigAssistant.png

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.1.0/db_1/network/admin$ chmod o=r tnsnames.ora
oracle@laptop:/opt/oracle/product/11.1.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.1.0/db_1/network/admin/sqlnet.ora 
# Generated by Oracle configuration tools. 

NAMES.DIRECTORY_PATH= (TNSNAMES) 

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.1.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) 
      (SID = 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.1.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.1.0.6.0 - Production on 08-OCT-2008 22:43:16

Copyright (c) 1991, 2007, Oracle.  All rights reserved.

Starting /opt/oracle/product/11.1.0/db_1/bin/tnslsnr: please wait...

TNSLSNR for Linux: Version 11.1.0.6.0 - Production
System parameter file is /opt/oracle/product/11.1.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.1.0.6.0 - Production
Start Date                08-OCT-2008 22:43:16
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.1.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.1.0.6.0 - Production on Thu Sep 18 23:06:09 2008 
Copyright (c) 1982, 2007, 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 1489829888 bytes 
Fixed Size                  1300016 bytes 
Variable Size             872417744 bytes 
Database Buffers          603979776 bytes 
Redo Buffers               12132352 bytes 
Database mounted. 
Database opened. 

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 

SQL*Plus: Release 11.1.0.6.0 - Production on Sat Oct 4 03:37:07 2008 
Copyright (c) 1982, 2007, Oracle.  All rights reserved. 

Enter user-name: scott/tiger@orcl.world 
Connected to: 
Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 - Production 
With the Partitioning, OLAP, Data Mining 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.1.0.6.0 
Copyright (c) 1996, 2007 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.1.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.

Ulteriori risorse


CategoryHomepage