Come installare Oracle 11g su Ubuntu Linux: guida completa
Oracle Database è un affidabile software di gestione di database multipiattaforma sviluppato da Oracle Corporation. Offre una serie di vantaggi, tra cui elevate prestazioni, ampia funzionalità, supporto dei cluster, supporto PL/SQL ecc. Oracle Database (di seguito denominato “Oracle” in questo post del blog) può essere installato su Solaris, Windows e Linux. L’installazione su Windows è l’opzione più semplice, mentre l’installazione di Oracle su Solaris e Linux richiede una configurazione manuale prima dell’installazione. Per quanto riguarda le distribuzioni Linux, Oracle consiglia di installare Oracle Database su Red Hat, Oracle Linux e SUSE Linux Enterprise Server.
Tuttavia, è possibile installare Oracle anche su Ubuntu Linux e OpenSUSE Linux. Ubuntu è una popolare distribuzione Linux ampiamente utilizzata in tutto il mondo e il post di oggi fornisce istruzioni dettagliate su come installare Oracle su Ubuntu. In questo tutorial installeremo l’edizione Enterprise (EE) del database Oracle 11g R2 su Ubuntu.
Configurazione di Ubuntu Linux
In questo tutorial viene utilizzata una versione appena installata di Ubuntu 16.04.6 . Il sistema operativo è stato installato sulla macchina virtuale VMware senza abilitare l’opzione “ Scarica gli aggiornamenti durante l’installazione di Ubuntu ” e senza utilizzare l’opzione “ Installa software di terze parti ” durante l’implementazione del sistema operativo.
Se non avete mai installato Oracle su Linux in precedenza, dovreste imparare come Installare Oracle su Ubuntu su una VM prima di installare Oracle su un computer fisico o un server.
Se utilizzate una VM VMware, non dimenticate di installare VMware Tools. Potete anche utilizzare VM VirtualBox e Hyper-V.
Assicuratevi di aver selezionato il fuso orario corretto durante l’installazione. Il fuso orario è GMT 0 (Londra) in questo esempio.
È possibile verificare il fuso orario con il comando:
timedatectl
Verificare la versione di Ubuntu:
lsb_release -a
Nel nostro esempio, l’output è il seguente:
In questo tutorial su come installare Oracle 11g su Ubuntu, vengono utilizzati i seguenti parametri hardware della VM:
- CPU: 1 CPU
- RAM: 4 GB
- Disco rigido: 40 GB
user1 è un utente normale in questo esempio ( user1 viene creato durante l’installazione di Ubuntu e viene utilizzato per accedere a Ubuntu).
Sono installati i seguenti pacchetti:
- vim , l’editor di testo
- net-tools , strumenti per la gestione della rete
- openssh-server , il server SSH che consente di connettersi in remoto alla console (terminale) di Linux
Se questi pacchetti non sono installati nel proprio sistema Ubuntu Linux, è possibile installarli utilizzando il comando:
sudo apt-get install -y vim net-tools openssh-server
Il server SSH viene installato per comodità. È necessario eseguire diversi comandi nella console prima di utilizzare il programma di installazione di Oracle su Ubuntu.
Per abilitare l’autenticazione tramite password, modificare il file sshd_config :
vim /etc/ssh/sshd_config
Rimuovere il commento dalla riga (eliminare il simbolo “#” all’inizio della riga):
PasswordAuthentication yes
Salvare le modifiche e uscire premendo il tasto Esc in vim e digitando :wq
Riavviare il servizio (demone) sshd eseguendo il comando con i privilegi di root:
sudo service ssh restart
Configurazione di un file di swap
Ubuntu 16 utilizza una partizione di swap per impostazione predefinita. È possibile personalizzare le dimensioni della partizione di swap durante l’installazione di Ubuntu. Se avete selezionato le opzioni di partizionamento predefinite o avete scelto una dimensione errata per la partizione di swap, potete comunque creare un file di swap di dimensioni personalizzate e utilizzare tale file al posto di una partizione di swap esistente. La dimensione dello swap dovrebbe essere pari al doppio della dimensione della RAM. Se avete intenzione di installare Oracle su Ubuntu con 4 GB di RAM, dovreste preparare un file o una partizione di swap da 8 GB. Creiamo il file di swap da 8 GB.
Disabilitare temporaneamente l’uso dell’area di swap:
sudo swapoff -a
Creare un nuovo file da 8 GB con il dd strumento:
sudo dd if=/dev/zero of=/swapfile bs=1G count=8
Impostare il file da 8 GB appena creato come file di swap:
sudo mkswap /swapfile
Riattivare l’uso dello swap:
sudo swapon /swapfile
Verificare la dimensione dell’area di swap dopo aver creato un nuovo file di swap:
grep SwapTotal /proc/meminfo
Configurazione delle impostazioni di rete
Per impostazione predefinita, Ubuntu 16 ottiene automaticamente un indirizzo IP per un’interfaccia di rete (se nella rete è presente un server DHCP). È necessario impostare un indirizzo IP statico e configurare un nome host prima di poter installare Oracle su Ubuntu.
Verificare la configurazione IP corrente:
ifconfig
Nell’output è possibile vedere i nomi degli adattatori di rete e gli indirizzi IP. Nel nostro caso, il nome dell’adattatore di rete necessario è ens33 .
Configurazione dell’indirizzo IP statico
Modifica il file di configurazione delle interfacce di rete con vim :
sudo vim /etc/network interfaces
L’indirizzo IP statico necessario per l’installazione dell’Oracle Database su Ubuntu è 192.168.101.11 sull’interfaccia corrente della macchina Linux in questo esempio. Modifica il file di configurazione come segue:
# interfaces(5) file used by ifup(8) and ifdown(8)
auto lo
iface lo inet loopback
auto ens33
iface ens33 inet static
address 192.168.101.11
netmask 255.255.255.0
gateway 192.168.101.2
dns-nameservers 192.168.101.2 8.8.8.8
Salva le modifiche ed esci.
Applica le modifiche:
sudo /etc/init.d/networking restart
Oppure riavvia la macchina:
init 6
Verifica che le nuove impostazioni IP siano state applicate:
ifconfig
Oppure:
hostname -I
Dopo aver verificato la configurazione dell’indirizzo IP, controllare il nome host.
Verifica del nome host
Nel nostro caso, il nome host utilizzato per l’installazione di Oracle su Ubuntu è ubuntu-oracle11 .
Verificare il nome host attuale:
hostnamectl
Se avete dimenticato di configurare il nome host durante l’installazione di Ubuntu o desiderate modificarlo per altri motivi, potete comunque farlo.
Per rinominare l’host e impostare un nuovo nome host ( ubuntu-oracle11 ), esegui il comando:
sudo hostnamectl set-hostname ubuntu-oracle11
Verifica se il nuovo nome host è stato applicato:
less /etc/hostname
Modifica il file hosts:
sudo vim /etc/hosts
Il contenuto del file /etc/hosts deve essere simile a questo:
127.0.0.1 localhost
127.0.1.1 ubuntu-oracle11
Riavvia la macchina: init 6
Prova a eseguire il ping del nome host specificato sulla tua macchina Ubuntu:
ping ubuntu-oracle11
Configurazione dell’ambiente per Oracle
Per installare Oracle su Ubuntu, è necessario configurare l’ambiente Linux: creare utenti e gruppi di sistema, configurare i parametri del kernel, impostare un profilo di sistema, impostare le variabili d’ambiente per un utente, definire i limiti della shell, creare collegamenti simbolici e installare i pacchetti obbligatori.
Creazione di utenti e gruppi
Aprire la console locale o connettersi alla console Linux tramite SSH come utente normale, quindi ottenere i privilegi di root :
sudo -i
I comandi riportati di seguito devono essere eseguiti come root .
Aggiungere i gruppi obbligatori per Oracle.
Creare il gruppo Oracle Inventory :
groupadd oinstall
Creare il gruppo Oracle DBA :
groupadd dba
Creare la directory home per l’utente Oracle:
mkdir /home/oracle/
Creare la directory per l’installazione di Oracle:
mkdir -p /u01/app/oracle
Quindi creare l’account utente Oracle che sia membro del gruppo dba , abbia la directory home /home/oracle/ e utilizzi /bin/bash come shell predefinita:
useradd -g oinstall -G dba -d /home/oracle -s /bin/bash oracle
Impostare la password per l’utente oracle (non dimenticare questa password):
passwd oracle
Impostare l’utente oracle come proprietario della directory home di Oracle e della directory di installazione di Oracle. L’utente oracle è membro del gruppo oinstall .
chown -R oracle:oinstall /home/oracle
chown -R oracle:oinstall /u01/app/oracle
Nota : A differenza di Oracle 10, per Oracle 11 non è necessario creare il gruppo nobody .
Creare la directory per l’inventario Oracle:
mkdir -p /u01/app/oraInventory
Impostare l’utente oracle come proprietario della directory dell’inventario Oracle:
chown -R oracle:oinstall /u01/app/oraInventory
Configurazione dei parametri del kernel
Per installare Oracle su Ubuntu sono obbligatori parametri personalizzati del kernel, che influiscono sulle prestazioni di Oracle. I parametri della memoria condivisa, tra cui la dimensione minima e massima, il numero di segmenti di memoria condivisa e i semafori che possono essere considerati come flag per la memoria condivisa, devono essere personalizzati in base alla documentazione Oracle. È inoltre necessario impostare il numero massimo consentito di file che possono essere aperti contemporaneamente, il numero massimo di connessioni di rete simultanee e la dimensione del buffer di invio e ricezione di rete. I parametri del kernel in questione possono essere suddivisi in tre gruppi: specifici del kernel ( kernel ), specifici della rete ( network ) e gestori di file ( fs ). Modificare il file /etc/sysctl.conf per sovrascrivere i parametri del kernel Linux:
vim /etc/sysctl.conf
Aggiungere le righe riportate di seguito alla fine di questo file di configurazione.
# ============================
# Oracle 11g
# ============================
# semaphores: semmsl, semmns, semopm, semmni
kernel.sem = 250 32000 100 128
kernel.shmall = 2097152
kernel.shmmni = 4096
# Replace kernel.shmmax with the half of your memory size in bytes
# if lower than 4 GB minus 1
# 2147483648 is 2 GigaBytes (4 GB of RAM / 2)
kernel.shmmax=2147483648
#
# Max number of network connections. Use sysctl -a | grep ip_local_port_range to check.
net.ipv4.ip_local_port_range = 9000 65500
#
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576
#
# The maximum allowed value, set to avoid overhead and input/output errors
fs.aio-max-nr = 1048576
# 512 * Processes
fs.file-max = 6815744
fs.suid_dumpable = 1
#
# To allow dba to allocate hugetlbfs pages
# 1001 is your oinstall group, you can check this id with the grep oinstall /etc/group command
vm.hugetlb_shm_group = 1001
Applica i parametri del kernel impostati:
sysctl -p
Configurazione dei limiti della shell
È necessario impostare i limiti della shell per migliorare le prestazioni del software dell’Oracle Database.
Modificare il file /etc/security/limits.conf :
vim /etc/security/limits.conf
Aggiungere le seguenti righe alla fine del file di configurazione:
# Oracle
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft stack 10240
La prima colonna specifica l’utente per il quale vengono impostati i limiti.
La seconda colonna prevede due opzioni: soft e hard. Soft indica il numero massimo che può essere impostato dall’utente, mentre hard indica il numero massimo che può essere riconfigurato dall’utente definito (oracle). Se l’utente oracle raggiunge il valore minimo critico di 2047 impostato nella prima riga e ha bisogno di estendere il limite, può aumentarlo fino a 16384. Valori superiori a 16384 non possono essere impostati dall’utente oracle ma possono essere impostati da utente root.
La terza colonna definisce su quali risorse vengono applicati i limiti impostati.
La quarta colonna definisce il numero massimo del parametro della risorsa specificato nella terza colonna.
Configurazione PAM
Assicurarsi che il file di configurazione /etc/pam.d/login contenga la seguente riga:
session required pam_limits.so
È possibile farlo con il comando:
cat /etc/pam.d/login | grep pam_limits.so
Se la riga menzionata manca, aggiungerla manualmente.
Impostazione del profilo della shell
Le variabili d’ambiente a livello di sistema sono impostate nel profilo globale della shell bash, definito nel file di configurazione /etc/profile .
Modifica /etc/profile e imposta alcune impostazioni necessarie per oracle a livello globale e in modo permanente:
vim /etc/profile
Aggiungi le seguenti righe:
if [ $USER = "oracle" ]; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
fi
Nota : È utile sapere quando è possibile utilizzare ciascun file di configurazione della shell, poiché in seguito dovrai configurare un profilo che contenga le variabili d’ambiente per l’utente oracle .
La shell di login di Bash carica la propria configurazione dai seguenti file nell’ordine appropriato:
- /etc/profile
- ~/.bash_profile
- ~/.bash_login
- ~/.profile
/etc/profile può essere considerato come un profilo globale per la shell di login di bash.
./bash_profile viene applicato alle shell di login di bash, ad esempio quando si accede all’interfaccia a riga di comando di Linux direttamente tramite una tastiera collegata a questo computer Linux, oppure quando si apre una nuova sessione di console dopo aver effettuato l’accesso tramite il terminale SSH.
.profile – questo file viene letto da bash e altre shell come sh .
La shell interattiva non di login di Bash carica la configurazione da ~/.bashrc
Ciò significa che se avete già effettuato l’accesso alla vostra macchina Linux (ad esempio, avete effettuato l’accesso a Ubuntu tramite l’interfaccia grafica) e poi avete aperto una nuova finestra della console (terminale), la configurazione della shell, comprese le variabili d’ambiente, viene caricata dal file .bashrc prima che possiate accedere al prompt dei comandi.
La shell Bash non-login e non interattiva carica la configurazione impostata nella variabile d’ambiente $BASH_ENV . La shell non-login e non interattiva viene utilizzata durante l’esecuzione di uno script.
Installazione dei pacchetti obbligatori
È necessario installare i pacchetti obbligatori da Oracle. Prestare attenzione durante l’installazione poiché un pacchetto mancante potrebbe causare errori durante l’installazione di Oracle o la creazione del database.
Aggiornare l’albero dei repository:
apt-get update
Installare i pacchetti per evitare errori che potrebbero verificarsi durante l’installazione di Oracle su Ubuntu. La maggior parte dei pacchetti può essere installata con il gestore di pacchetti standard di Ubuntu dai repository online.
apt-get install alien
apt-get install autoconf
apt-get install automake
apt-get install autotools-dev
apt-get install binutils
apt-get install bzip2
apt-get install doxygen
apt-get install elfutils
apt-get install expat
apt-get install gawk
apt-get install gcc
apt-get install gcc-multilib
apt-get install g++-multilib
apt-get install libelf-dev
apt-get install libltdl-dev
apt-get install libodbcinstq4-1 libodbcinstq4-1:i386
apt-get install libpth-dev
apt-get install libpthread-stubs0-dev
apt-get install libstdc++5
apt-get install make
apt-get install openssh-server
apt-get install rlwrap
apt-get install rpm
apt-get install sysstat
apt-get install unixodbc
apt-get install unixodbc-dev
apt-get install unzip
apt-get install x11-utils
apt-get install zlibc
apt-get install libaio1
apt-get install libaio-dev
Rimangono alcuni pacchetti da installare, ma per farlo sono necessari questi consigli e trucchi.
apt-get install ia32-libs
Quando si esegue il comando per installare questo pacchetto con apt-get , verrà visualizzato un messaggio che indica che il pacchetto non è disponibile.
Esiste un pacchetto alternativo che può essere installato al posto di ia32-libs . Installa il pacchetto alternativo lib32z1 :
apt-get install lib32z1
Installiamo ora il pacchetto avanti:
apt-get install libmotif4
Anche questo pacchetto non è disponibile. È necessario scaricare e installare questo pacchetto manualmente. Scaricare il file libmotif4_2.3.4-8ubuntu1_amd64.deb da risorsa gratuita. Salvare il file deb scaricato in una directory personalizzata, ad esempio /home/user1/Downloads, prima di poter installare questo pacchetto.
La procedura per l’installazione dei pacchetti deb in Ubuntu è la seguente (eseguire i comandi con privilegi di root):
sudo dpkg -i nome_pacchetto.deb
sudo apt-get -f install
In questo caso, si eseguono i comandi per l’installazione dei pacchetti come utente normale, ad esempio, user1 utilizzando sudo . Premere Ctrl+D per uscire dalla sessione utente root e tornare alla user1 sessione nella console (terminale).
Vai alla directory in cui sono memorizzati i file scaricati:
cd /home/user1/Downloads
Scarica il file utilizzando un link diretto:
wget http://launchpadlibrarian.net/207968936/libmotif4_2.3.4-8ubuntu1_amd64.deb
sudo dpkg -i libmotif4_2.3.4-8ubuntu1_amd64.deb
sudo apt-get -f install
Il pacchetto avanti non può essere installato automaticamente:
sudo apt-get install libpthread-stubs0
E: Impossibile individuare il pacchetto libpthread-stubs0
Scarica e installa questo pacchetto manualmente.
wget http://launchpadlibrarian.net/154418307/libpthread-stubs0-dev_0.3-4_amd64.deb
sudo dpkg -i libpthread-stubs0-dev_0.3-4_amd64.deb
sudo apt-get -f install
Installa in modo analogo il pacchetto avanti:
sudo apt-get install lsb-cxx
E: Impossibile individuare il pacchetto lsb-cxx
Puoi scaricare manualmente il lsb-cxx pacchetto.
wget http://packages.linuxmint.com//pool/upstream/l/lsb/lsb-cxx_4.1+Debian11ubuntu6mint1_amd64.deb
sudo dpkg -i lsb-cxx_4.1+Debian11ubuntu6mint1_amd64.deb
sudo apt-get -f install
Installare un altro pacchetto:
sudo apt-get install pdksh
E: Il pacchetto ‘pdksh’ non ha alcun candidato all’installazione
La procedura per l’installazione del pacchetto pdksh è la stessa. Questo pacchetto può essere scaricato da qui.
wget http://launchpadlibrarian.net/200019501/pdksh_50e-2ubuntu1_all.deb
sudo dpkg -i pdksh_50e-2ubuntu1_all.deb
sudo apt-get -f install
Oracle 11g richiede l’installazione della versione a 32 bit del pacchetto libstdc++5 che non viene installata automaticamente su Ubuntu 16. Ecco come è possibile installare manualmente questo pacchetto.
I comandi seguenti vanno eseguiti come root . Creare una directory temporanea per scaricare il pacchetto:
mkdir /tmp/libstdc++5
cd /tmp/libstdc++5
Scaricare il pacchetto (sono riportati i link ai pacchetti a 32 bit e a 64 bit):
wget http://mirrors.edge.kernel.org/ubuntu/pool/universe/g/gcc-3.3/libstdc++5_3.3.6-30_i386.deb
wget http://mirrors.edge.kernel.org/ubuntu/pool/universe/g/gcc-3.3/libstdc++5_3.3.6-30_amd64.deb
Installare i pacchetti scaricati con dpkg :
dpkg --force-architecture -i libstdc++5_3.3.6-30_i386.deb
Nota : Se i link non funzionano, è possibile che siano state pubblicate versioni più recenti dei pacchetti al posto di quelle precedenti. In questo caso, visitare una pagina web nel browser e copiare i link corretti ai pacchetti necessari: deb :
http://mirrors.edge.kernel.org/ubuntu/pool/universe/g/gcc-3.3/
Riavviare la macchina Linux per applicare le modifiche. init 6
Creazione di collegamenti simbolici
È necessario creare collegamenti simbolici (symlink) per rendere la struttura di file e directory utilizzata in Ubuntu simile a quella di Red Hat. Creare i collegamenti simbolici per rendere la struttura del file system identica a quella di Red Hat, al fine di evitare errori durante l’installazione di Oracle.
Eseguire i comandi come root:
mkdir /usr/lib64
ln -s /etc /etc/rc.d
ln -s /usr/bin/awk /bin/awk
ln -s /usr/bin/basename /bin/basename
ln -s /usr/bin/rpm /bin/rpm
ln -s /lib/x86_64-linux-gnu/libgcc_s.so.1 /usr/lib64/
ln -s /usr/lib/x86_64-linux-gnu/libc_nonshared.a /usr/lib64/
ln -s /usr/lib/x86_64-linux-gnu/libpthread_nonshared.a /usr/lib64/
ln -s /usr/lib/x86_64-linux-gnu/libstdc++.so.6 /usr/lib64/
ln -s /usr/lib/x86_64-linux-gnu /usr/lib64
ln -sf /bin/bash /bin/sh
ln -s /etc/rc0.d /etc/rc.d/rc0.d
ln -s /etc/rc2.d /etc/rc.d/rc2.d
ln -s /etc/rc3.d /etc/rc.d/rc3.d
ln -s /etc/rc4.d /etc/rc.d/rc4.d
ln -s /etc/rc5.d /etc/rc.d/rc5.d
ln -s /etc/rc6.d /etc/rc.d/rc6.d
ln -s /etc/init.d /etc/rc.d/init.d
I comandi sopra riportati aiutano a prevenire errori, come ad esempio:
- genclntsh: Impossibile collegare libclntsh.so.11.1 nel file make per rdbms/lib/ins_rdbms.mk a causa della libreria mancante: /usr/bin/ld: impossibile trovare /usr/lib64/libpthread_nonshared.a all’interno di
- lib//libagtsh.so: riferimento non definito a `nnfyboot’ in make: rdbms/lib/dg4odbc] Errore 1
Ora preveniamo un altro errore: /lib64/libgcc_s.so.1: Il file o la directory non esistono, durante la creazione di lib/liborasdkbase.so.11.1 in ins_rdbms.mk . Vai alla /lib64 directory ed esegui il comando:
cd /lib64
ln -s /lib/x86_64-linux-gnu/libgcc_s.so.1 .
Non dimenticare il punto alla fine del comando.
Imposta la versione di Linux come Red Hat Linux release 5 in /etc/redhat-release . Le distribuzioni Red Hat Linux memorizzano la propria versione in quel file.
echo 'Red Hat Linux release 5' > /etc/redhat-release
Configurazione del profilo utente oracle
Ora è necessario configurare l’ambiente utente per l’utente oracle .
Effettuare il login come oracle se si è aperta la console come un altro utente:
su oracle
Eseguire i comandi come oracle :
cd
vim ~/.bashrc
Aggiungere le seguenti righe al file .bashrc :
# Oracle Settings
TMP=/tmp; export TMP
TMPDIR=$TMP; export TMPDIR
# Enter your hostname
ORACLE_HOSTNAME=ubuntu-oracle11; export ORACLE_HOSTNAME
ORACLE_UNQNAME=ORADB11G; export ORACLE_UNQNAME
ORACLE_BASE=/u01/app/oracle; export ORACLE_BASE
ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1; export ORACLE_HOME
ORACLE_SID=ORADB11G; export ORACLE_SID
PATH=/usr/sbin:$PATH; export PATH
PATH=$ORACLE_HOME/bin:$PATH; export PATH
LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib:/usr/lib64; export LD_LIBRARY_PATH
CLASSPATH=$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib; export CLASSPATH
umask 022
Applicare le impostazioni:
source ~/.bashrc
A questo punto è necessario riavviare Ubuntu. Si noti che le impostazioni verranno applicate dopo il riavvio anche senza eseguire source ~/.bashrc.
init 6
Preparazione del programma di installazione di Oracle
Abbiamo quasi completato i preparativi per l’installazione di Oracle. Mancano solo pochi passaggi prima di poter avviare il programma di installazione e installare Oracle su Ubuntu. Dopo aver riavviato la macchina Ubuntu, effettuare l’accesso come oracle nell’interfaccia grafica di Ubuntu.
Aprire un browser web.
Nel nostro esempio, per comodità, i due file scaricati sono stati salvati in /home/oracle/Downloads : linux.x64_11gR2_database_1of2.zip
linux.x64_11gR2_database_2of2.zip
Aprire la console in Ubuntu ed eseguire i seguenti comandi come oracle. Passare alla directory in cui sono memorizzati i file scaricati:
cd /home/oracle/Downloads
oppure cd ~/Downloads/
Decomprimere i file di installazione dagli archivi zip scaricati:
unzip linux.x64_11gR2_database_1of2.zip
unzip linux.x64_11gR2_database_2of2.zip
I file estratti sono memorizzati in:
/home/oracle/Downloads/database
Ora sei pronto per eseguire il programma di installazione e installare Oracle su Ubuntu.
Installazione di Oracle
Vai alla directory in cui sono stati scaricati i file di installazione. Esegui i comandi come oracle nella console avviata nella sessione GUI.
cd /home/oracle/Downloads/database
Esegui il programma di installazione di Oracle:
./runInstaller
1. Configura gli aggiornamenti di sicurezza
Deseleziona la casella di controllo “ Desidero ricevere gli aggiornamenti di sicurezza tramite My Oracle Support ”.
Fai clic su Avanti per passare al passaggio successivo della procedura guidata di installazione di Oracle.
Verrà visualizzato il messaggio: Non è stato fornito un indirizzo e-mail. Si desidera non essere informati su problemi critici di sicurezza nella propria configurazione? Ignorare questo messaggio e selezionare Sì .
2. Opzioni di installazione
Selezionare Crea e configura un database .
3. Classe di sistema
Selezionare Classe server , che è un’opzione avanzata per l’installazione del database Oracle su Ubuntu.
4. Opzioni di griglia
Selezionare Installazione del database a istanza singola come tipo di installazione del database.
5. Tipo di installazione
Selezionare Installazione avanzata come tipo di installazione. Questa opzione consente di impostare password, set di caratteri, lingue, opzioni di storage, ecc.
6. Lingue del prodotto
Selezionare le lingue necessarie. In questo esempio, Inglese e Inglese (Regno Unito) sono selezionati.
7. Edizione del database
Selezionare Enterprise Edition per il database che si intende installare.
8. Selezionare l’ubicazione di base di Oracle
Di solito vengono utilizzate la directory di base di Oracle e la directory home di Oracle.
Base Oracle: /u01/app/oracle
Posizione del software: /u01/app/oracle/product/11.2.0/dbhome_1
9. Creare l’inventario
La directory utilizzata per archiviare i file di installazione di Oracle è denominata “directory di inventario Oracle”.
Directory di inventario: /u01/app/oraInventory
oraInventory Nome del gruppo: oinstall
10. Tipo di configurazione
Selezionare il tipo di database che si desidera creare:
Uso generico / Elaborazione delle transazioni
11. Identificatori del database
È possibile definire lo stesso valore per il nome del database globale e per l’identificatore di servizio Oracle.
Nome del database globale: ORADB11G
Identificatore di servizio Oracle (SID): ORADB11G
12. Opzioni di configurazione
In questa fase sono presenti quattro schede. È possibile impostare la configurazione in ciascuna scheda come segue:
Memoria: Abilitare la gestione automatica della memoria (impostazione predefinita).
Set di caratteri: Utilizza Unicode (AL32UTF8).
Sicurezza: Applica tutte le nuove impostazioni di sicurezza (impostazione predefinita).
Schemi di esempio: Crea il database con gli schemi di esempio (tuttavia, è possibile lasciare il valore predefinito).
13. Opzioni di gestione
È possibile lasciare i parametri predefiniti.
14. Storage del database
Leggere le raccomandazioni visualizzate nella finestra e selezionare File system .
Specificare il percorso del file del database: /u01/app/oracle/oradata
15. Backup e ripristino
A questo punto è possibile selezionare l’opzione: Non abilitare i backup automatici (impostazione predefinita).
I backup sono importanti, ma è preferibile configurare i backup del database Oracle dopo aver installato Oracle su Ubuntu.
16. Password dello schema
È possibile selezionare Utilizza la stessa password per tutti gli account . Inserire una password e confermarla.
17. Gruppi del sistema operativo
Leggere la descrizione visualizzata nella finestra e selezionare i gruppi obbligatori.
Gruppo Amministratore del database (OSDBA): dba
Gruppo Operatore del database (OSOPER): oinstall
18. Verifica dei prerequisiti
Ora il programma di installazione di Oracle verifica se la configurazione del sistema soddisfa i prerequisiti. Durante questo passaggio verranno visualizzate delle avvertenze. Il parametro del kernel del sistema operativo semmni è stato configurato in precedenza, ma per questo parametro viene visualizzato lo stato di errore.
Parametro del kernel del sistema operativo: semmni Fallito
È possibile verificare il valore di questo parametro per assicurarsi che tutto sia corretto. Verificare il parametro semmni con il comando (da eseguire come root): /sbin/sysctl -a | grep sem
kernel.sem = 250 32000 100 128
oppure
cat /proc/sys/kernel/sem
250 32000 100 128
Se l’ultimo valore è pari o superiore a 128, allora è tutto a posto e puoi ignorare questa avvertenza.
Per qualche motivo, lo strumento di verifica dei prerequisiti di Oracle non è in grado di determinare se il parametro semmni sia corretto e se i pacchetti obbligatori siano installati. Se il contenuto della finestra “Verifica dei prerequisiti” è simile a quello mostrato nella schermata sopra, selezionare la casella di controllo Ignora tutto e fare clic su Avanti per continuare.
19. Riepilogo
Controllare il riepilogo della configurazione per assicurarsi di aver configurato tutte le impostazioni come richiesto. È possibile salvare il file di risposta ( db.rsp ) poiché potrebbe tornare utile quando si deve installare Oracle su più macchine Linux o se si intende installare Oracle su Ubuntu Server senza l’interfaccia grafica.
Ora è possibile effettuare il monitoraggio di come il programma di installazione di Oracle sta copiando i file fino a quando il programma di installazione non procede alla fase Collegamento dei binari .
Collegamento dei binari per Oracle Database: risoluzione degli errori di collegamento e compilazione
Questa fase è una delle più complesse dell’installazione dell’Oracle Database su Ubuntu Linux. La probabilità di incorrere in errori in questa fase è elevata. Nell’esempio attuale, si verifica il seguente errore quando si installa Oracle 11g su Ubuntu 16:
Errore durante l’esecuzione della destinazione ‘install’ del makefile ‘/u01/app/oracle/product/11.2.0/dbhome_1/ctx/lib/ins_ctx.mk’. Per i dettagli, consultare ‘/u01/app/oraInventory/logs/installActions2020-01-22_12-53-06PM.log’ .
Si noti che errori simili possono verificarsi anche se si installa Oracle su Oracle Linux. Il nome del file di log dovrebbe essere diverso.
Nota : I file con .mk estensione sono file makefile e vengono utilizzati per compilare i programmi. Un makefile determina quali “parti” del programma devono essere compilate e quali file del programma devono essere compilati e collegati tra loro. Alcuni componenti del software Oracle sono scritti in Java (ad esempio, Oracle Universal Installer, che dispone di un’interfaccia grafica) e altri in C. I componenti scritti in Java devono essere interpretati senza compilazione (Java è multipiattaforma), mentre quelli scritti in C devono essere compilati; il collegamento dei file binari e delle librerie costituisce la fase obbligatoria di questo processo. Oracle utilizza questo approccio per garantire una maggiore flessibilità e consentire l’installazione di Oracle su diversi sistemi operativi (Windows, Linux, Solaris). Un altro vantaggio è la dimensione ridotta del programma di installazione. Lo svantaggio è che potrebbero verificarsi errori nella fase di collegamento dei file binari durante il processo di installazione di Oracle. Nella maggior parte dei casi, per risolvere i problemi di collegamento è necessario aggiungere i flag appropriati modificando i file .mk .
Scopriamo come risolvere gli errori di collegamento dei file binari che si verificano durante l’installazione dell’Oracle Database su Ubuntu Linux.
Effettuare l’accesso come oracle tramite SSH alla macchina Ubuntu e controllare il file di log:
tail -n 100 /u01/app/oraInventory/logs/installActions2020-01-22_12-53-06PM.log
Durante la lettura dell’output del log, prestare attenzione alla riga che descrive l’errore.
INFO: /u01/app/oracle/product/11.2.0/dbhome_1/ctx/lib/ins_ctx.mk:11: la ricetta per la destinazione ‘ctxhx’ ha dato esito negativo
ins_ctx.mk:11 rimanda alla riga 11 del file ins_ctx.mk .
Apriamo il file ins_ctx.mk e controlliamo la riga 11 di quel file.
vim /u01/app/oracle/product/11.2.0/dbhome_1/ctx/lib/ins_ctx.mk
Nella modalità di navigazione di vim digita :set number per visualizzare i numeri di riga.
Cerchiamo la riga numero 11.
Quando si utilizza la modalità di navigazione in vim , è possibile trovare la stringa desiderata con il comando:
/LINK_CTXHX
Modifica la seguente sezione:
ctxhx: $(CTXHXOBJ)
$(LINK_CTXHX) $(CTXHXOBJ) $(INSO_LINK)
La riga numero 11 deve essere modificata come segue:
-static $(LINK_CTXHX) $(CTXHXOBJ) $(INSO_LINK) /usr/lib64/stdc.a
Salvare il ins_ctx.mk e uscire da vim .
Ora tornare alla finestra di errore dell’installazione di Oracle e fare clic su Riprova .
Il processo di installazione prosegue, ma dopo pochi secondi viene visualizzato un altro errore durante Compilazione delle librerie dell’agente :
Errore durante l’invocazione della destinazione ‘agent nmhs’ del makefile ‘/u01/app/oracle/product/11.2.0/dbhome_1/sysman/lib/ins_emagent.mk’.
Eseguire i seguenti comandi come oracle per risolvere il problema:
export ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1
sed -i 's/^(s*$(MK_EMAGENT_NMECTL))s*$/1 -lnnz11/g' $ORACLE_HOME/sysman/lib/ins_emagent.mk
Nota: sed è un editor di testo a flusso utilizzato per risparmiare tempo nella modifica dei file .mk rispetto alla modifica con vim o altri editor di testo interattivi.
Dopo aver eseguito i due comandi sopra indicati, fare clic su Riprova nella finestra di errore dell’installazione di Oracle Database. Si noterà che l’errore è stato risolto e che l’installazione di Oracle Database su Ubuntu Linux sta procedendo. Tuttavia, dopo pochi secondi si verifica un altro errore durante Collegamento degli eseguibili RDBMS : Errore durante l’esecuzione della destinazione ‘all_no_orcl’ del makefile ‘/u01/app/oracle/product/11.2.0/dbhome_1/rdbms/lib/ins_rdbms.mk’.
Eseguire i seguenti comandi come oracle per correggere questo errore e alcuni altri simili:
export ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1
cd $ORACLE_HOME/lib
ln -s libclient11.a libagtsh.a
$ORACLE_HOME/bin/genagtsh $ORACLE_HOME/lib/libagtsh.so 1.0
sed -i 's/^($LD $LD_RUNTIME) ($LD_OPT)/1 -Wl,--no-as-needed 2/g' $ORACLE_HOME/bin/genorasdksh
sed -i 's/^(s*)($(OCRLIBS_DEFAULT))/1 -Wl,--no-as-needed 2/g' $ORACLE_HOME/srvm/lib/ins_srvm.mk
sed -i 's/^(TNSLSNR_LINKLINE.*$(TNSLSNR_OFILES)) ($(LINKTTLIBS))/1 -Wl,--no-as-needed 2/g' $ORACLE_HOME/network/lib/env_network.mk
sed -i 's/^(ORACLE_LINKLINE.*$(ORACLE_LINKER)) ($(PL_FLAGS))/1 -Wl,--no-as-needed 2/g' $ORACLE_HOME/rdbms/lib/env_rdbms.mk
Quindi tornare alla finestra di errore e fare clic su Riprova . Ora il processo di installazione dovrebbe riprendere senza errori.
Oracle Database Configuration Assistant (DBCA) si aprirà dopo aver superato la fase Collegamento dei binari .
Esecuzione degli script di configurazione
Siamo quasi al traguardo dell’installazione del database Oracle su Ubuntu.
Esegui questi due script come root :
/u01/app/oraInventory/orainstRoot.sh
/u01/app/oracle/product/11.2.0/dbhome_1/root.sh
Nello screenshot qui sotto puoi vedere che gli script sono stati eseguiti con successo.
L’installazione del database Oracle è andata a buon fine .
Se viene visualizzata questa notifica, è possibile chiudere la finestra del programma di installazione di Oracle.
Verificare che Oracle sia in esecuzione su Ubuntu
Aprire un browser web sul computer Ubuntu su cui è in esecuzione Oracle e verificare se Oracle è in esecuzione aprendo l’interfaccia web di Oracle Database Control Manager. Per farlo, è possibile utilizzare i seguenti link:
https://localhost:1158/em
https://ubuntu-oracle11:1158/em
https://192.168.101.11:1158/em
È inoltre possibile provare a connettersi al computer Ubuntu su cui è in esecuzione Oracle da un altro host della rete.
Definire i parametri di connessione.
Nome utente : SYS
Password : La password impostata durante l’installazione di Oracle
Connettiti come : SYSDBA
Di seguito è possibile vedere la schermata di Oracle Enterprise Manager quando Oracle è in esecuzione correttamente.
Configurazione post-installazione di Oracle
Oracle è ora installato e ora dovremmo configurare il database in modo che si avvii automaticamente all’avvio di Ubuntu. È necessario modificare il /etc/oratab file di configurazione per impostare l’avvio di Oracle all’avvio del sistema.
Eseguire il comando come utente root.
vim /etc/oratab
Sostituire N con Y alla fine della riga:
ORADB11G:/u01/app/oracle/product/11.2.0/dbhome_1:Y
Comandi utili
Prima di impostare l’avvio automatico di Oracle, è necessario comprendere come avviare manualmente i componenti di Oracle. Ciò sarà utile anche per la diagnostica. Eseguire questi comandi come utente oracle .
Avviare il database:
$ORACLE_HOME/bin/dbstart $ORACLE_HOME
Arrestare il database: $ORACLE_HOME/bin/dbshut $ORACLE_HOME
Avviare Database Control Enterprise Manager, che fornisce un’interfaccia web per il controllo del database:
emctl start dbconsole
Arrestare Database Control Manager:
emctl stop dbconsole
Verificare lo stato di Database Control Manager:
emctl status dbconsole
Avviare il listener:
$ORACLE_HOME/bin/lsnrctl start
Arrestare il listener:
$ORACLE_HOME/bin/lsnrctl stop
Verificare lo stato del listener:
$ORACLE_HOME/bin/lsnrctl status
Avviare il Database Configuration Assistant (nella shell GUI, non nella console SSH):
dbca
È possibile configurare il listener Oracle modificando il file:
vim $ORACLE_HOME/network/admin/listener.ora
Connessione al database nella console:
sqlplus / as sysdba;
Creazione di uno script di avvio per Oracle in Ubuntu
Vediamo come impostare l’avvio automatico di Oracle all’avvio di Ubuntu. Dopo aver modificato /etc/oratab , è necessario creare uno script di avvio nella directory /etc/init.d/ .
Creare il nuovo file dello script di avvio di Oracle in Ubuntu (eseguire il comando come root ):
vim /etc/init.d/oracle
Aggiungere il seguente contenuto a quel file:
#!/bin/bash
#
# Run-level Startup script for the Oracle Instance and Listener
#
### BEGIN INIT INFO
# Provides: Oracle
# Required-Start: $remote_fs $syslog
# Required-Stop: $remote_fs $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Startup/Shutdown Oracle listener and instance
### END INIT INFO
#ORACLE_UNQNAME="ORADB11G"
#export $ORACLE_UNQNAME
echo "ORACLE_UNQNAME is $ORACLE_UNQNAME"
ORACLE_HOME="/u01/app/oracle/product/11.2.0/dbhome_1"
ORACLE_OWNR="oracle"
# if the executables do not exist -- display error
if [ ! -f $ORACLE_HOME/bin/dbstart -o ! -d $ORACLE_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: "
echo "dbstart"
source "/home/oracle/.bashrc" && su $ORACLE_OWNR -c "$ORACLE_HOME/bin/dbstart $ORACLE_HOME"
echo "lsnrctl start"
source "/home/oracle/.bashrc" && su $ORACLE_OWNR -c "$ORACLE_HOME/bin/lsnrctl start"
#Optional : for Enterprise Manager software only
echo "emctl start dbconsole"
source "/home/oracle/.bashrc" && su $ORACLE_OWNR -c "$ORACLE_HOME/bin/emctl start dbconsole"
touch /var/lock/oracle
echo "OK - a script has been executed"
;;
stop)
# Oracle listener and instance shutdown
echo -n "Shutdown Oracle: "
#Optional : for Enterprise Manager software only
source "/home/oracle/.bashrc" && su $ORACLE_OWNR -c "$ORAClE_HOME/bin/emctl stop dbconsole"
source "/home/oracle/.bashrc" && su $ORACLE_OWNR -c "$ORACLE_HOME/bin/lsnrctl stop"
source "/home/oracle/.bashrc" && su $ORACLE_OWNR -c "$ORACLE_HOME/bin/dbshut $ORACLE_HOME"
rm -f /var/lock/oracle
echo "OK - a script has been executed"
;;
reload|restart)
$0 stop
$0 start
;;
*)
echo "Usage: $0 start|stop|restart|reload"
exit 1
esac
exit 0
Impostare i permessi corretti:
chown oracle:oinstall /etc/init.d/oracle
chmod 0775 /etc/init.d/oracle
Fai in modo che questo script venga eseguito subito dopo l’avvio del sistema operativo (disponibile per i livelli di esecuzione predefiniti):
update-rc.d oracle defaults
Se necessario, puoi modificare la priorità di avvio.
Esegui lo script per arrestare Oracle (puoi eseguire questo script come root ):
/etc/init.d/oracle stop
Se desideri avviare Oracle, esegui questo script con il comando:
/etc/init.d/oracle start
Nota: Presta attenzione alla riga seguente e alle righe simili nello script di avvio di Oracle:
source "/home/oracle/.bashrc" && su $ORACLE_OWNR -c "$ORACLE_HOME/bin/dbstart $ORACLE_HOME"
Per prima cosa configuriamo la shell in modo che legga le impostazioni memorizzate nel .bashrc profilo di sistema dell’utente oracle comprese variabili quali ORACLE_HOSTNAME , ORACLE_BASE , PATH ecc., necessarie per il corretto funzionamento dei componenti di Oracle. Dopo che le impostazioni bash dell’utente oracle sono state applicate alla sessione corrente della shell, viene eseguito il comando avanti per avviare l’Oracle Database. Qual è la differenza tra su - e su?
user1@nome host:~$ su - username2 – questo comando avvia la sessione della shell da riga di comando come utente selezionato ( username2 ) con le impostazioni dell’utente selezionato ( username2 ), proprio come se si fosse effettuato l’accesso come username2 quando si crea una nuova sessione della shell direttamente (da zero). In questa sessione della shell vengono utilizzate le variabili d’ambiente di username2 .
user1@nome host:~$ su username2 – questo comando avvia la shell da riga di comando come utente selezionato ( username2 ) con le impostazioni dell’utente corrente ( user1 ) e le variabili d’ambiente di user1 vengono ereditate da username2 in questa sessione della shell.
su -c (–command) significa che un comando specificato deve essere eseguito come utente selezionato.
Risoluzione dei problemi
Esaminiamo alcuni possibili problemi che potrebbero verificarsi durante l’installazione di Oracle Database su Ubuntu e vediamo se esistono metodi per risolverli.
ORA-12547: TNS: contatto perso
Il Database Configuration Assistant non riesce a creare un database e si verifica un errore.
ORA-12547: TNS: contatto perso .
I file di log relativi all’operazione in corso hanno l’ubicazione in :
/u01/app/oracle/cfgtoollogs/dbca/ORADB11G
Controlla il file di log:
tail -n 100 /u01/app/oracle/cfgtoollogs/dbca/ORADB11G/cloneDBCreation.log
Presta attenzione a queste stringhe:
oracleORADB11G: errore durante il caricamento delle librerie condivise: libaio.so.1: impossibile aprire il file oggetto condiviso: File o directory inesistente
ORA-12547: TNS: contatto perso
Uno dei motivi per cui viene visualizzato questo messaggio di errore è l’assenza delle librerie relative ai pacchetti appropriati— libaio1 , libaio-dev . Verificate se i pacchetti menzionati sono installati, altrimenti installateli:
sudo apt-get install libaio1
sudo apt-get install libaio-dev
Oracle non si avvia automaticamente all’avvio di Ubuntu
Potrebbe capitare di eseguire lo script come root e visualizzare il messaggio:
“Variabile d’ambiente ORACLE_UNQNAME non definita. Impostare ORACLE_UNQNAME sul nome univoco del database”.
In questa situazione, Oracle non si avvia automaticamente all’avvio di Ubuntu. Se questo messaggio di errore viene visualizzato all’avvio di Oracle Enterprise Manager 11g Database Control, è necessario controllare le variabili d’ambiente.
How to check the ORACLE_UNQNAME?
È possibile controllare ORACLE_UNQNAME (eseguire i comandi come oracle ).
sqlplus / as sysdba;
SQL> SELECT name, db_unique_name FROM v$database;
SQL> exit
Modificare /etc/profile (come root): vim /etc/profile
Aggiungere la riga alla fine del file /etc/profile :
ORACLE_UNQNAME=ORADB11G; export ORACLE_UNQNAME
Riavviare la macchina Ubuntu su cui è installato Oracle.
Ora questo errore non dovrebbe più comparire durante l’esecuzione dello script e Oracle dovrebbe avviarsi dopo aver eseguito manualmente il comando /etc/init.d/oracle start . Tuttavia, Oracle continua a non avviarsi automaticamente all’avvio di Ubuntu Linux. Il motivo di questo problema è che le variabili d’ambiente non sono impostate per la shell in cui viene eseguito lo script. Consulta la spiegazione dello script di avvio di Oracle riportata sopra ed esamina attentamente il tuo script.
È possibile installare Oracle 11g su Ubuntu 18?
Ubuntu 18 dispone di versioni più recenti delle librerie di sistema Linux che sono ampiamente compatibili con Oracle 11g R2. C’è un’alta probabilità che si verifichino errori nella fase di installazione di Oracle relativa a Link Binaries . Ad esempio:
Errore durante l’esecuzione della destinazione ‘links proc gen_pcscfg’ del makefile ‘ u01/app/oracle/product/11.2.0/dbhome_1/precomp/lib/ins_precomp.mk ‘.
Ecco perché in questo tutorial viene utilizzato Ubuntu 16. Naturalmente, puoi provare a installare Oracle 11g su Ubuntu 18, ma preparati ad affrontare alcune difficoltà. Potrebbe essere necessario installare pacchetti e librerie delle versioni precedenti, effettuando così un downgrade del sistema operativo Ubuntu.
La procedura di installazione dell’Oracle Database su Ubuntu 18 è simile a quella su Ubuntu 16 (per Oracle 11g R2 EE). Nella fase Link Binaries in cui si verificano errori, è necessario analizzare i log, consultare la documentazione e correggere gli errori di collegamento.
Il seguente comando può essere utile per ricollegare manualmente le librerie dopo aver modificato i file:
$ORACLE_HOME/bin/relink all
Conclusione
Questo post del blog vi ha guidato attraverso l’installazione di Oracle 11g R2 Enterprise Edition, che è un processo molto più complesso rispetto all’installazione di Oracle XE (Express Edition). L’installazione del database Oracle su Ubuntu richiede la configurazione manuale dei file e dei parametri di sistema.
Installare Oracle su Ubuntu Linux non è un compito facile, ma Oracle Enterprise Edition offre molti vantaggi. Le fasi dell’installazione di Oracle che richiedono maggiore attenzione da parte vostra sono l’installazione dei pacchetti Ubuntu, il collegamento dei file binari e la creazione di uno script di avvio. Se le vostre versioni di Ubuntu e Oracle corrispondono a quelle utilizzate in questo articolo, seguite la guida passo passo per un’installazione corretta di Oracle. Dopo l’implementazione del Oracle Database, non dimenticate di eseguire i backup.







































