#format wiki #LANGUAGE it <
> <> <> = 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 [[http://it.wikipedia.org/wiki/DBMS|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 [[http://it.wikipedia.org/wiki/DBMS|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 [[http://www.pythian.com/blogs/968/installing-oracle-11g-on-ubuntu-804-lts-hardy-heron|Pythian Remote DBA]] o [[http://www.plsql.it/InstallazioniUbuntu.htm|Plsql.it]] = Passo 1. Aggiornamento di Ubuntu = 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''' e configurazione della '''shell''' == Installazione del sistema operativo == Se non è stato ancora installato '''Ubuntu 8.04 LTS Desktop Edition''' occorre procedere alla relativa [[http://wiki.ubuntu-it.org/Installazione|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 }}} A titolo di esempio si riporta l'output prodotto dalle due istruzioni, così come risulta dal terminale della macchina su cui è stata condotta l'installazione di Oracle che si documenta in questa guida. {{{ jaft@laptop:~$ sudo su [sudo] password for jaft: root@laptop:/home/jaft# apt-get update Hit http://it.archive.ubuntu.com hardy Release.gpg Hit http://archive.ubuntu.com hardy Release.gpg Hit http://security.ubuntu.com hardy-security Release.gpg Ign http://security.ubuntu.com hardy-security/main Translation-en_US Hit http://archive.ubuntu.com hardy Release Hit http://archive.ubuntu.com hardy/main Sources Ign http://it.archive.ubuntu.com hardy/main Translation-en_US Hit http://archive.ubuntu.com hardy/restricted Sources Ign http://security.ubuntu.com hardy-security/restricted Translation-en_US Ign http://security.ubuntu.com hardy-security/universe Translation-en_US Ign http://security.ubuntu.com hardy-security/multiverse Translation-en_US Hit http://security.ubuntu.com hardy-security Release [...] Reading package lists... Done root@laptop:/home/jaft# apt-get upgrade Reading package lists... Done Building dependency tree Reading state information... Done Calculating upgrade... Done 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. }}} 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 }}} 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: 1. `oinstall` (the Oracle Inventory Group), il gruppo proprietario dell'installazione dei prodotti oracle, che ha conseguentemente anche i diritti di aggiornare ed installare patch 2. `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 3. `nobody`, un gruppo senza privilegi 4. `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 [[http://www.redhat.it/rhel/|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 }}} = 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: * adeguare Ubuntu impostando le risorse necessarie per il corretto funzionamento di Oracle * impostare alcuni accorgimenti nei limiti del sistema operativo * garantire che `limits.conf` venga interpretato nel momento in cui l'utente `oracle` si logga * impostare le variabili di ambiente 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 [[http://www.oracle.com/technology/software/products/database/index.html|pagina]] dedicata al download dei prodotti Oracle scarichiamo il file `.zip` contenente tutti i file necessari all'installazione relativamente a Linux x86 2. copiamo il file scaricato in `/home/oracle` 3. come utente `oracle`, scompattiamo 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 user diverso 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. Dobbiamo cioè avviare '''Oracle Installer''' imponendogli di ignorare i prerequisiti di sistema. Oracle infatti si aspetta che venga montato su Linux RedHat e dobbiamo dunque evitare che venga condotta questo controllo, lanciando l'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. È 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 in lingua inglese e conseguentemente tutti i riferimenti alle schermate di '''Oracle Installer''' vengono riportati in lingua inglese. Infine, il processo di installazione descritto, comprende anche la creazione del database. == 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` {{attachment: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` {{attachment: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. {{attachment: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` {{attachment: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 {{attachment:DBConfigAssistant.png}} = Passo 8. I file sqlnet.ora e tnsnames.ora = Affinché tutti gli utenti Ubuntu della macchina possano connettersi al [[http://it.wikipedia.org/wiki/DBMS|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 da cui è stata documentata la 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 da cui è stata documentata la 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 = Come utente `oracle` lanciamo il `file /etc/init.d/oracle.db` {{{ oracle@laptop:/etc/init.d$ . oracledb start }}} quindi si procedere con l'avvio del database connettendosi come `sys as sysdba` {{{ oracle@laptop:/etc/init.d$ 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. }}} A questo punto è possibile aprire una connessione sul database anche con un altro utente di sistema operativo (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 [[http://maclochlainn.wordpress.com/2008/07/13/untrusted-oracle-enterprise-manager-and-firefox-3/|questo sito]] viene indicata la soluzione al problema.|| = Ulteriori risorse = * Risorsa 1 * Risorsa 2 ## da questo punto in poi non modificare! ---- CategoryHomepage