En la siguiente entrada se explican los pasos a seguir para realizar una instalación de una infraestructura grid (Oracle Restart) versión 19c en un servidor único con sistema operativo Oracle Linux 7 o Red Hat Enterprise Linux.
Configuración sistema operativo
Antes de comenzar con el proceso de instalación de los binarios, debemos realizar una serie de configuraciones en el sistema operativo para adaptarlo a nuestra instalación. Las configuraciones a realizar se pueden encontrar en la documentación oficial de oracle 19c https://docs.oracle.com/en/database/oracle/oracle-database/19/cwlin/server-configuration-checklist-for-oracle-grid-infrastructure.html#GUID-A7E9141D-1AFC-4CBF-846B-CD579FCFD9C0
El primer paso que debemos realizar es la modificación del fichero /etc/hosts. En el fichero debemos introducir la IP y el «Fully Qualified Name» de la maquina donde vamos a realizar la instalación.

A continuación, debemos instalar los paquetes rpm necesarios para la infraestructura grid de Oracle. Se pueden instalar de forma automática llamando directamente al repositorio de Oracle o de forma individual paquete a paquete.
Instalación paquetes de forma automática
yum install -y https://yum.oracle.com/repo/OracleLinux/OL7/latest/x86_64/getPackage/oracle-database-preinstall-19c-1.0-1.el7.x86_64.rpm |
Instalación paquetes de forma manual
yum install -y bc yum install -y binutils yum install -y compat-libcap1 yum install -y compat-libstdc++-33 yum install -y dtrace-utils yum install -y elfutils-libelf yum install -y elfutils-libelf-devel yum install -y fontconfig-devel yum install -y glibc yum install -y glibc-devel yum install -y ksh yum install -y libaio yum install -y libaio-devel yum install -y libdtrace-ctf-devel yum install -y libXrender yum install -y libXrender-devel yum install -y libX11 yum install -y libXau yum install -y libXi yum install -y libXtst yum install -y libgcc yum install -y librdmacm-devel yum install -y libstdc++ yum install -y libstdc++-devel yum install -y libxcb yum install -y make yum install -y net-tools # Clusterware yum install -y nfs-utils # ACFS yum install -y python # ACFS yum install -y python-configshell # ACFS yum install -y python-rtslib # ACFS yum install -y python-six # ACFS yum install -y targetcli # ACFS yum install -y smartmontools yum install -y sysstat yum install -y unixODBC |
Parámetros Kernel
Configuramos los parámetros del Kernel modificando el fichero /etc/sysctl.conf o /etc/sysctl.d/98-oracle.conf
fs.file-max = 6815744 kernel.sem = 250 32000 100 128 kernel.shmmni = 4096 kernel.shmall = 1073741824 kernel.shmmax = 4398046511104 kernel.panic_on_oops = 1 net.core.rmem_default = 262144 net.core.rmem_max = 4194304 net.core.wmem_default = 262144 net.core.wmem_max = 1048576 net.ipv4.conf.all.rp_filter = 2 net.ipv4.conf.default.rp_filter = 2 fs.aio-max-nr = 1048576 net.ipv4.ip_local_port_range = 9000 65500 |
Aplicamos los cambios lanzando el siguiente comando:
/sbin/sysctl –p /sbin/sysctl -p /etc/sysctl.d/98-oracle.conf |
Límites de Usuario
Configuramos los límites de usuario modificando el fichero /etc/security/limits.conf e introducimos las siguientes líneas al final del fichero.
###################### # Limites Oracle 19c ###################### oracle soft nofile 1024 oracle hard nofile 65536 oracle soft nproc 16384 oracle hard nproc 16384 oracle soft stack 10240 oracle hard stack 32768 oracle hard memlock 134217728 oracle soft memlock 134217728 |
Espacio en disco
El espacio necesario en disco es el siguiente:
SWAP | Si la memoria RAM esta comprendida entre 4 y 16 GB, la SWAP sera igual al tamaño de la memoria RAM. Si la memoria RAM es superior a 16 GB, la SWAP sera de 16 GB. |
/tmp | Al menos 1 GB libre en el filesystem /tmp |
/u01 | Al menos 80 GB. En este FS irán los binarios de la infraestructura de GRID y RDBMS |
Grupos y usuarios de sistema operativo
En este apartado creamos los grupos y usuario de sistema operativo necesarios para la instalación. En nuestro caso al no querer separación de roles, únicamente creamos el usuario «oracle». Pero si queremos realizar la instalación con separación de roles, creamos el usuario «grid» para la instalación de los binarios correspondientes a la infraestructura de GRID y el usuario «oracle» para la instalación de los binarios del RDBMS.
##Creación grupos: groupadd -g 54321 oinstall groupadd -g 54322 dba groupadd -g 54323 oper groupadd -g 54324 backupdba groupadd -g 54325 dgdba groupadd -g 54326 kmdba groupadd -g 54327 asmdba groupadd -g 54328 asmoper groupadd -g 54329 asmadmin groupadd -g 54330 racdba ##Creación usuario: useradd -u 54321 -g oinstall -G dba,oper,backupdba,dgdba,kmdba,asmdba,asmoper,asmadmin,racdba oracle |
Permisos filesystem Oracle
Asignamos el usuario, grupo y permisos al filesystem /u01
chown -R oracle:oinstall /u01 chmod -R 775 /u01 |
Selinux y Firewall
Tanto el selinux como el firewall deben estar deshabilitados.
En el fichero /etc/selinux/config el parámetro «SELINUX» debe estar a disabled
SELINUX=disabled |
Para deshabilitar el firewall, ejecutamos estos dos comandos:
systemctl stop firewalld systemctl disable firewalld |
Variables entorno
Ahora vamos a crear dos perfiles con las variables de entorno. Un perfil con las variables para acceder a los binarios de infraestructura de GRID y otro perfil con las variables para los binarios de RDBMS. Ambos perfiles se crearan en el «home» (/home/oracle/) del usuario «oracle».
### profile_GI19 export ORACLE_BASE=/u01/app/oracle export ORACLE_HOME=/u01/app/19.3.0/grid export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/OPatch:$PATH export ORACLE_SID=+ASM echo » « echo «———————————————–« echo » « echo » Entorno Oracle Restart 19c « echo » « echo «———————————————–« echo » « |
##profile_RDBMS19 export ORACLE_BASE=/u01/app/oracle export ORACLE_HOME=/u01/app/oracle/product/19.3.0/db_1 export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/OPatch:$PATH export GI_HOME=/u01/app/19.3.0/grid export ORACLE_SID=XXXXX echo » « echo «—————————————————————-« echo » « echo » Entorno RDBMS generico 19c con GI 19c « echo » « echo «—————————————————————« echo » « |
Instalación software Grid Infrastructure
Previo al proceso de instalación, se debe descargar el software de la página oficial de Oracle: https://www.oracle.com/database/technologies/oracle19c-linux-downloads.html
Cargamos las variables de entorno con el fichero «profile_GI19» y descomprimimos el fichero descargado «LINUX.X64_193000_grid_home.zip» en la ruta /u01/app/19.3.0/grid
Una vez descomprimido ejecutamos el fichero «gridSetup.sh» y seguimos el proceso de instalación tal y como se muestra en las siguientes capturas de pantalla.
En la primera pantalla seleccionamos la opción «Configure Oracle Grid Infrastucture for a Standaone Server (Oracle Resart)

En esta pantalla, debemos elegir un nombre para el diskgroup de ASM y la ubicación del disco que lo compone. En nuestro caso, llamaremos al diskgroup «DG_DATA» con redundancia «externa» al ser un disco que proviene de una cabina de almacenamiento.
Si se desea configurar el ASM Filter Driver (AFD), se debe marcar la opción «configure Oracle ASM Filter Driver»

Ahora creamos las contraseñas de los usuarios SYS y ASMSNMP. En nuestro caso creamos los dos usuarios con la misma contraseña.


En la siguiente pantalla, nos da la opción de registrar nuestra instalación con un servidor de monitorización «Oracle Enterprise Manager Cloud Control». Si se desea registrar nuestra infraestructura de GRID, marcando el «check» e introduciendo los datos que se piden. En nuestro caso no lo configuramos por lo que no marcamos la opción «Register with Enterprise Manager (EM) Cloud Control»

Ahora seleccionamos el nombre de los grupos de sistema operativo creados anteriormente.

Seleccionamos la ubicación del «ORACLE_BASE», en nuestro caso sera /u01/app/oracle

Seleccionamos la ubicación del inventario Oracle, en nuestro caso sera /u01/app/oraInventory

Durante el proceso de instalación, ciertas configuraciones se realizan con el usuario administrador del sistema operativo «root». En la siguiente pantalla nos da la opción de introducir las credenciales de «root» para que sea el propio software de instalación el que realice las configuraciones o también si nuestro usuario «oracle» tiene configurado el «sudo» podemos introducir las credenciales para que realice las configuraciones de forma automática. En nuestro caso, vamos a ejecutar manualmente las configuraciones por lo que no marcamos la opción «Automatically run configuration scripts»

En la siguiente pantalla se chequean todos los pre-requisitos necesarios para realizar la instalación. En el caso de detectar algún fallo, te indica cuales han fallado y como solucionarlo. En nuestro caso hemos pasado todos los chequeos correctamente y sin errores.

En la siguiente pantalla guardamos la configuración de la instalación en un fichero de respuesta. Esta opción es muy útil por si si van a realizar instalaciones desatendidas.

Pulsamos sobre el botón «Install» y comenzara el proceso de instalación



En la siguiente pantalla nos indica que tenemos que lanzar con el usuario «root» los siguientes scripts:
/u01/app/oraInventory/orainstRoot.sh /u01/app/19.3.0/grid/root.sh |

[root@pruovmoracle19]# /u01/app/oraInventory/orainstRoot.sh Changing permissions of /u01/app/oraInventory. Adding read,write permissions for group. Removing read,write,execute permissions for world. Changing groupname of /u01/app/oraInventory to oinstall. The execution of the script is complete. [root@pruovmoracle19]# |
[root@pruovmoracle19]# /u01/app/19.3.0/grid/root.sh Performing root user operation. The following environment variables are set as: ORACLE_OWNER= oracle ORACLE_HOME= /u01/app/19.3.0/grid Enter the full pathname of the local bin directory: [/usr/local/bin]: Copying dbhome to /usr/local/bin … Copying oraenv to /usr/local/bin … Copying coraenv to /usr/local/bin … Creating /etc/oratab file… Entries will be added to the /etc/oratab file as needed by Database Configuration Assistant when a database is created Finished running generic part of root script. Now product-specific root actions will be performed. Using configuration parameter file: /u01/app/19.3.0/grid/crs/install/crsconfig_params The log of current session can be found at: /u01/app/oracle/crsdata/pruovmoracle19/crsconfig/roothas_2020-03-04_12-45-08AM.log LOCAL ADD MODE Creating OCR keys for user ‘oracle’, privgrp ‘oinstall’.. Operation successful. LOCAL ONLY MODE Successfully accumulated necessary OCR keys. Creating OCR keys for user ‘root’, privgrp ‘root’.. Operation successful. CRS-4664: Node pruovmoracle19 successfully pinned. 2020/03/04 12:45:22 CLSRSC-330: Adding Clusterware entries to file ‘oracle-ohasd.service’ pruovmoracle19 2020/03/04 12:48:01 /u01/app/oracle/crsdata/pruovmoracle19/olr/backup_20200304_124801.olr 724960844 2020/03/04 12:48:01 CLSRSC-327: Successfully configured Oracle Restart for a standalone server [root@pruovmoracle19]# |
Una vez ejecutados los 2 scripts, el proceso de instalación continua y finaliza.


Instalación software RDBMS
Previo al proceso de instalación, se debe descargar el software de la página oficial de Oracle: https://www.oracle.com/database/technologies/oracle19c-linux-downloads.html
Cargamos las variables de entorno con el fichero «profile_RDBMS19» y descomprimimos el fichero descargado «LINUX.X64_193000_db_home.zip» en la ruta /u01/app/oracle/product/19.3.0/db_1
Una vez descomprimido ejecutamos el fichero «runInstaller.sh» y seguimos el proceso de instalación tal y como se muestra en las siguientes capturas de pantalla.
Como solo vamos a instalar el software, sin crear base de datos, en la siguiente pantalla seleccionamos la opción «Set up Software Only».

Seleccionamos el tipo de instalación para la base de datos, en nuestro caso elegimos la opción «Single instance database installation».

Seleccionamos la edición de base de datos, en nuestro caso «Enterprise Edition».

Introducimos la ubicación del ORACLE_BASE, en nuestro caso /u01/app/oracle

Seleccionamos los grupos

Tal y como se indica en el proceso de instalación de la infraestructura GRID, hay ciertas configuraciones que se realizan con el usuario administrador del sistema operativo «root». En la siguiente pantalla nos da la opción de introducir las credenciales de «root» para que sea el propio software de instalación el que realice las configuraciones o también si nuestro usuario «oracle» tiene configurado el «sudo» podemos introducir las credenciales para que realice las configuraciones de forma automática. En nuestro caso, vamos a ejecutar manualmente las configuraciones por lo que no marcamos la opción «Automatically run configuration scripts»

En la siguiente pantalla se chequean los pre-requisitos necesarios para poder realizar la instalación de los binarios. En caso de fallar alguno, te muestra el que ha fallado y como solventarlo.

Nos guardamos un fichero de respuesta para realizar futuras instalaciones desatendidas.

Pulsamos sobre el botón «Install» y comenzara el proceso de instalación.



En la siguiente pantalla nos indica que tenemos que lanzar con el usuario «root» el siguiente script:
/u01/app/oracle/product/19.3.0/db_1/root.sh |

[root@pruovmoracle19]# /u01/app/oracle/product/19.3.0/db_1/root.sh Performing root user operation. The following environment variables are set as: ORACLE_OWNER= oracle ORACLE_HOME= /u01/app/oracle/product/19.3.0/db_1 Enter the full pathname of the local bin directory: [/usr/local/bin]: The contents of «dbhome» have not changed. No need to overwrite. The contents of «oraenv» have not changed. No need to overwrite. The contents of «coraenv» have not changed. No need to overwrite. Entries will be added to the /etc/oratab file as needed by Database Configuration Assistant when a database is created Finished running generic part of root script. Now product-specific root actions will be performed. Oracle Trace File Analyzer (TFA – Standalone Mode) is available at : /u01/app/oracle/product/19.3.0/db_1/bin/tfactl Note : tfactl will use TFA Service if that service is running and user has been granted access tfactl will configure TFA Standalone Mode only if user has no access to TFA Service or TFA is not installed [root@pruovmoracle19]# |
Una vez ejecutado el script finaliza la instalación.
