Oracle 12c instalación en linux sobre CentOS 6

Vamos a realizar una instalación de Oracle 12c sobre CentOS 6 de 64 bits, la documentación oficial se puede encontrar en:

Quick Installation Guide 12c Release 1 (12.1) for Linux x86-64

Esta documentación es extensa, no demasiado clara y contiene información parcial para las instalaciones sobre RedHat 6 o CentOS 6, por tanto me he decidido a escribir esta guía.

Sólo vamos a tratar la instalación de los binarios, la creación de la base de datos ya lo trataremos en otro momento.

Para realizar la instalación cumpliendo los prerrequisitos, se ha utilizado una máquina con:

En lineas generarles, partiendo de una instalación nueva, lo que vamos a hacer es:

  • Desactivar selinux e iptables, para evitar simplificar la configuración.
  • Instalar paquetería necesaria.
  • Configurar parámetros del kernel
  • Crear usuario y grupos
  • Límites de usuario
  • Creación de directorios y permisos
  • Definición de entorno de ejecución
  • Instalación propiamente, para este he puesto un video que sinó es pesadísimo.

 

Vamos al asunto:

Desactivar selinux e iptables

La idea de selinux es buena pero la verdad es que da bastante guerra y el iptables a mi me encanta, sobretodo en los frontales Apache, pero el los entornos producitvos los servidores de bases de datos suelen estar sumergidos detrás de N firewalls.

En resumidas cuentas lo desactivamos todo para hacer una instalación sin complicaciones.

Desactivamos iptables (como root):

Source   
[root@oradb ~]# chkconfig iptables off
[root@oradb ~]# chkconfig --list iptables
iptables           0:off    1:off    2:off    3:off    4:off    5:off    6:off

Desactivamos selinux, modificando el fichero /etc/sysconfig/selinux, cambiando SELINUX=enforcing por SELINUX=disabled:

Source   
[root@oradb sysconfig]# pwd
/etc/sysconfig
[root@oradb sysconfig]# cat selinux
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#    enforcing - SELinux security policy is enforced.
#    permissive - SELinux prints warnings instead of enforcing.
#    disabled - SELinux is fully disabled.
SELINUX=disabled
# SELINUXTYPE= type of policy in use. Possible values are:
#    targeted - Only targeted network daemons are protected.
#    strict - Full SELinux protection.
SELINUXTYPE=targeted

Reiniciamos la máquina, no hay otra forma de desactivar selinux una vez modificada la configuración.

Instalar paquetería necesaria.

La paquetería necesaria la instaleremos del repositorio que para eso está (como root):

Source   
[root@oradb ~]# yum install binutils
[root@oradb ~]# yum install compat-libcap1
[root@oradb ~]# yum install compat-libstdc++-33
[root@oradb ~]# yum install gcc
[root@oradb ~]# yum install gcc-c++
[root@oradb ~]# yum install glibc
[root@oradb ~]# yum install glibc-devel
[root@oradb ~]# yum install ksh
[root@oradb ~]# yum install libgcc
[root@oradb ~]# yum install libstdc++
[root@oradb ~]# yum install libstdc++-devel
[root@oradb ~]# yum install libaio
[root@oradb ~]# yum install libaio-devel
[root@oradb ~]# yum install libXext
[root@oradb ~]# yum install libXtst
[root@oradb ~]# yum install libX11
[root@oradb ~]# yum install libXau
[root@oradb ~]# yum install libxcb
[root@oradb ~]# yum install libXi
[root@oradb ~]# yum install make
[root@oradb ~]# yum install sysstat

Se podría lanzar un solo comando pero lo veo más claro instrucción a instrucción.

Configurar parámetros del kernel

Es necesario modificar algunos parámetros del Kernel, todo se ha de hacer como root.
Podemos ver todos los valores del kernel con la instrucción:

Source   
sysctl -a

Para modificar los valores abrir el fichero:

Source   
/etc/sysctl.conf

Y verificar que existen o los valores son superiores de los parámetros:
Source   
fs.file-max = 6815744
kernel.shmall = 157286 #40% de la memoria física en páginas *
kernel.shmmax = 805306368 #la mitad de RAM en bytes
kernel.shmmni = 4096
# semaphores: semmsl, semmns, semopm, semmni
kernel.sem = 250 32000 100 128
fs.aio-max-nr = 1048576
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

*Para calcular el valor de shmall, 40% de la memoria física en páginas:
1- Obtener el tamaño de página con:
getconf PAGE_SIZE
4096
2- Calcular el valor para shmall:
Para 1.5GB de RAM, entonces 1024 * 1024 * 1024 * 1.5(GB) / 4096(tamaño de página) * 0.4 (40%) = 157286,4

Una vez editado el fichero aplicar los cambios con:

Source   
sysctl -p

 

Crear usuario y grupos

Es necesario la creación de dos grupos de usuarios:

  • oinstall, grupo de inventario de Oracle
  • dba, grupo de dba de sistema operativo

Un usuario, con nombre “oracle” en nuestro caso, que sera el propietario del software Oracle.
Ejecutamos como root:

Source   
groupadd oinstall
groupadd dba
useradd -g oinstall -G dba oracle

Fijamos el password del usuario “oracle” a uno que nos guste:

Source   
passwd oracle

Límites de usuario

El usuario propietario del software Oracle, ha de limitarse correctamente en lo referente a número de procesos y ficheros abiertos.
Editar el fichero:

Source   
/etc/security/limits.conf

Y añadir al final:
Source   
oracle           soft    nproc   2047
oracle           hard    nproc   16384
oracle           soft    nofile  1024
oracle           hard    nofile  65536
oracle           soft    stack   10240

Editar el fichero:

Source   
/etc/pam.d/login

Y añadir al final si no existe:
Source   
session    required     pam_limits.so

Creación de directorios y permisos

Se crea el directorio donde se instalarán los binarios y se le otorga propiedad al usuario “oracle” y al grupo “oinstall”.
Ejecutar como root:

Source   
mkdir -p /u01/app/
chown -R oracle:oinstall /u01/app/
chmod -R 775 /u01/app/

Definición de entorno de ejecución

 

Es necesario definir algunas variables de entorno para el usuario propietario de la instalación.
Logarse como “oracle” y editar el fichero:

Source   
/home/oracle/.bash_profile

Añadir al final:

Source   
#oracle
umask 022
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/12.1.0/db_1
export ORACLE_SID=prueba
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH
export PATH=$ORACLE_HOME/bin:$PATH
#oracle fin

 

Salimos y volvemos a entrar en la sesión “oracle”.

Instalación propiamente

Una vez descargados los binarios em:

http://www.oracle.com/technetwork/database/enterprise-edition/downloads/index.html

Suponiendo que los dejamos en /opt descomprimir con el usuario “oracle” sobre el mismo directorio $HOME (por ejemplo):

Source   
unzip /opt/linuxamd64_12c_database_1of2.zip -d /home/oracle/
unzip /opt/linuxamd64_12c_database_2of2.zip -d /home/oracle/

Para realizar una instalación sobre RedHat Linux 6 o como es nuestro caso CentOS 6.4, debemos modificar un fichero para que el instalador reconozca adecuadamente el sistema operativo.
Editamos en fichero:

Source   
/home/oracle/database/stage/cvu/cv/admin/cvu_config

Y modificamos la línea:
Source   
CV_ASSUME_DISTID=OEL4

Por:
Source   
CV_ASSUME_DISTID=OEL6

Se va a realizar una instalación dejando para más tarde la creación de la instancia de base de datos.
Como usuario “oracle”, ejecutamos:
Source   
cd /home/oracle/database
./runInstaller

Seguimos las instrucciones del video

Suerte con las prácticas…

One thought on “Oracle 12c instalación en linux sobre CentOS 6

Deja un comentario