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:
- CentOS 6.4 x64, http://www.centos.org/
- 1.5 GB de RAM
- 3 GB de Swap
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):
[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:
[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):
[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:
sysctl -a
Para modificar los valores abrir el fichero:
/etc/sysctl.conf
Y verificar que existen o los valores son superiores de los parámetros:
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:
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:
groupadd oinstall
groupadd dba
useradd -g oinstall -G dba oracle
Fijamos el password del usuario “oracle” a uno que nos guste:
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:
/etc/security/limits.conf
Y añadir al final:
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft stack 10240
Editar el fichero:
/etc/pam.d/login
Y añadir al final si no existe:
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:
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:
/home/oracle/.bash_profile
Añadir al final:
#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):
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:
/home/oracle/database/stage/cvu/cv/admin/cvu_config
Y modificamos la línea:
CV_ASSUME_DISTID=OEL4
Por:
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:
cd /home/oracle/database
./runInstaller
Seguimos las instrucciones del video
Suerte con las prácticas…
Exelente guia, primera vez que veo una asi de detallada, muchas gracias lo guardare en evernote y seguire visitando tu pagina, tienes articulos de altisima importancia. 🙂