Búsqueda de sitios web

Cómo instalar Oracle Database 12c en RHEL/CentOS 7


La base de datos Oracle es uno de los sistemas de gestión de bases de datos relacionales (RDBMS) más utilizados en entornos empresariales. Desarrollado, mantenido y respaldado por Oracle Corporation, este RDBMS a menudo se instala sobre una versión de Enterprise Linux (RHEL, CentOS o Scientific Linux). Esto lo convierte en un sistema operativo muy sólido: elección de base de datos.

En este artículo, explicaremos cómo instalar Oracle 12c Release 2 en un servidor RHEL/CentOS 7 GUI.

Atención: los usuarios de RHEL/CentOS 6 pueden seguir esta guía para instalar Oracle Database 12c en RHEL/CentOS 6.x

Vamos a empezar.

Requisitos previos:

Luego de instalar Oracle 12c, la configuración se realizará a través de una interfaz gráfica. Esa es la razón por la que necesitamos un servidor CentOS 7 con el grupo de software X Window System instalado.

Leer también: Instalar GUI (Gnome) en el servidor RHEL/CentOS 7

Además, tenga en cuenta que se requiere una cuenta de Oracle para descargar el archivo de instalación de Oracle Database 12c (3,2 GB). No te preocupes por esto, ya que puedes crear una cuenta gratis.

Por último, asegúrese de que su servidor tenga al menos 2 GB de RAM y 30 GB de espacio disponible en disco. Estos requisitos de hardware son seguros para un entorno de prueba como el nuestro, pero deberán aumentar si considera utilizar Oracle en producción.

Preparación para la instalación de Oracle 12c

1. Para comenzar, asegúrese de que todos los paquetes actualmente instalados en su sistema RHEL/CentOS 7 estén actualizados a sus últimas versiones.

yum update -y

2. A continuación, instaló todas las dependencias necesarias para el RDBMS, junto con los paquetes zip y descomprimir.

yum install -y binutils.x86_64 compat-libcap1.x86_64 gcc.x86_64 gcc-c++.x86_64 glibc.i686 glibc.x86_64 glibc-devel.i686 glibc-devel.x86_64 ksh compat-libstdc++-33 libaio.i686 libaio.x86_64 libaio-devel.i686 libaio-devel.x86_64 libgcc.i686 libgcc.x86_64 libstdc++.i686 libstdc++.x86_64 libstdc++-devel.i686 libstdc++-devel.x86_64 libXi.i686 libXi.x86_64 libXtst.i686 libXtst.x86_64 make.x86_64 sysstat.x86_64 zip unzip

3. Cree la cuenta de usuario y los grupos para Oracle.

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

Finalmente, establezca una contraseña para la cuenta de Oracle recién creada.

passwd oracle

4. Agregue los siguientes parámetros del kernel al archivo /etc/sysctl.conf.

fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152
kernel.shmmax = 8329226240
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 = 1048586

y aplicarlos:

sysctl -p
sysctl -a

5. Establezca los límites para Oracle en el archivo /etc/security/limits.conf.

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

6. Cree un directorio llamado /stage y extraiga el archivo de instalación comprimido.

unzip linuxx64_12201_database.zip -d /stage/

Antes de continuar, cree otros directorios que se utilizarán durante la instalación real y asigne los permisos necesarios.

mkdir /u01
mkdir /u02
chown -R oracle:oinstall /u01
chown -R oracle:oinstall /u02
chmod -R 775 /u01
chmod -R 775 /u02
chmod g+s /u01
chmod g+s /u02

Ahora estamos listos para ejecutar el script de instalación.

7. Abra una sesión de GUI en el servidor RHEL/CentOS 7 e inicie el script de instalación.

/stage/database/runInstaller 

y siga los pasos que le presenta el instalador.

Instalación de Oracle 12c en CentOS 7

8. Introduzca la dirección de correo electrónico asociada a su cuenta de Oracle (opcional).

9. Elija Crear y configure una base de datos.

10. Seleccione la clase Escritorio ya que estamos configurando una configuración mínima y una base de datos inicial.

11. Seleccione las siguientes opciones para la configuración básica.

  • Base de Oracle: /u01/app/oracle
  • Ubicación del software: /u01/app/oracle/product/12.2.0/dbhome_1
  • Ubicación del archivo de base de datos: /u01
  • Grupo OSDBA: dba
  • Nombre de la base de datos global: su elección. Elegimos tecmint aquí.
  • Tome nota de la contraseña, ya que la utilizará cuando se conecte por primera vez a la base de datos.
  • Desmarque la base de datos Crear como contenedor.

12. Deje el directorio Inventario predeterminado como /u01/app/oraInventory.

13. Verifique que las comprobaciones previas a la instalación se completen sin errores.

El instalador no le permitirá pasar este punto si encuentra algún error.

14. Espere hasta que se complete la instalación de Oracle 12c.

Es posible que en algún momento durante la instalación se le solicite ejecutar un par de scripts para configurar permisos adicionales o corregir problemas. Esto se ilustra aquí:

Y aquí:

cd /u01/app/oraInventory
./orainstRoot.sh
cd /u01/app/oracle/product/12.2.0/dbhome_1
./root.sh

15. Después de eso, deberá volver a la pantalla anterior en la sesión GUI y hacer clic en Aceptar para que la instalación pueda continuar.

Cuando termine, se le presentará el siguiente mensaje indicando la URL de Oracle Enterprise Manager:

https://localhost:5500/em

Toques finales de Oracle 12c

16. Para permitir conexiones desde fuera del servidor, deberá abrir los siguientes puertos:

1521/TCP
5500/TCP
5520/TCP
3938/TCP

Como sigue:

firewall-cmd --zone=public --add-port=1521/tcp --add-port=5500/tcp --add-port=5520/tcp --add-port=3938/tcp --permanent
firewall-cmd --reload

17. A continuación, inicie sesión como oracle utilizando la contraseña que eligió anteriormente y agregue las siguientes líneas al archivo .bash_profile.

TMPDIR=$TMP; export TMPDIR
ORACLE_BASE=/u01/app/oracle; export ORACLE_BASE
ORACLE_HOME=$ORACLE_BASE/product/12.2.0/dbhome_1; export ORACLE_HOME
ORACLE_SID=tecmint; export ORACLE_SID
PATH=$ORACLE_HOME/bin:$PATH; export PATH
LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib:/usr/lib64; export LD_LIBRARY_PATH
CLASSPATH=$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib; export CLASSPATH

18. Finalmente, reemplace localhost con 0.0.0.0 activado.

vi $ORACLE_HOME/network/admin/listener.ora

19. El último paso consiste en recargar .bash_profile para aplicar la nueva configuración.

source .bash_profile

20. Y luego inicie sesión en la base de datos utilizando la cuenta del sistema y la contraseña elegida en el Paso 11 de la sección anterior.

sqlplus system@tecmint

Opcionalmente, creemos una tabla dentro de la base de datos tecmint donde insertaremos algunos registros de muestra de la siguiente manera.

SQL> CREATE TABLE NamesTBL
(id   NUMBER GENERATED AS IDENTITY,
name VARCHAR2(20));

Tenga en cuenta que las columnas IDENTIDAD se introdujeron por primera vez en Oracle 12c.

SQL> INSERT INTO NamesTBL (name) VALUES ('Gabriel');
SQL> INSERT INTO NamesTBL (name) VALUES ('Admin');
SQL> SELECT * FROM NamesTBL;

Permitir que Oracle se inicie al iniciar el sistema

21. Para permitir que el servicio de base de datos se inicie automáticamente al arrancar, agregue las siguientes líneas al archivo /etc/systemd/system/oracle-rdbms.service.

/etc/systemd/system/oracle-rdbms.service
Invoking Oracle scripts to start/shutdown Instances defined in /etc/oratab
and starts Listener

[Unit]
Description=Oracle Database(s) and Listener
Requires=network.target

[Service]
Type=forking
Restart=no
ExecStart=/u01/app/oracle/product/12.2.0/dbhome_1/bin/dbstart /u01/app/oracle/product/12.2.0/dbhome_1
ExecStop=/u01/app/oracle/product/12.2.0/dbhome_1/bin/dbshut /u01/app/oracle/product/12.2.0/dbhome_1
User=oracle

[Install]
WantedBy=multi-user.target

22. Por último, debemos indicar que la base de datos tecmint debe abrirse durante el arranque en /etc/oratab (Y: Sí).

Resumen

En este artículo, hemos explicado cómo instalar Oracle 12c en RHEL/CentOS 7, cómo crear y configurar una base de datos y cómo crear tablas e insertar filas de datos.

Además, es importante tener en cuenta que el servidor de la base de datos debería estar en funcionamiento cuando se inicie el sistema, y nuestra base de datos predeterminada debería estar disponible en ese momento.

Si tiene alguna pregunta o comentario sobre este artículo, no dude en enviarnos un mensaje mediante el siguiente formulario.