domingo, 18 de agosto de 2013

Instalación de Base de Datos Oracle 11g en Oracle Enterprise Linux 64 bits

Se instalará la Base de Datos Oracle 11gR2 en una máquina virtual con sistema operativo  Oracle Linux 64 bits. Sólo se usará 1G para la máquina virtual, ya que será para pruebas y desarrollos personales en SOA Suite.

 

Configuración inicial como usuario root

1. Configurar IP y nombre de host: se cambia el nombre de la máquina por soa11db y se setea IP fija:

vi /etc/sysconfig/network 
Cambiar HOSTNAME a soa11db

vi /etc/hosts
Se agrega la línea:
172.16.1.135 soa11db soa11db.localdomain

También se debe cambiar la IP en las propiedades de red (Network Connections).


2. Crear grupos de sistema operativo requeridos: crear los grupos oinstall y dba:
/usr/sbin/groupadd oinstall
/usr/sbin/groupadd dba
/usr/sbin/usermod -g oinstall -G dba oracle

 

3. Configurar Parámetros del Kernel
vi /etc/sysctl.conf
 

Agregar al final del archivo: 

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 = 1048586
fs.aio-max-nr = 1048576
fs.file-max = 6815744


Ingresar el siguiente comando para cargar en el kernel los parámetros especificados en el archivo /etc/sysctl.conf:

/sbin/sysctl -p

No cambié los siguientes parámetros porque sus valores son mayores a los recomendados.
Recomendados:
kernel.shmall = 2097152
kernel.shmmax = 536870912
kernel.shmmni = 4096

Valores en el servidor linux: (/sbin/sysctl -a | grep shm)
kernel.shmmax = 68719476736
kernel.shmall = 4294967296
kernel.shmmni = 4096
vm.hugetlb_shm_group = 0


4. Se agregan los límites para el usuario oracle
vi /etc/security/limits.conf

Agregar lo siguiente:


oracle           soft    nproc   2047
oracle           hard    nproc   16384
oracle           soft    nofile  1024
oracle           hard    nofile  65536
oracle           soft    stack   10240


NOTA: el último valor no venía en el documento de instalación oficial. Lo saqué de un artículo de oracle-base.

5. Editar archivo
90-nproc.conf (ID 1487773.1)
vi /etc/security/limits.d/90-nproc.conf
 

Cambiar la línea:
*          soft    nproc    1024
 

Por la siguiente:
*          -       nproc   16384
 

6. Editar archivo login
vi /etc/pam.d/login
 

Se agrega la línea:
session    required     pam_limits.so 


7. Editar archivo profile
vi /etc/profile

Agregar las líneas:
 

if [ $USER = "oracle" ]; then
        if [ $SHELL = "/bin/ksh" ]; then
              ulimit -p 16384
              ulimit -n 65536
        else
              ulimit -u 16384 -n 65536
        fi
fi


8. Editar archivo csh.login
vi /etc/csh.login 

Agregar las líneas:
 

if ( $USER == "oracle" ) then
        limit maxproc 16384
        limit descriptors 65536
endif
 

9. Crear Directorios Requeridos: se crea el directorio donde se instalará el software.
mkdir -p /app/
chown -R oracle:oinstall /app/
chmod -R 775 /app/ 


10. Habilitar el host remoto: si no se instala el software en el sistema local, para habilitar el despliegue de aplicaciones X Window System en el servidor X local:

xhost +soa11db

11. Configurar la seguridad de linux a permisiva 
vi /etc/selinux/config 

Cambiar la línea:
SELINUX=enforcing

Por la línea:
SELINUX=permissive


Configuración como usuario oracle

1. Configurar el archivo .bash_profile del usuario oracle
cd
vi .bash_profile

Se agregan las siguientes líneas:

#Para configurar el modo default de creacion de archivos
umask 022
#Directorio /tmp: ya existe, se reutiliza
TMP=/tmp
TMPDIR=/tmp
export TMP TMPDIR
#Setear variables  ORACLE_BASE, ORACLE_SID:
#Se elige el sid dbora11

ORACLE_BASE=/app/oracle
ORACLE_SID=dbora11
export ORACLE_BASE ORACLE_SID
#Recomendacion de oracle-base.com
ORACLE_HOSTNAME=soa11db.localdomain; export ORACLE_HOSTNAME
ORACLE_UNQNAME=dbora11; export ORACLE_UNQNAME
ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1; export ORACLE_HOME
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/jlib:$ORACLE_HOME/rdbms/jlib 

export CLASSPATH
#Fin recomendacion de oracle-base.com
 

NOTA: Se saca el seteo de la variable LD_LIBRARY_PATH ya que genera problemas con la ejecución de otros servicios del sistema operativo, como el system-config-services. Además, en el manual de instalación no hacen referencia a esta variable.

Se activan las variables creadas:

. .bash_profile

2. Crear el directorio oracle en /app

cd /app
mkdir oracle


3. Se copian los archivos de instalación de la BD
linux.x64_11gR2_database_1of2.zip
linux.x64_11gR2_database_2of2.zip

Se descomprimen en el directorio /home/oracle/jflores/DB11g/
unzip linux.x64_11gR2_database_1of2.zip
unzip linux.x64_11gR2_database_2of2.zip


Reiniciar.


Instalando la Base de Datos Oracle 11g


Ejecutar como usuario oracle:

cd /home/oracle/jflores/DB11g/database
. runInstaller


Se levanta la ventana de Oracle Universal Installer.

1. Configure Security Updates: se quita el flag para recibir updates. Este servidor no estará conectado a Internet.

2. Select Installation Option: se selecciona la opción por default: "Create and Configure a Database".

3. System Class: seleccionar la opción "Server Class".

4. Grid Installation Options: seleccionar la opción default: "Single instance database installation".

5. Select Install Type: seleccionar la opción "Advanced install".


6. Product Languages: agrego el idioma "Latin American Spanish" 

7. Database Edition: seleccionar la opción default "Enterprise Edition". Hacer click en "Select Options...". No se cambia ningún flag, es sólo para mirar.

8. Installation Location: se dejan los paths defaults.
Oracle Base: /app/oracle
Software location: /app/oracle/product/11.2.0/db_1

9. Create Inventory: se deja el path default.


10. Configuration Type: se deja valor default: Base de propósito general.

11. Database Identifiers: se elige dbora11 como nombre de base de datos y del SID.

12. Configuration Options

Memoria: Se elige el valor propuesto: 396M (la máquina tiene 1G de RAM)
Character Sets: se elige la opción "Use Unicode (AL32UTF8)"
Security: sacar el flag para así no usar los seteos de seguridad.
Sample Schemas: no se instalan.

13. Management Options: se deja el default.

14. Database Storage: se deja el path default: /app/oracle/oradata


15. Backup and Recovery: se deja el default, sin recovery automático. 

16. Schema Passwords: se selecciona oracle como password para todos los esquemas, aunque se muestra un warning por un tema de seguridad.

17. Operating System Groups: se dejan valores default.


18. Prerequisite Checks: muestra que hay problemas con algunos packages. Pero si se validan esos packages en el sistema (rpm -qa | grep <pkg>) se puede ver que hay versiones más actualizadas. Click en "Ignore all". Click Finish.

19. La
BD ha sido creada: la URL del Database Control es:
https://soa11db.localdomain:1158/em

Management Repository has been placed in secure mode wherein Enterprise Manager data will be encrypted.  The encryption key has been placed in the file: /app/oracle/product/11.2.0/db_1/soa11db.localdomain_dbora11/sysman/config/emkey.ora. Please ensure this file is backed up as the encrypted data will become unusable if this file is lost.

Respaldo el archivo como lo menciona la recomendación:

cp /app/oracle/product/11.2.0/db_1/soa11db.localdomain_dbora11/sysman/config/emkey.ora /home/oracle/jflores


Click en OK. 


20. Ejecutar scripts de configuración: los siguientes scripts necesitan ejecutarse como root:
 
/app/oraInventory/orainstRoot.sh
/app/oracle/product/11.2.0/db_1/root.sh
 

21. Configuración de parámetros de la base de datos: se modifican 4 parámetros. Sus valores iniciales son: 

processes: 150
sessions: 247
open_cursors: 300
undo_retention: 900

[oracle@soa11db ~]$ sqlplus "/ as sysdba"
SQL> startup
ALTER SYSTEM SET processes      = 2000  SCOPE=spfile;

ALTER SYSTEM SET sessions       = 2000  SCOPE=spfile;
ALTER SYSTEM SET open_cursors   = 5000  scope=both;
ALTER SYSTEM SET undo_retention = 14400 scope=both;


 

Solución al error ORA-04031: unable to allocate 16416 bytes of shared memory

El siguiente error me ocurrió al momento de tratar de hacer un startup a la BD porque le había bajado la memoria a la máquina virtual:

SQL> startup
ORA-04031: unable to allocate 16416 bytes of shared memory ("shared pool","unknown object","sga heap(1,0)","dbktb: trace buffer")
 


La solución es modificar el parámetro memory_target del archivo spfile. Como este archivo es binario primero se debe crear un archivo de texto como archivo de paso. Se deben ejecutar las siguientes acciones:

1.
[oracle@soa11db ~]$ sqlplus "/ as sysdba" 

2. SQL> create pfile='jflores01.ora' from spfile='spfiledbora11.ora';
 

3. Editar el archivo /app/oracle/product/11.2.0/db_1/dbs/jflores01.ora
Cambiar el valor de *.memory_target. Por ejemplo:


Valor original:
*.memory_target=1027604480 


Nuevo valor:
*.memory_target=671088640 


4. SQL> startup pfile='/app/oracle/product/11.2.0/db_1/dbs/jflores01.ora';

5. SQL> create spfile='spfiledbora11.ora' from pfile='jflores01.ora';

Ahora ya se puede subir la BD sólo ejecutando el comando startup.


Y ahora...

...ya podemos instalar los esquemas del repositorio de la SOA.

---
EOF 
--- 

No hay comentarios:

Publicar un comentario