Installazione Oracle Database 11gR2 su Red Hat Enterprise Linux 5 /Centos 7
La presente guida ĆØ stata realizzata a partire dal manuale di installazione reperibile dal sito Oracle al presente link. Attenzione si tratta di installazione single instance.
L'installazione puĆ² essere organizzata in quattro macro-passi:
1) Prerequisiti: configurazione parametri del kernel, memoria, utenze e variabili d'ambiente oracle_home, oracle_base e oralce_sid.
2) OUI : Oralce Universal Installer che installa il motore oracle e produce il file Response.
3) NETCA: Net Configuration Assistant che installa il listener e crea il file Listener.ora.
4) DBCA: Database Configuration Assistant che installa datafile, control file e redolog file e crea il file Spfile<sid>.ora.
1 - P R E R E Q U I S I T I
Spazio Disco
Memoria
Minimo 1 GB di RAM ma consigliato piĆ¹ di 2 GB.
Per determinare la dimensione della ram eseguire il comando:
# grep MemTotal /proc/meminfo
Swap space
Lo Swap che ĆØ uno spazio dell’ hard disk utilizzato per estendere la RAM; ovviamente si deve evitare di usarlo, dato che l’accesso ai dati ĆØ tramite I/O e non di cache.
Questa ĆØ la relazione tra Ram e Swap.
Versione del Sistema Operativo
Shared Memor
[root@localhost ~]#df -k /dev/shm/
Filesystem 1K-blocks Used Available Use% Mounted on
tmpfs 778520 0 778520 0% /dev/shm
La shared memory dovrebbe essere dimensionata per essere almeno grande quanto la MEMORY_MAX_TARGET e MEMORY_TARGET per ogni istanza oracle.
Per aumentare la dimensione eseguire i comandi seguenti:
mount -t tmpfs tmpfs -o size=7g /dev/shm
Modificare vi /etc/fstab come segue:
#tmpfs /dev/shm tmpfs defaults 0 0
tmpfs /dev/shm tmpfs size=7g 0 0
mount -a
Pacchetti
su Red Hat Enterprise Linux 5
rpm -ivh binutils-2.17.50.0.6-12.el5.x86_64.rpm
rpm -ivh compat-libstdc++-33-3.2.3-61.x86_64.rpm
elfutils-libelf-0.125
elfutils-libelf-devel-0.125
elfutils-libelf-devel-static-0.125
gcc-4.1.2
gcc-c++-4.1.2
glibc-2.5-24
glibc-common-2.5
glibc-devel-2.5
glibc-headers-2.5
kernel-headers-2.6.18
ksh-20060214
libaio-0.3.106
libaio-devel-0.3.106
libgcc-4.1.2
libgomp-4.1.2
libstdc++-4.1.2
libstdc++-devel-4.1.2
make-3.81
sysstat-7.0.2
Esempio
Ad esempio se manca libaio-0.3.105 (i386) cercare
# yum search libaio
Esempio
# yum install libaio.i686
--------------------Nel caso di so Oracle Linux ------------
utilizzare i pacchetti offerti dal repository "Oracle Public Yum".
Andare come root sotto /etc/yum.repos.d e scaricare il file di configurazione repo.
DopodichĆ© lanciare il camando yum seguente per installare tutti i necessari pĆØrerequisiti.
# yum install oracle-rdbms-server-11gR2-preinstall
Eseguire
Come root accedere a /usr/sbin ed eseguire il comando
[root@localhost sbin]# useradd -g oinstall -G dba oracle
Questo comando crea l'utente oracle (che serve per eseguire l'installazione) e lo associa al gruppo primario oinstall e secondario dba.
Verifica
[root@localhost sbin]# id oracle
uid=501(oracle) gid=501(oinstall) groups=501(oinstall),502(dba)
Cambiamo la password per l'utente oralce:
[root@localhost sbin]# passwd oracle
Creare le directory
La directory Oracle Base deve essere almeno di 4 GB.
# mkdir -p /u01/app/
Cambiamo proprietario, che ora ĆØ root, in oracle.
[root@localhost oracle]# chown -R oracle:oinstall /u01
Cambiamo i permessi:
[root@localhost oracle]# chmod -R 775 /u01
[root@localhost u01]# ls -lrt
drwxrwxr-x 2 oracle oinstall 4096 Jan 8 09:20 app
La directory /tmp deve avere alemo 1 GB di spazio libero:
df -h /tmp
Se necessario crearla sotto una direcroty
[root@localhost ~]# mkdir /u01/tmp
[root@localhost u01]# ll
drwxr-xr-x 2 root root 4096 Jan 8 09:57 tmp
Cambiamo i permessi:
[root@localhost u01]# chmod a+wr /u01/tmp
[root@localhost u01]# ll
drwxrwxrwx 2 root root 4096 Jan 8 09:57 tmp
Configurare Kernel Parameters del sistema operativo
Di seguito i valori minini ammessi:
# cd /proc/sys/kernel/
Oracle Global Customer Support officially recommends a " maximum" for SHMMAX of "1/2 of physical RAM". The maximum size of a shared memory segment is limited by the size of the available user address space. On 64-bit systems, this is a theoretical 2^64bytes. So the "theoretical limit" for SHMMAX is the amount of physical RAM that you have. However, to actually attempt to use such a value could potentially lead to a situation where no system memory is available for anything else. Therefore a more realistic "physical limit" for SHMMAX would probably be "physical RAM - 2Gb".
In an Oracle RDBMS application, this "physical limit" still leaves inadequate system memory for other necessary functions. Therefore, the common "Oracle maximum" for SHMMAX that you will often see is "1/2 of physical RAM". Many Oracle customers chose a higher fraction, at their discretion.
Se il valore corrente di un parametro ĆØ superiore al valore consigliato non modificare il valore di tale parametro, in caso contrario aggiugere al file sysctl.conf le linee solo per i valori dei paramtrei del kernel da cambiare.
Nell'esempio:
[root@localhost ~]# vi /etc/sysctl.conf
......
### parametri db
Questi sono i valori minimi ammessi: Soft and Hard limits.
Se non sono soddisfatti i requisiti, entrare come root e aggiungere le seguenti linee al file /etc/security/limits.conf
# End of file
oracle soft nofile 1024
oracle hard nofile 65536
Restart della network per essere sicuri che i cambiamenti sia presistenti al reboot.
Variabili d'ambiente
Accedere come oracle
# su - oracle
Per rendere consistente le variabili d'ambiente modificare il file .bash_profile sotto la home dell'utente oracle.
su - oracle
# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
# User specific environment and startup programs
Per rendere la modifica consistente:
[oracle@dbserver1 ~]$ . ./.bash_profile
Nota: Come si legger il comando PATH=$PATH:/usr/sbin ?
Alla variabile PATH aggiungi a ciĆ² che ĆØ giĆ definito ($PATH) un nuova nuova directory /usr/bin.
Verificare che le variabili d'ambiente ORACLE_HOME e TNS_ADMIN siano non settate prima di lanciare runInstaller.
unset ORACLE_HOME
unset TNS_ADMIN
[root@coslab02 ~]$ xhost +
Accedere come oracle al server
[oracle@coslab02 ~]$ export DISPLAY=local_host:0.0
local_host ĆØ host name o IP address della workstation dove si vuole vedere il display dell' Installer.
[root@coslab02 ~]# yum install xclock
[oracle@dbserver1 ~]$ xclock
Funziona se appare l'orologio a video.
Il server su cui si sta effettuando l'installazione del db e la workstation su cui ĆØ avviato il server X comunicano tramite protocollo TCP sulla porta 6000
netstat -nap | grep 6000
Download del software
Scaricare dal sito oracle i due file compressi "Oracle 11gR2" versione Linux x86-64
Dopo aver effettuato l'unzip dei file verrĆ creata una directory database
2 - O U I - Oracle Universal Installer
Per lanciare l'installer collegarsi direttamente come oracle e quindi connettersi in ssh al server con utenza oracle.
libaio-0.3.105 (i386)
compat-libstdc++-33-3.2.3 (i386)
libaio-devel-0.3.105 (i386)
libgcc-3.4.6 (i386)
libstdc++-3.4.6 (i386)
unixODBC-2.2.11 (i386)
unixODBC-devel-2.2.11 (i386)
pdksh-5.2.14
L'installazione termina con il lancio di due script come root.
# /u01/app/oraInventory/orainstRoot.sh
# /u01/app/oracle/product/11.2.0/dbhome_1/root.sh
[oracle@dbserver1 dbhome_1]$ . oraenv
ORACLE_SID = [oracle] ? sales
ORACLE_HOME = [/home/oracle] ? /u01/app/oracle/product/11.2.0/dbhome_1
Mi ĆØ comparso il messaggio:
ORACLE_BASE environment variable is not being set since this information is not available for the current user ID oracle.
You can set ORACLE_BASE manually if it is required.
Ho definito la variabile d'ambiente:
[oracle@dbserver1 dbhome_1]$ ORACLE_BASE=/u01/app/oracle
[oracle@dbserver1 dbhome_1]$ export ORACLE_BASE
----------------------------------------------------------------------------------
Alla fine della istallazione viene creato il file Reponse che ĆØ un file di testo editabile mediante un editor di testo e che puĆ² essere fatto girare anche su altre macchine.
3 - N E T C A - Oracle Net Configuration Assistant
E' un interfaccia grafica che permette di creare, aggiungere, modificare un listener.
4 - D B C A - Database Configuration Assistant
Prima di avviare l'utility Database Configuration Assistant attivare il listener con il comando:
Se si popola “Archive Log Destinations” viene popolato il parametro log_archive_dest_1 e quindi gli archivelog non vengono piĆ¹ scritti nella Flash Recovery Area.
Per aver la lingua Italiana scegliere anche il Territorio Italy se previsto dai requisiti tecnici.
Cambiare il National Character Set se previsto dai requisiti tecnici.
Impostare Connection Mode = Dedicated Server Mode
SQL> select current_utilization, limit_value , resource_name
from v$resource_limit
where resource_name in ('processes');
5 - Impostare le variabili di ambiente se il comando sqlplus o lsnrctl non ĆØ trovato.
Posizionarsi sotto la directory di lancio dei comandi.
# cd $ORACLE_HOME/bin
[oracle@coslab02 bin]$ sqlplus
-bash: sqlplus: command not found
[oracle@coslab02 bin]$ lsnrctl
-bash: lsnrctl: command not found
Impostare la variabile path.
[oracle@coslab02 bin]$ PATH=$PATH:$ORACLE_HOME/bin
[oracle@coslab02 bin]$ export PATH
Modificare il file .bash_profile sotto la oracle home dell'utente.
Applichiamo la patch p13390677 per effettuare l'upgrade dalla versione 11.2.0.1 a 11.2.0.4Vedere post a questo link
L'installazione puĆ² essere organizzata in quattro macro-passi:
1) Prerequisiti: configurazione parametri del kernel, memoria, utenze e variabili d'ambiente oracle_home, oracle_base e oralce_sid.
2) OUI : Oralce Universal Installer che installa il motore oracle e produce il file Response.
3) NETCA: Net Configuration Assistant che installa il listener e crea il file Listener.ora.
4) DBCA: Database Configuration Assistant che installa datafile, control file e redolog file e crea il file Spfile<sid>.ora.
1 - P R E R E Q U I S I T I
Disabilitare Selinux e il Firewall
# systemctl stop firewalld
# systemctl disable firewalld
vi /etc/selinux/config
Impostare SELINUX=permissive
Riavviare il server o eseguire il comando
# setenforce Permissive
Per l'installazione Enterprise Edition sono richiesti 6,4 GB = 4.7GB per il software + 1,7GB per i datafiles.
Teporary Direcoty
/tmp deve essere almeno di 1 GB
#df -h /tmpMemoria
Minimo 1 GB di RAM ma consigliato piĆ¹ di 2 GB.
Per determinare la dimensione della ram eseguire il comando:
# grep MemTotal /proc/meminfo
Swap space
Lo Swap che ĆØ uno spazio dell’ hard disk utilizzato per estendere la RAM; ovviamente si deve evitare di usarlo, dato che l’accesso ai dati ĆØ tramite I/O e non di cache.
# grep SwapTotal /proc/meminfo
Questa ĆØ la relazione tra Ram e Swap.
Per vedere la dimensione di entrambe usare il comando:
# free
# free
total used free shared buff/cache available
Mem: 8009348 159644 7688476 8992 161228 7627564
Swap: 5242876 0 5242876
Versione del Sistema Operativo
# cat /proc/version
Linux version 3.10.0-1127.19.1.el7.x86_64 (mockbuild@kbuilder.bsys.centos.org) (gcc version 4.8.5 20150623 (Red Hat 4.8.5-39) (GCC) ) #1 SMP Tue Aug 25 17:23:54 UTC 2020
Ricaviamo l'informazione che ĆØ un Linux x86 a 64 bit.
Parametri del Kernel
# uname - r
3.10.0-1127.19.1.el7.x86_64
# cat /etc/redhat-release
CentOS Linux release 7.8.2003 (Core)
Va bene perchƩ nel caso di Red Hat Enterprise Linux 7 deve essere:
3.10.0-54.0.1.el7.x86_64 o superiore.
3.10.0-54.0.1.el7.x86_64 o superiore.
Vedi link Database Quick Installation Guide con riferimento al paragrafo 4.1 e 4.2
Shared Memor
[root@localhost ~]#df -k /dev/shm/
Filesystem 1K-blocks Used Available Use% Mounted on
tmpfs 778520 0 778520 0% /dev/shm
La shared memory dovrebbe essere dimensionata per essere almeno grande quanto la MEMORY_MAX_TARGET e MEMORY_TARGET per ogni istanza oracle.
Per aumentare la dimensione eseguire i comandi seguenti:
mount -t tmpfs tmpfs -o size=7g /dev/shm
Modificare vi /etc/fstab come segue:
#tmpfs /dev/shm tmpfs defaults 0 0
tmpfs /dev/shm tmpfs size=7g 0 0
mount -a
Pacchetti
su Red Hat Enterprise Linux 5
rpm -ivh binutils-2.17.50.0.6-12.el5.x86_64.rpm
rpm -ivh compat-libstdc++-33-3.2.3-61.x86_64.rpm
elfutils-libelf-0.125
elfutils-libelf-devel-0.125
elfutils-libelf-devel-static-0.125
gcc-4.1.2
gcc-c++-4.1.2
glibc-2.5-24
glibc-common-2.5
glibc-devel-2.5
glibc-headers-2.5
kernel-headers-2.6.18
ksh-20060214
libaio-0.3.106
libaio-devel-0.3.106
libgcc-4.1.2
libgomp-4.1.2
libstdc++-4.1.2
libstdc++-devel-4.1.2
make-3.81
sysstat-7.0.2
- Verifica se pacchetti sono stati giĆ installati
- Ricerca pacchetti
Esempio
Ad esempio se manca libaio-0.3.105 (i386) cercare
# yum search libaio
=======
libaio.i686 : Linux-native asynchronous I/O access library
libaio.x86_64 : Linux-native asynchronous I/O access library
libaio-devel.i686 : Development files for Linux-native asynchronous I/O access
libaio-devel.x86_64 : Development files for Linux-native asynchronous I/O access
- Installare sia i pacchetti a 64 bit (x86_64) che 32 (i386 che corrisponde anche a i686 )
Esempio
# yum install libaio.i686
--------------------Nel caso di so Oracle Linux ------------
utilizzare i pacchetti offerti dal repository "Oracle Public Yum".
Andare come root sotto /etc/yum.repos.d e scaricare il file di configurazione repo.
- Per Centos6.x lanciare il comando
DopodichĆ© lanciare il camando yum seguente per installare tutti i necessari pĆØrerequisiti.
# yum install oracle-rdbms-server-11gR2-preinstall
- Per Centos7 lanciare il comando
# wget http://yum.oracle.com/public-yum-ol7.repo
--2020-09-14 14:20:16-- http://yum.oracle.com/public-yum-ol7.repo
Resolving yum.oracle.com (yum.oracle.com)... 2.22.77.132
Connecting to yum.oracle.com (yum.oracle.com)|2.22.77.132|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 16402 (16K) [text/plain]
Saving to: ‘public-yum-ol7.repo’
100%[================================================================================>] 16,402 --.-K/s in 0s
2020-09-14 14:20:17 (49.9 MB/s) - ‘public-yum-ol7.repo’ saved [16402/16402]
Viene creato il repository public-yum-ol7.repo
Impostare i parametri del sudetto file enabled=1.Eseguire
# yum install oracle-rdbms-server-11gR2-preinstall
Effettuare il download di Oracle Linux GPG Key che coincide con la versione RHEL/CentOS del sistema operativo.
Per Centos6.x ĆØ:
wget https://public-yum.oracle.com/RPM-GPG-KEY-oracle-ol6 -O /etc/pki/rpm-gpg/RPM-GPG-KEY-oracle
Per Centos 7:wget http://public-yum.oracle.com/RPM-GPG-KEY-oracle-ol7 -O /etc/pki/rpm-gpg/RPM-GPG-KEY-oracle
Creazione gruppi oinstall e dba
[root@localhost ~]# /usr/sbin/groupadd oinstall
Questo gruppo possiede l'Oracle Inventory cioĆØ il cataologo di tutto il software Oracle da installare sul sistema.
[root@localhost ]# /usr/sbin/groupadd -g 502 dba
Questo gruppo identifica gli utenti Linux con privilegi di amministratore del db
Creazione utente oracle e gruppi
Se l'installazione dei pacchetti ĆØ avvenuta con il repository "Oracle Public Yum" l'utente oracle ĆØ giĆ creato cosƬ come i suoi gruppi.
Mentre si importa la chiave GPG potrebbe comparire l'errore seguente:
Retrieving key from file:///etc/pki/rpm-gpg/RPM-GPG-KEY-oracle
GPG key retrieval failed: [Errno 14] curl#37 - "Couldn't open file /etc/pki/rpm-gpg/RPM-GPG-KEY-oracle"
Per Centos6.x ĆØ:
wget https://public-yum.oracle.com/RPM-GPG-KEY-oracle-ol6 -O /etc/pki/rpm-gpg/RPM-GPG-KEY-oracle
Per Centos 7:
Rilanciare il comando "yum install oracle......"
Creazione gruppi oinstall e dba
[root@localhost ~]# /usr/sbin/groupadd oinstall
Questo gruppo possiede l'Oracle Inventory cioĆØ il cataologo di tutto il software Oracle da installare sul sistema.
[root@localhost ]# /usr/sbin/groupadd -g 502 dba
Questo gruppo identifica gli utenti Linux con privilegi di amministratore del db
Creazione utente oracle e gruppi
Se l'installazione dei pacchetti ĆØ avvenuta con il repository "Oracle Public Yum" l'utente oracle ĆØ giĆ creato cosƬ come i suoi gruppi.
Come root accedere a /usr/sbin ed eseguire il comando
[root@localhost sbin]# useradd -g oinstall -G dba oracle
Questo comando crea l'utente oracle (che serve per eseguire l'installazione) e lo associa al gruppo primario oinstall e secondario dba.
Verifica
[root@localhost sbin]# id oracle
uid=501(oracle) gid=501(oinstall) groups=501(oinstall),502(dba)
Cambiamo la password per l'utente oralce:
[root@localhost sbin]# passwd oracle
Creare le directory
La directory Oracle Base deve essere almeno di 4 GB.
Per l'installazione del software, la directory di default ĆØ /u01 che deve essere montata su un disco separato dal root del s.o.
Ad esempio
# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 34G 17G 15G 53% /
/dev/sdb1 591G 238G 329G 42% /u01
Si puĆ² anche personalizzare l'instllazione installando il motore sotto root e mettere su un altro disco in datafile.
# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 34G 17G 15G 53% /
/dev/sdb1 591G 238G 329G 42% /oradata
In questo caso creo la directory oracle home sotto /oracle che sostiruisce /u01/app e montare la directory /oradata su un disco diverso da root che conterĆ i datafile.
# mkdir -p /u01/app/
Cambiamo proprietario, che ora ĆØ root, in oracle.
[root@localhost oracle]# chown -R oracle:oinstall /u01
Cambiamo i permessi:
[root@localhost oracle]# chmod -R 775 /u01
[root@localhost u01]# ls -lrt
drwxrwxr-x 2 oracle oinstall 4096 Jan 8 09:20 app
La directory /tmp deve avere alemo 1 GB di spazio libero:
df -h /tmp
Se necessario crearla sotto una direcroty
[root@localhost ~]# mkdir /u01/tmp
[root@localhost u01]# ll
drwxr-xr-x 2 root root 4096 Jan 8 09:57 tmp
Cambiamo i permessi:
[root@localhost u01]# chmod a+wr /u01/tmp
[root@localhost u01]# ll
drwxrwxrwx 2 root root 4096 Jan 8 09:57 tmp
Configurare Kernel Parameters del sistema operativo
Di seguito i valori minini ammessi:
[root@coslab02 kernel]# more sem
250 32000 100 128
[root@coslab02 kernel]# more shmall
1073741824
[root@coslab02 kernel]# more shmmax
4398046511104
[root@coslab02 kernel]# more shmmni
4096
In an Oracle RDBMS application, this "physical limit" still leaves inadequate system memory for other necessary functions. Therefore, the common "Oracle maximum" for SHMMAX that you will often see is "1/2 of physical RAM". Many Oracle customers chose a higher fraction, at their discretion.
Occasionally, Customers may erroneously think that that setting the SHMMAX as recommended in this NOTE limits the total SGA. That is not true. Setting the SHMMAX as recommended only causes a few more "shared memory segments" to be used for whatever total SGA that you subsequently configure in Oracle.
[root@localhost kernel]# more /proc/sys/fs/file-max
Minimo: 6815744
[root@localhost kernel]# more /proc/sys/net/ipv4/ip_local_port_range
Minimo: 9000
Massimo: 65500
[root@localhost kernel]# more /proc/sys/net/core/rmem_default
Minimo: 262144
[root@localhost kernel]# more /proc/sys/net/core/rmem_max
Minimo: 4194304
[root@localhost kernel]# more /proc/sys/net/core/wmem_default
Minimo: 262144
[root@localhost kernel]# more /proc/sys/net/core/wmem_max
Minimo: 1048576
[root@localhost kernel]# more /proc/sys/fs/aio-max-nr
Minimo: 1048576
[root@localhost kernel]# more /proc/sys/fs/file-max
Minimo: 6815744
[root@localhost kernel]# more /proc/sys/net/ipv4/ip_local_port_range
Minimo: 9000
Massimo: 65500
[root@localhost kernel]# more /proc/sys/net/core/rmem_default
Minimo: 262144
[root@localhost kernel]# more /proc/sys/net/core/rmem_max
Minimo: 4194304
[root@localhost kernel]# more /proc/sys/net/core/wmem_default
Minimo: 262144
[root@localhost kernel]# more /proc/sys/net/core/wmem_max
Minimo: 1048576
[root@localhost kernel]# more /proc/sys/fs/aio-max-nr
Minimo: 1048576
Se il valore corrente di un parametro ĆØ superiore al valore consigliato non modificare il valore di tale parametro, in caso contrario aggiugere al file sysctl.conf le linee solo per i valori dei paramtrei del kernel da cambiare.
Nell'esempio:
[root@localhost ~]# vi /etc/sysctl.conf
......
### parametri db
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152
kernel.shmmax = 536870912
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
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
Eseguire il seguente comando per cambiare valori correnti dei parametri del kernel:
[root@localhost ~]#/sbin/sysctl -p
Eseguire
[root@localhost ~]#/sbin/sysctl -p
Eseguire
# /sbin/sysctl -a
per confermare che i valori sono settati correttamente.
Per rendere consistente la modifica, effettuare o il restart del sistema o eseguire il comando sysctl -p per rendere i cambiamenti del file /etc/sysctl.conf disponibili nella memoria del kernel.
Resourse Limit per l'utente oracle
Accediamo come oracle
[root@localhost ~]# su - oracle
Per rendere consistente la modifica, effettuare o il restart del sistema o eseguire il comando sysctl -p per rendere i cambiamenti del file /etc/sysctl.conf disponibili nella memoria del kernel.
Resourse Limit per l'utente oracle
Accediamo come oracle
[root@localhost ~]# su - oracle
Questi sono i valori minimi ammessi: Soft and Hard limits.
Open file descriptors. Risorsa nofile
$ ulimit -Sn
1024
$ ulimit -Hn
65536
Number of processes available to a user. Risorsa nproc
$ ulimit -Su
2047
$ ulimit -Hu
16384
Size of the stack segment of the process. Risorsa stack
$ ulimit -Ss
10240
$ ulimit -Hs
at least 10240 KB, and at
most 32768 KB
Se non sono soddisfatti i requisiti, entrare come root e aggiungere le seguenti linee al file /etc/security/limits.conf
# End of file
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft stack 10240
oracle hard stack 32768
Configurare hostname sotto “/etc/hosts”
[root@oracle]# vi /etc/hosts
oracle hard nproc 16384
oracle soft stack 10240
oracle hard stack 32768
Hostname
[root@oracle]# vi /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.###.###.### oradb01.prova.com oradb01
Restart della network per essere sicuri che i cambiamenti sia presistenti al reboot.
# /etc/init.d/network restart
Su Centos7
# systemctl restart network
Variabili d'ambiente
Accedere come oracle
# su - oracle
Per rendere consistente le variabili d'ambiente modificare il file .bash_profile sotto la home dell'utente oracle.
su - oracle
cd /home/oracle
# vi .bash_profile
# vi .bash_profile
# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
# User specific environment and startup programs
TMP=/tmp; export TMP
TMPDIR=$TMP; export TMPDIR
ORACLE_HOSTNAME=coslab02.xxxxx.x; export ORACLE_HOSTNAME
##ORACLE_UNQNAME=orcl; export ORACLE_UNQNAME
ORACLE_BASE=/u01/app/oracle; export ORACLE_BASE
ORACLE_HOME=$ORACLE_BASE/product/11gR24; export ORACLE_HOME
ORACLE_SID=orcl; 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; export LD_LIBRARY_PATH
CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib; export CLASSPATH
Per rendere la modifica consistente:
[oracle@dbserver1 ~]$ . ./.bash_profile
Nota: Come si legger il comando PATH=$PATH:/usr/sbin ?
Alla variabile PATH aggiungi a ciĆ² che ĆØ giĆ definito ($PATH) un nuova nuova directory /usr/bin.
Verificare che le variabili d'ambiente ORACLE_HOME e TNS_ADMIN siano non settate prima di lanciare runInstaller.
unset ORACLE_HOME
unset TNS_ADMIN
Configurare la variabile DISPLAY
Entrare come utente root
Entrare come utente root
[root@coslab02 ~]$ xhost +
Autorizza qualsiasi ip ad accedere in X al mio server coslab02. Non ĆØ necessario farlo.
Accedere come oracle al server
[oracle@coslab02 ~]$ export DISPLAY=local_host:0.0
local_host ĆØ host name o IP address della workstation dove si vuole vedere il display dell' Installer.
Per individuare usare il comando:
# who
Per verificare che X application display ĆØ settato correttamente lanciare xclok che esegue un programma base X11. Se non funziona allora installare.
Per verificare che X application display ĆØ settato correttamente lanciare xclok che esegue un programma base X11. Se non funziona allora installare.
xorg-x11-utils-<version>.x86_64.rpm
xorg-x11-xauth-<version>.x86_64.rpm
La conferma che xdpyinfo utility ora esiste ĆØ il seguente file:
ls -la /usr/bin/xdpyinfo
-rwxr-xr-x 1 root root 37192 Jul 19 2006 /usr/bin/xdpyinfo*
[root@coslab02 ~]# yum install xhost
[oracle@dbserver1 ~]$ xclock
Funziona se appare l'orologio a video.
netstat -nap | grep 6000
Xserver fa lo stream dell'immagine associata alla sessione conessa.
Download del software
Scaricare dal sito oracle i due file compressi "Oracle 11gR2" versione Linux x86-64
sotto la cartella di mountpoint /u01/software.
[oracle@coslab02 software]$ ls -lrt
-rw-r--r-- 1 oracle oinstall 1239269270 Sep 15 09:53 linux.x64_11gR2_database_1of2.zip
-rw-r--r-- 1 oracle oinstall 1111416131 Sep 15 09:53 linux.x64_11gR2_database_2of2.zip
[root@coslab02 software]# ls -lrt
drwxr-xr-x 8 root root 128 Aug 20 2009 database
-rw-r--r-- 1 oracle oinstall 1239269270 Sep 15 09:53 linux.x64_11gR2_database_1of2.zip
-rw-r--r-- 1 oracle oinstall 1111416131 Sep 15 09:53 linux.x64_11gR2_database_2of2.zip
Cambiare l'owner della directory.
# chown -R oracle:oinstall database
2 - O U I - Oracle Universal Installer
Per lanciare l'installer collegarsi direttamente come oracle e quindi connettersi in ssh al server con utenza oracle.
Non fare lo switch da root con il comando "su - oracle"
# cd /u01/software/database
[oracle@coslab02 database]$ ./runInstaller &
Usare "&" per lavorare in backgorund cosƬ se cade la connessione al server, la sessione ĆØ ancora via e si puĆ² continuare ad utilizzare il tool grafico.
[oracle@coslab02 database]$ ./runInstaller &
Usare "&" per lavorare in backgorund cosƬ se cade la connessione al server, la sessione ĆØ ancora via e si puĆ² continuare ad utilizzare il tool grafico.
C'ĆØ un requisito di sistema relativo al kernel che ĆØ fallito:
OS Kernel Parameter: semmni - This is a prerequisite condition to test whether the OS kernel parameter "semmni" is properly set.
Expected Value : 128
Actual Value : 0
List of errors: - PRVF-7543 : OS Kernel parameter "semmni" does not have proper value on node "coslab02" [Expected = "128" ; Found = "0"]. - Cause: Kernel parameter value does not meet the requirement. - Action: Modify the kernel parameter value to meet the requirement.
Lanciare lo script per fixare il problema. Dal log dell'esito si evince che
..
semmni in response file:128
semmni for current session:128
The value for semmni in response file is not greater than value of semmni for current session. Hence not changing it.
semmni in /etc/sysctl.conf:128
The value for semmni in response file is not greater than value for semmni in /etc/sysctl.conf file. Hence not changing it
Questo ĆØ un bug di oralce Installer 11g riscontrato su Centos 7, che ho ignorato nell'installazione perchĆØ a livello di kernel del sistema operativo il parametro ĆØ settato correttamente a 128.
Se compaio alcuni pacchetti che mancano, assicurarsi con il comando
# yum info <nome pacchetto>
che sia stata installata almeno una versione maggiore di quella indicata.Di seguito i pacchetti che possono essere trascurati
libaio-0.3.105 (i386)
compat-libstdc++-33-3.2.3 (i386)
libaio-devel-0.3.105 (i386)
libgcc-3.4.6 (i386)
libstdc++-3.4.6 (i386)
unixODBC-2.2.11 (i386)
unixODBC-devel-2.2.11 (i386)
pdksh-5.2.14
L'installazione termina con il lancio di due script come root.
# /u01/app/oraInventory/orainstRoot.sh
# /u01/app/oracle/product/11.2.0/dbhome_1/root.sh
Controllare nuovamaente la variabili definite nel file .bash_profile sotto /home/oracle e ricaricare i valori con il comando
[oracle@coslab02 ~]$ . ./.bash_profile
---------------- non necessaria ---------------------------------------------
Successivamente occorre definire due variabili d'ambiente, una che associa il motore oracle con il nome dell'istanza e l'altra la sua home directory.
[oracle@dbserver1 dbhome_1]$ . oraenv
ORACLE_SID = [oracle] ? sales
ORACLE_HOME = [/home/oracle] ? /u01/app/oracle/product/11.2.0/dbhome_1
Mi ĆØ comparso il messaggio:
ORACLE_BASE environment variable is not being set since this information is not available for the current user ID oracle.
You can set ORACLE_BASE manually if it is required.
Ho definito la variabile d'ambiente:
[oracle@dbserver1 dbhome_1]$ ORACLE_BASE=/u01/app/oracle
[oracle@dbserver1 dbhome_1]$ export ORACLE_BASE
----------------------------------------------------------------------------------
Alla fine della istallazione viene creato il file Reponse che ĆØ un file di testo editabile mediante un editor di testo e che puĆ² essere fatto girare anche su altre macchine.
3 - N E T C A - Oracle Net Configuration Assistant
E' un interfaccia grafica che permette di creare, aggiungere, modificare un listener.
Collegarsi direttamente come oracle e quindi connettersi in ssh al server con utenza oracle.
Non fare lo switch da root con il comando "su - oracle"
[oracle@coslab02 ~]$ cd $ORACLE_HOME/bin
[oracle@coslab02 bin]$ export DISPLAY=10.103.142.197:0.0
[oracle@coslab02 bin]$ ./netca
Cliccare su "Finish".
Verificare che sia stato creato il file listener.ora sotto la directory
$ORACLE_HOME/network/admin/
4 - D B C A - Database Configuration Assistant
Prima di avviare l'utility Database Configuration Assistant attivare il listener con il comando:
[oracle@coslab02~ ]$ lsnrctl start
Collegarsi direttamente come oracle e quindi connettersi in ssh al server con utenza oracle.
Non fare lo switch da root con il comando "su - oracle"
[oracle@coslab02~]$ cd $ORACLE_HOME/bin
[oracle@coslab02 bin]$ export DISPLAY=aaa.xxx.yyy.zzz:0.0
[oracle@dbserver1 bin]$./dbca &Usare "&" per lavorare in backgorund cosƬ se cade la connessione al server, la sessione ĆØ ancora via e si puĆ² continuare ad utilizzare il tool grafico.
Scegliere "General Purpose...." per installare le componenti di default mentre se si vogliono scegliere le componenti scegleire CUSTOM DATABASE.
Query di riferimento:
SQL> select * from dba_registry
Cliccare su "Edit Archive Mode Parameters" e impostare il path d
Se abiliato invece ASMM cliccare su "Custom"
Scegliere il Character Sets invece di quello di default, se previsto dai requisiti tecnici.
SQL> select * from nls_database_parameters where parameter ='NLS_CHARACTERSET'
SQL> SELECT * FROM NLS_DATABASE_PARAMETERS where parameter in ('NLS_LANGUAGE', 'NLS_TERRITORY')
SQL> SELECT * FROM NLS_DATABASE_PARAMETERS where parameter ='NLS_NCHAR_CHARACTERSET'
Modificare i numeri di processi se previsto dai requisiti tecnici.
SQL> select current_utilization, limit_value , resource_name
from v$resource_limit
where resource_name in ('processes');
Se si vuole modificare la location dei Datafile, Control file e Redo log cliccare su "File location Varibles" .
Successivamente su Next.
Successivamente su Next.
Alla fine dell'installaizone ĆØ creato il file SPFILESALES.ORA sotto $ORACLE_HOME/dbs.
Viene creato anche il file tnsnames.ora sotto $ORACLE_HOME/network/admin
contenente il service name creato (orcl.world).
Verifichiamo che il db sia attivo.
[oracle@coslab02 dbs]$ ps -ef | grep pmon
oracle 15058 1 0 10:50 ? 00:00:00 ora_pmon_orcl
oracle 15356 11691 0 10:53 pts/1 00:00:00 grep --color=auto pmon
[oracle@coslab02 dbs]$ sqlplus /nolog
SQL*Plus: Release 11.2.0.1.0 Production on Thu Sep 17 10:53:21 2020
Copyright (c) 1982, 2009, Oracle. All rights reserved.
SQL> conn /as sysdba
Connected.
SQL> select instance_name, status from v$instance;
INSTANCE_NAME STATUS
---------------- ------------
orcl OPEN
Verifichiamo che il listener ha registrato il service name (orcl.world)
[oracle@coslab02 dbs]$ lsnrctl status
LSNRCTL for Linux: Version 11.2.0.1.0 - Production on 17-SEP-2020 10:55:03
Copyright (c) 1991, 2009, Oracle. All rights reserved.
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=coslab02.xxxx.it)(PORT=1521)))
STATUS of the LISTENER
------------------------
Alias LISTENER
Version TNSLSNR for Linux: Version 11.2.0.1.0 - Production
Start Date 17-SEP-2020 10:12:13
Uptime 0 days 0 hr. 42 min. 49 sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
Listener Parameter File /u01/app/oracle/product/11gR24/network/admin/listener.ora
Listener Log File /u01/app/oracle/diag/tnslsnr/coslab02/listener/alert/log.xml
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=coslab02.intra.camera.it)(PORT=1521)))
Services Summary...
Service "orcl.world" has 1 instance(s).
Instance "orcl", status READY, has 1 handler(s) for this service...
Service "orclXDB.world" has 1 instance(s).
Instance "orcl", status READY, has 1 handler(s) for this service...
The command completed successfully
5 - Impostare le variabili di ambiente se il comando sqlplus o lsnrctl non ĆØ trovato.
Posizionarsi sotto la directory di lancio dei comandi.
# cd $ORACLE_HOME/bin
[oracle@coslab02 bin]$ sqlplus
-bash: sqlplus: command not found
[oracle@coslab02 bin]$ lsnrctl
-bash: lsnrctl: command not found
Impostare la variabile path.
[oracle@coslab02 bin]$ PATH=$PATH:$ORACLE_HOME/bin
[oracle@coslab02 bin]$ export PATH
Modificare il file .bash_profile sotto la oracle home dell'utente.
6 - Modificare il file /etc/oratab se si vuole far riavviare il db allo start del server su cui ĆØ installato il db
#
# Multiple entries with the same $ORACLE_SID are not allowed.
#
#
ORDL:/u01/app/oracle/product/11.2.0/dbhome_1:Y