Utilizamos cookies propias y de terceros. [Más información sobre las cookies].
Política de cookies
Proyecto AjpdSoft

· Inicio
· Buscar
· Contactar
· Cookies
· Descargas
· Foros
· Historia
· Nosotros
· Temas
· Top 10
· Trucos
· Tutoriales
· Wiki

Oracle: Instalar Oracle Database 12c en Linux CentOS 7
Bases de Datos


Cómo instalar Oracle Database 12c en un equipo con el sistema operativo Linux CentOS 7. Mostramos en este tutorial cómo preparar un equipo con Linux CentOS 7 (válido para Red Hat y RHEL Red Hat Enterprise Linux) paso a paso para instalar Oracle 12c.



Preparar el entorno Linux CentOS 7 para instalar Oracle 12c, requisitos, paquetes, usuarios, grupos

A continuación mostraremos paso a paso cómo configurar nuestro sistema Linux CentOS 7 para poder instalar Oracle 12c. Todos estos pasos los realizaremos con el superusuario root o bien con un usuario con permisos para ejecutar comandos en modo sudo (ha de estar en sudoers).

Requisitos físicos mínimos, memoria RAM, espacio en disco

Oracle recomienda, para su versión Oracle 12c, los siguientes requisitos mínimos. Obviamente, en función del uso que vayamos a darle al servidor de base de datos Oracle que montaremos, deberemos dimensionarlo adecuadamente. A continuación mostramos los requisitos mínimos:

  1. 2GB de RAM mínima para Oracle.
  2. Memoria de intercambio Swap, al menos el doble que la memoria RAM.
  3. 8GB de espacio en disco.
  4. 1GB de espacio libre en el directorio /tmp para la instalación.
  5. Oracle soporta las siguientes distribuciones de Linux: RHEL (Red Hat Enterprise Linux), CentOS, Oracle Linux.

A partir de estos requisitos mínimos, en cada instalación y en función de su uso, carga y disponibilidad deberemos dimensionarlos apropiadamente, sobre todo el uso de RAM y el espacio en disco para los tablespaces.

 

Configuración de red, IP, nombre de red, Linux CentOS 7

En primer lugar realizaremos las comprobaciones oportunas para que la configuración de red de nuestro servidor Linux CentOS 7 sea la adecuada:

  • Revisaremos el fichero /etc/hosts y verificaremos que está escrito correctamente el nombre de red del equipo. Para ello podremos editar este fichero con el comando:

    nano /etc/hosts (o bien vi /etc/hosts)

Configuración de red, IP, nombre de red, Linux CentOS 7

Un ejemplo del contenido de este fichero /etc/hosts:

127.0.0.1 localhost srvoracle12.ajpdsoft.local
::1 localhost srvoracle12.ajpdsoft.local

Configuración de red, IP, nombre de red, Linux CentOS 7

  • Revisaremos el nombre de red (nombre DNS o hostname) del equipo, podremos establerlo con el comando:

    hostnamectl --static set-hostname srvora12.ajpdsoft.local

    (Cambiando lógicamente "srvora12.ajpdsoft.local" por el nombre de red que queramos establer al equipo Linux)

Configuración de red, IP, nombre de red, Linux CentOS 7

  • Es muy recomendable usar una dirección IP estática (no DHCP), podremos comprobar la configuración de la dirección IP editando el fichero /etc/sysconfig/network-scripts/ifcfg-ens160 con el comando:

    nano /etc/sysconfig/network-scripts/ifcfg-ens160

    (el fichero ifcfg-ens160 puede variar en función de la distribución de Linux y tipo de interfaz de red)

    Un ejemplo del contenido de este fichero de configuración de red:

    Configuración de red, IP, nombre de red, Linux CentOS 7

  • Si hemos realziado cambios en la configuración de red deberemos reiniciar el servicio de red para aplicar los cambios, podremos hacerlo con el comando:

    systemctl restart network.service

    Configuración de red, IP, nombre de red, Linux CentOS 7

 

Memoria RAM libre, swap en Linux CentOS para Oracle 12c

Para comprobar la memoria RAM libre del equipo podremos ejecutar el comando:

free -m -h

Deberemos tener mínimo 2GB de memoria RAM libre. Para el caso de la swap Oracle recomienda que tengamos el doble que la memoria RAM, si bien más adelante en el proceso de instalación veremos que este requisito se puede omitir:

Memoria RAM libre, swap en Linux CentOS para Oracle 12c

 

Grupos de seguridad, usuarios para Oracle en Linux CentOS 7

A continuación mostraremos los comandos para crear los usuarios y grupos en el sistema operativo Linux CentOS 7 necesarios para Oracle.

  • Los grupos de seguridad que se crearán "oinstall", "dba", "oper", los crearemos con los comandos Linux:

    groupadd -g 501 oinstall
    groupadd -g 502 dba
    groupadd -g 503 oper

  • Crearemos el usuario "oracle" y lo haremos miembro de los grupos "oinstall", "dba" y "oper", con el comando:

    useradd -u 501 -g oinstall -G dba,oper oracle

  • Estableceremos una contraseña para el usuario "oracle" con el comando:

    passwd oracle

Grupos de seguridad, usuarios para Oracle en Linux CentOS 7

 

Parámetro de seguridad SELINUX a permissive

Estableceremos el parámetro de seguridad de SELINUX a permissive, para ello editaremos el fichero /etc/selinux/config con el comando:

nano /etc/selinux/config

Editaremos el valor del parámetro SELINUX y lo cambiaremos a permissive, quedando:

SELINUX=permissive

Parámetro de seguridad SELINUX a permissive

Este cambio requiere de reinicio del servidor. Podemos reiniciarlo con:

shutdown -r now

 

Conexión a Internet en el equipo Linux para descargar paquetes

Es conveniente disponer de conexión a Internet en el servidor de Linux CentOS, dado que probablemente la necesitemos más adelante para descargar e instalar determinados paquetes. Por ello deberemos tener correctamente configurados los DNS, editando el fichero /etc/resolv.conf con:

nano /etc/resolv.conf

Conexión a Internet en el equipo Linux para descargar paquetes

Y añadiendo los "nameserver" que consideremos, por ejemplo:

nameserver 8.8.8.8
nameserver 8.8.4.4

Conexión a Internet en el equipo Linux para descargar paquetes

También deberemos tener correctamente configurada la puerta de enlace (gateway) de red, que normalmente será la IP del router de nuestra red LAN. La puerta de enlace se puede establecer en la configuración de red, como hemos indicando aquí, en GATEWAY.

Si hemos realizado cambios deberemos reiniciar el servicio de red para que se apliquen:

systemctl restart network.service

Configuración de red, IP, nombre de red, Linux CentOS 7


Instalar paquetes necesarios para Oracle 12c en Linux CentOS 7

En primer lugar verificaremos qué paquetes tenemos instalados y cuáles no de los necesarios, para ello podemos ejecutar el siguiente script en la consola de comandos de Linux:

rpm -q --qf '%{NAME}-%{VERSION}-%{RELEASE}(%{ARCH})\n' binutils \
gcc \
gcc-c++ \
glibc \
glibc-common \
glibc-devel \
glibc-headers \
ksh \
libaio \
libaio-devel \
libgcc \
libstdc++ \
libstdc++-devel \
libXext \
libXtst \
libX11 \
libXau \
libXi \
make \
sysstat \
unixODBC \
unixODBC-devel \
zlib-devel \
compat-libcap1 \
compat-libstdc++-33

En el caso de una instalación de Instalar Linux CentOS 7.0 Minimal devolverá lo siguiente (por defecto):

el paquete gcc no está instalado
el paquete gcc-c++ no está instalado
el paquete glibc-devel no está instalado
el paquete glibc-headers no está instalado
el paquete ksh no está instalado
el paquete libaio-devel no está instalado
el paquete libstdc++-devel no está instalado
el paquete sysstat no está instalado
el paquete unixODBC-devel no está instalado
el paquete zlib-devel no está instalado
el paquete compat-libcap1 no está instalado
el paquete compat-libstdc++-33 no está instalado

El siguiente paso será ir instalando cada paquete en nuestro sistema Instalar Linux CentOS 7.0:

yum install gcc
yum install gcc-c++
yum install glibc-devel
yum install glibc-headers
yum install ksh
yum install libaio-devel
yum install libstdc++-devel
yum install sysstat
yum install unixODBC-devel
yum install zlib-devel
yum install compat-libcap1
yum install compat-libstdc++-33

Instalar paquetes necesarios para Oracle 12c en Linux CentOS 7

Es posible que para algunos paquetes nos indique que ya están instalados, por ejemplo para "libstdc++-devel" nos lo indicará pues ya se instala con otro paquete anterior, como una de sus dependencias. Por lo que el comando "yum install libstdc++-devel" mostrará el mensaje:

Complementos cargados:fastestmirror
Loading mirror speeds from cached hostfile
* base: mirror.tedra.es
* epel: ftp.rediris.es
* extras: mirror.tedra.es
* rpmforge: mirrors.ircam.fr
* updates: mirror.tedra.es
El paquete libstdc++-devel-4.8.3-9.el7.x86_64 ya se encuentra instalado con su versión más reciente
Nada para hacer

Instalaremos todos los paquetes hasta que el comando inicial de comprobación de paquetes instalados nos devuelva:

binutils-2.23.52.0.1-16.el7(x86_64)
gcc-4.8.3-9.el7(x86_64)
gcc-c++-4.8.3-9.el7(x86_64)
glibc-2.17-78.el7(x86_64)
glibc-common-2.17-78.el7(x86_64)
glibc-devel-2.17-78.el7(x86_64)
glibc-headers-2.17-78.el7(x86_64)
ksh-20120801-22.el7_1.1(x86_64)
libaio-0.3.109-12.el7(x86_64)
libaio-devel-0.3.109-12.el7(x86_64)
libgcc-4.8.3-9.el7(x86_64)
libstdc++-4.8.3-9.el7(x86_64)
libstdc++-devel-4.8.3-9.el7(x86_64)
libXext-1.3.2-2.1.el7(x86_64)
libXtst-1.2.2-2.1.el7(x86_64)
libX11-1.6.0-2.1.el7(x86_64)
libXau-1.0.8-2.1.el7(x86_64)
libXi-1.7.2-2.1.el7(x86_64)
make-3.82-21.el7(x86_64)
sysstat-10.1.5-7.el7(x86_64)
unixODBC-2.3.1-10.el7(x86_64)
unixODBC-devel-2.3.1-10.el7(x86_64)
zlib-devel-1.2.7-13.el7(x86_64)
compat-libcap1-1.10-7.el7(x86_64)
compat-libstdc++-33-3.2.3-72.el7(x86_64)

Instalar paquetes necesarios para Oracle 12c en Linux CentOS 7

 

Configurar parámetros del kernel para Oracle 12c en Linux CentOS 7

Oracle recomienda que se añadan los siguientes parámetros con los siguientes valores al kernel Linux:

fs.file-max = 6815744
kernel.sem = 250 32000 100 128
kernel.shmmni = 4096
kernel.shmall = 1073741824
kernel.shmmax = 4398046511104
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576
fs.aio-max-nr = 1048576
net.ipv4.ip_local_port_range = 9000 65500

Para ello editaremos el fichero /etc/sysctl.conf con:

nano /etc/sysctl.conf

Configurar parámetros del kernel para Oracle 12c en Linux CentOS 7

Y añadiremos las siguientes líneas:

fs.file-max = 6815744
kernel.sem = 250 32000 100 128
kernel.shmmni = 4096
kernel.shmall = 1073741824
kernel.shmmax = 4398046511104
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576
fs.aio-max-nr = 1048576
net.ipv4.ip_local_port_range = 9000 65500

Configurar parámetros del kernel para Oracle 12c en Linux CentOS 7

Aplicaremos los cambios ejecutando el comando Linux:

sysctl -p

Configurar parámetros del kernel para Oracle 12c en Linux CentOS 7

 

Límites usuario oracle en shell

Estableceremos los siguientes límites para el usuario oracle creado anteriormente:

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

Para ello editaremos el fichero /etc/security/limits.conf con:

nano /etc/security/limits.conf

Y añadiremos las siguientes líneas:

Límites usuario oracle en shell

 

Crear .bash_profile para usuario Oracle

A continuación añadiremos las variables de entorno de Oracle 12c en el fichero .bash_profile del usuario oracle, para ello editaremos el fichero:

nano /home/oracle/.bash_profile

Y añadiremos las siguientes líneas:

# Oracle Settings
export TMP=/tmp

export ORACLE_HOSTNAME=srvora12.ajpdsoft.local
export ORACLE_UNQNAME=AJPDSOFT
export ORACLE_BASE=/ora01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/12.1.0/db_1
export ORACLE_SID=AJPDSOFT

PATH=/usr/sbin:$PATH:$ORACLE_HOME/bin

export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib;
export CLASSPATH=$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib;

alias cdob='cd $ORACLE_BASE'
alias cdoh='cd $ORACLE_HOME'
alias tns='cd $ORACLE_HOME/network/admin'
alias envo='env | grep ORACLE'

umask 022

envo

Crear .bash_profile para usuario Oracle

En la configuración anterior, hemos introducido:

  • Para ORACLE_SID y ORACLE_UNQNAME el valor AJPDSOFT. En estas variables de entorno introduciremos el nombre del SID de la base de datos Oracle 12c que queramos establecer (más adelante nos lo solicitará en el proceso de creación de la base de datos).
  • Hemos establecido la ubicación del software de Oracle 12c, en ORACLE_BASE y ORACLE_HOME, más adelante crearemos esta estructura de directorios.
  • En ORACLE_HOSTNAME hemos introducido el nombre hostname (nombre DNS de red) del equipo Linux.

 

Crear estructura de directorios para Oracle 12c y asignar permisos a usuario oracle

Crearemos la estructura de directorios o carpetas donde se instalará y residirá el software de Oracle 12c, siguiendo la ruta establecida en las variables de entorno ORACLE_BASE y ORACLE_HOME del usuario oracle anteriormente:

mkdir -p /ora01/app/oracle/product/12.1.0/db_1

Haremos propietario de la carpeta raíz /ora01 y las subcarpetas al usuario oracle con el comando:

chown oracle:oinstall -R /ora01

Crear estructura de directorios para Oracle 12c y asignar permisos a usuario oracle



Instalar Oracle 12c en Linux CentOS 7

Una vez realizados todos los pasos anteriores para preparar el entorno Linux CentOS 7 para Oracle 12c procederemos a descargar los dos ficheros .zip de instalación de Oracle 12c desde la web oficial de Oracle:

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

Nota importante: en nuestro caso, puesto que estamos usando una distribución de Linux CentOS 7 sin modo gráfico (Minimal), realizaremos la descarga de los ficheros de instalación de Oracle 12c desde otro equipo de la red y, una vez descargados, los transferiremos al equipo Linux mediante SSH con Filezilla Client.

Leeremos los términos de licencia, los aceptaremos si estamos de acuerdo y descargaremos, para el caso de Linux x64, los ficheros:

Linux x86-64 File 1, File 2

Instalar Oracle 12c en Linux CentOS 7

Como ya hemos comentado, en nuestro caso transferiremos los ficheros descargados de instalación de Oracle del equipo Windows al servidor Linux CentOS mediante Filezilla Client:

Instalar Oracle 12c en Linux CentOS 7

Una vez que dispongamos de los ficheros de instalación de Oracle 12c en el equipo Linux CentOS 7, seguiremos los siguientes pasos:

1. Estableceremos los permisos de propietario para el usuario oracle para la carpeta /tmp/oracle que es la carpeta donde residen los ficheros de instalación de Oracle, para ello ejecutaremos el comando:

chown oracle:oinstall -R /tmp/oracle/

Instalar Oracle 12c en Linux CentOS 7

2. A partir de ahora todo el proceso de instalación de Oracle se realizará con el usuario oracle, por lo tanto iniciaremos sesión con este usuario con el comando Linux:

su - oracle

Instalar Oracle 12c en Linux CentOS 7

3. Accederemos a la carpeta donde hayamos transferido o descargado los ficheros de instalación de Oracle 12c, en nuestro caso:

cd /tmp/oracle

4. Verificamos que están los ficheros de instalación de oracle listando el contenido de la carpeta con:

ll

Deben aparecer los ficheros:

linuxamd64_12102_database_1of2.zip
linuxamd64_12102_database_2of2.zip

Instalar Oracle 12c en Linux CentOS 7

5. Descomprimiremos los ficheros de instalación de Oracle 12c con los comandos:

unzip linuxamd64_12102_database_1of2.zip
unzip linuxamd64_12102_database_2of2.zip

Instalar Oracle 12c en Linux CentOS 7

6. La descompresión nos habrá creado una carpeta llamada "database" con todos los ficheros de instalación de Oracle 12c descomprimidos:

Instalar Oracle 12c en Linux CentOS 7

7. Este paso deberemos seguirlo solo si no disponemos de modo gráfico en nuestro sistema Linux CentOS 7 (en distribuciones Minimal no tendremos modo gráfico). Deberemos instalar los siguientes paquetes para ejecutar ventanas gráficas de nuestro equipo Linux en otro PC, dado que a partir de ahora la instalación de Oracle 12c se llevará a cabo desde el modo gráfico. Usaremos Xming y PuTTY para ejecutar las ventanas gráficas de nuestro Linux CentOS 7 en nuestro equipo cliente con Windows 7. A continuación mostramos un tutorial sobre cómo ejecutar ventanas gráficas de Linux en Windows:

Para el caso concreto de Linux CentOS 7 Minimal, instalaremos los siguientes paquetes (con el usuario root):

yum install xorg-x11-xauth
yum install xorg-x11-fonts-*
yum install xorg-x11-utils

Estableceremos los permisos apropiados para que el usuario oracle pueda usar el modo gráfico ejecutando los siguientes comandos:

chown user:group ~/.Xauthority
chmod 0600 ~/.Xauthority

Instalar Oracle 12c en Linux CentOS 7

Añadiremos la siguiente línea al fichero /etc/ssh/sshd_config:

X11Forwarding yes

Instalar Oracle 12c en Linux CentOS 7

Añadiremos la variable de entorno DISPLAY=localhost:0 al fichero .bash_profile del usuario oracle, para ello editaremos el fichero con el comando:

nano /home/oracle/.bash_profile

Añadiremos la siguiente línea:

export DISPLAY=localhost:0

Reiniciaremos el servicio SSH con el comando:

systemctl restart sshd.service

Y estableceremos la siguiente configuración en PuTTY:

Instalar Oracle 12c en Linux CentOS 7

Abriremos Xming en nuestro equipo Windows, abriremos sesión SSH en PuTTY con la configuración anterior, comprobaremos si el modo gráfico está disponible con el comando:

echo $DISPLAY

Debería devolvernos algo así como "localhost:10.0", por lo tanto ya podremos ejecutar ventanas gráficas de Linux en nuestro equipo Windows.

8. Si ya disponemos del modo gráfico continuaremos con la instalación de Oracle 12c, siempre con el usuario oracle (su - oracle). Accederemos a la carpeta donde hemos descomprimido los ficheros de instalación de Oracle 12c:

cd /tmp/oracle/database

y ejecutaremos:

./runInstaller

Instalar Oracle 12c en Linux CentOS 7

Si tenemos correctamente configurado el modo gráfico, el comando anterior debe abrir una ventana que será el asistente de instalación de Oracle Database 12c. En nuestro caso abrirá dicha ventana sobre el equipo Windows 7 con el que estamos conectados por SSH al equipo Linux CentOS 7 (con PuTTY y Xming). A continuación seguiremos los pasos del asistente de instalación de Oracle 12c. En el primer paso introduciremos una cuenta de correo electrónico para recibir notificaciones de Oracle (parches, problemas de segurdad, novedades, etc.), no es obligatorio introducir el mail. Además, si disponemos de cuenta en Oracle Support podemos introducir el mail con el que nos dimos de alta y la contraseña y de esta forma recibiríamos las notificaciones a través de My Oracle Support. Estos datos no son obligatorios:

Instalar Oracle 12c en Linux CentOS 7

A continuación el asistente nos da varias opciones:

  • Crear y Configurar Base de Datos: instalará el software de Oracle 12c sin base de datos, posteriormente podremos ejecutar el asistente para crear una base de datos.
  • Instalar Sólo Software de Base de Datos: solo instalará el software de Oracle 12c, no creará base de datos.
  • Actualizar Base de Datos Existente: realizará una actualización del Oracle actualmente instalado y actualizará la base de datos. Esta opción solo debe usarse para actualizaciones y previa copia de seguridad.

En nuestro caso elegiremos "Crear y Configurar Base de Datos" para instalar Oracle Database 12c en Linux CentOS 7 y crear una base de datos:

Instalar Oracle 12c en Linux CentOS 7

A continuación elegiremos el tipo de sistema para Oracle Database 12c, en función del tipo el asistente realizará la configuración apropiada. Los tipos disponibles:

  • Clase Escritorio: este tipo de clase de sistema es conveniente elegirlo cuando vamos a instalar Oracle 12c en equipos para pruebas o desarrollo que van a tener otros usos, creará una base de datos inicial y una configuración mínima para que Oracle no consuma todos los recursos de la máquina.
  • Clase Servidor: este tipo es el recomendable para montar un servidor de Oracle dedicado, para equipos dedicados por completo a base de datos Oracle. En este caso el asistente configurará Oracle para que consuma el máximo de recursos del equipo.

Instalar Oracle 12c en Linux CentOS 7

Elegiremos a continuación el tipo de instalación, las opciones:

  • Instalación de Base de Datos de Instancia Única: esta es la opción normal para instalaciones sin altos requisitos de disponibilidad, montará Oracle en un equupo individual y autónomo, con una única instancia.
  • Instalación de Base de Datos de Oracle Real Application Clusters: esta opción es usada en instalación con altos requisitos de disponibilidad, se usa para montar clúster de Oracle con varios equipos.
  • Instalación de la Base de Datos Oracle RAN One Node: igual que la anterior pero solo un nodo.

En nuestro caso elegiremos la primera opción "Instalación de Base de Datos de Instancia Única":

Instalar Oracle 12c en Linux CentOS 7

Elegiremos ahora el tipo de instalación, las opciones:

  • Instalación Típica: este tipo de instalación es menos personalizable que la Instalación Avanzada, el asistente nos permitirá modificar solo las opciones básicas, el resto las establecerá por defecto.
  • Instalación Avanzada: el asistente nos permitirá personalizar todas las opciones de instalación (contraseñas para las cuentas SYS, SYSTEM, SYSMAN y DBSNMP, juegos de caracteres, idiomas, copias de seguridad, almacenamiento ASM, etc.).

En nuestro caso elegiremos "Instalación Avanzada":

Instalar Oracle 12c en Linux CentOS 7

Elegiremos el idioma del producto y pulsaremos "Siguiente":

Instalar Oracle 12c en Linux CentOS 7

A continuación podremos seleccionar la edición de la Base de Datos, en función del fichero descargado y de algunos otros parámetros el asistente nos permitirá modificar la edición o no, las opciones posibles. Si disponemos de licenciamiento deberemos elegir la edición que hayamos adquirido:

  • Enterprise Edition.
  • Standard Edition.
  • Standard Edition One.

Instalar Oracle 12c en Linux CentOS 7

A continuación deberemos elegir el "Directorio Base de Oracle" (por defecto nos habrá introducido el especificado en las variables de entorno en pasos anteriores), es conveniente dejar el directorio base especificado ya que es el que hemos creado y al que se le han establecido los permisos apropiados en pasos anteriores:

/ora01/app/oracle

Para el caso de la Ubicación del Software de Oracle ocurre lo mismo, debemos dejar el que aparece por defecto pues es el directorio configurado con los permisos apropiados:

/ora01/app/oracle/product/12.1.0/db_1

Instalar Oracle 12c en Linux CentOS 7

Elegiremos el directorio para el Inventario de Oracle, como en los anteriores, es recomendable dejar el que nos indica por defecto:

/ora01/app/oraInventory

El Nombre del Grupo oraInventory nos establecerá oinstall por defecto:

Instalar Oracle 12c en Linux CentOS 7

Elegiremos a continuación el tipo de configuración para la base de datos que se creará, las opciones:

  • Uso General: es la opción por defecto y la habitual, se usa para montar un servidor de base de datos Oracle Database para uso general, para transacciones, para consultas, para inserciones y modificaciones.
  • Almacenes de Datos: si vamos a usar este servidor de Oracle Database solo como un almacén de datos para alojar en él datos y poder consultarlos, no para uso habitual de inserciones, modificaciones, consultas, podremos elegir esta opción.

En nuestro caso marcaremos "Uso General" y pulsaremos "Siguiente":

Instalar Oracle 12c en Linux CentOS 7

A continuación elegiremos los identificadores de la base de datos:

  • Nombre de la Base de Datos Global: podemos introducir un nombre con el formato nombreBD.nombreequipo.dominio, por ejemplo: bdaplicaciones.ajpdsoft.local.
  • Identificador del Sistema Oracle (SID): un nombre que identifique la base de datos, por ejemplo "bdaplicaciones".
  • Crear como Base de Datos del Contenedor: si vamos a tener varias bases de datos en un mismo servidor de Oracle Database podremos marcar la opción "Crear como Base de Datos del Contenedor" para agruparlas posteriormente en una visualización global. En este caso deberemos introducir el nombre de Base de Datos de Conexión, por ejemplo "BDCONTENEDOR".

El SID de la base de datos debe coincidir con el indicado en las variables de entorno en pasos anteriores, si no coincide deberemos editar el fichero .bash_profile del usuario oracle (/home/oracle/.bash_profile) y cambiar las líneas siguientes por el SID especificado en este paso de la instalación:

export ORACLE_UNQNAME=AJPDSOFT
export ORACLE_SID=AJPDSOFT

Instalar Oracle 12c en Linux CentOS 7

Elegiremos ahora las opciones de Memoria, Juego de Caracteres y Esquemas de Ejemplo. En la pestaña "Memoria" podremos indicar la cantidad de memoria RAM que se asignará a Oracle y podremos marcar la opción "Activar Gestión Automática de Memoria" para que sea el propio Oracle quien decida cómo distribuir dicha asignación a sus procesos (SGA, PGA). Obviamente a mayor memoria RAM asignada mejor rendimiento se obtendrá del servidor Oracle, si bien siempre hay que dejar memoria RAM libre para otros procesos del sistema Linux y para el propio sistema operativo Linux. Asignaremos la RAM en función del uso que queramos dar al servidor de base de datos, si será un servidor de producción con muchos usuarios concurrentes y con muchas transacciones intentaremos asignar toda la RAM posible, si su uso va a ser de pruebas y desarrollo podremos asignar menos RAM. De todas formas estos valores podremos ajustarlos en cualquier momento, después de la instalación:

Instalar Oracle 12c en Linux CentOS 7

En la pestaña "Juegos de Caracteres" podremos elegir el juego de caracteres para la base de datos. Este punto es muy importante, si tenemos aplicaciones de facturación, contabilidad, Recursos Humanos, almacén, control de strock, CRM, etc. deberemos asegurarnos de qué juego de caracteres soportan y el que necesiten (el desarrollador de software debe proporcionárnoslo). Además, si vamos a realizar un import de datos ya existentes en nuestro nuevo servidor de base de datos Oracle 12c es MUY recomendable que coincidan el juego de caracteres de la base de datos importada con el del nuevo servidor. Si va a ser una base de datos nueva y los aplicativos pueden adaptar el juego de caracteres dejaremos la opción por defecto que es WE8MSWIN1252:

Instalar Oracle 12c en Linux CentOS 7

Para los Esquemas de Ejemplo, Oracle 12c por defecto no creará esquemas de ejemplo con usuarios y tablas, si queremos que se creen deberemos marcar "Crear Base de Datos con Esquemas de Ejemplo" en la pestaña "Esquemas de Ejemplo":

Instalar Oracle 12c en Linux CentOS 7

A continuación elegiremos el tipo de almacenamiento, salvo que lo hayamos preparado previamente no podremos elegir ASM (Oracle Automatic Storage Management) dado que , por lo tanto marcaremos "Sistema de Archivos", en "Especificar Ubicación de Archivo de Base de Datos" elegiremos la ruta donde se guardarán los ficheros de la base de datos. Es recomendable que estén alojados (al menos para entornos de producción) en almacenamiento en fibra (SAN) con discos redundantes y en un almacenamiento diferente al del software de Oracle y al del sistema operativo:

Instalar Oracle 12c en Linux CentOS 7

Si disponemos de Enterprise Manager Cloud Control podremos indicar aquí los datos de conexión, esta herramienta permite gestionar de manera centralizada varios servidores de base de datos Oracle Database 12c. En nuestro caso no disponemos de Enterprise Manager Cloud Control, por lo que continauremos la instalación sin introducir los datos de conexión:

Instalar Oracle 12c en Linux CentOS 7

Si queremos disponer de un área de recuperación rápida de la base de datos, marcaremos "Activar Recuperación" e indicaremos una ubicación para los archivos de recuperación, por defecto "Sistema de Archivos" y ubicación:

/ora01/app/oracle/recovery_area

Si disponemos de ASM (Automatic Storage Management) podremos marcar "Oracle Automatic Storage Management" para que el área de recuperación se guarde también en ASM. Pero no es el caso de instalaciones por defecto.

Instalar Oracle 12c en Linux CentOS 7

A continuación estableceremos las contraseñas para los usuarios que el asistente de instalación de Oracle 12c creará por defecto (SYS, SYSTEM, DBSNMP, PDBADMIN). Si queremos establecer la misma contraseña para todas las cuentas marcaremos la opción "Usar la misma contraseña para todas las cuentas":

Instalar Oracle 12c en Linux CentOS 7

Si introducimos contraseñas que no cumplan los requisitos de seguridad mínimos, el asistente nos mostrará un aviso como el siguiente:

Instalar Oracle 12c en Linux CentOS 7

Con el texto: [INS-30011] La contraseña de ADMIN introducida no cumple con los estándares recomendados por Oracle ¿Seguro que desea continuar?

Estableceremos ahora los grupos de seguridad del sistema operativo Linux CentOS para cada grupo de gestión de Oracle, serán los grupos que ya hemos creado en pasos anteriores:

  • Grupo de Administración de Base de Datos (OSDBA): por defecto "dba".
  • Grupo del Operador de Base de Datos (OSOPER): por defecto "oper".
  • Grupo de Recuperación y Copia de Seguridad de Base de Datos (OSBACKUPDBA): por defecto "dba".
  • Grupo Administrativo de Data Guard (OSDGDBA): por defecto "dba".
  • Grupo Administrativo de Gestión de Claves de Cifrado (OSKMDBA): por defecto "dba".

Estos grupos de seguridad (dba, oper) deberán estar creados en el sistema operativo previamente, como ya hemos indicado en este paso del tutorial.

Seleccionaremos los grupos de seguridad del sistema operativo Linux asignados a cada grupo de Oracle y pulsaremos "Siguiente":

Instalar Oracle 12c en Linux CentOS 7

A continuación el asistente de instalación de Oracle 12c realizará la comprobación de requisitos, verificando que el sisetma operativo cuenta con los requisitos mínimos para la instalación. Si hay algún requisito que no se adecua lo mostrará en una lista, si el requisito no es obligatorio nos dejará continuar con la instalación. En nuestro caso, nuestro equipo Linux CentOS, no cumple con el requisito de que la memoria swap de intercambio sea del doble de tamaño de la memoria RAM del equipo. Puesto que este requisito no es obligatorio podremos marcar "Ignorar Todo" y continuar con la instalación pulsando en "Siguiente":

Instalar Oracle 12c en Linux CentOS 7

Si hemos ignorado requisitos nos mostrará un mensaje de aviso como el siguiente:

Instalar Oracle 12c en Linux CentOS 7

Con el texto: [INS-13016] Ha seleccionado ignorar algunos de los requisitos de esta instalación. Esta acción puede afectar a la configuración del producto ¿Seguro que desea continuar?

Por último, antes de la instalación definitiva de Oracle Database 12c, el asistente nos mostrará un resumen con todas las opciones elegidas en los pasos anteriores, revisaremos que todo es correcto y pulsaremos en "Instalar":

Instalar Oracle 12c en Linux CentOS 7

Se iniciará el proceso de instalación del software de Oracle 12c en el sistema Linux:

Instalar Oracle 12c en Linux CentOS 7

En una parte de la instalación nos mostrará una ventana para que ejecutemos unos script. Es importante que antes de continuar con la instalación ejecutemos estos scripts. Para ello anotaremos la ruta y el fichero de script, por defecto:

  • /ora01/app/oraInventory/orainstRoot.sh

  • /ora01/app/oracle/product/12.1.0/db_1/root.sh

Instalar Oracle 12c en Linux CentOS 7

Sin cerrar la ventana anterior, abriremos una nueva ventana de terminal en nuestro Linux con el superusuario root y ejecutaremos estos scripts:

/ora01/app/oraInventory/orainstRoot.sh
/ora01/app/oracle/product/12.1.0/db_1/root.sh

Instalar Oracle 12c en Linux CentOS 7

Si todo es correcto nos devolverá:

[root@srvora12 ~]# /ora01/app/oraInventory/orainstRoot.sh
Cambiando permisos de /ora01/app/oraInventory.
Agregando permisos de lectura y escritura para el grupo.
Eliminando permisos de lectura, escritura y ejecución para el público.

Cambiando el nombre de grupo de /ora01/app/oraInventory a oinstall.
La ejecución del archivo de comandos ha terminado
[root@srvora12 ~]# /ora01/app/oracle/product/12.1.0/db_1/root.sh
Performing root user operation.

The following environment variables are set as:
ORACLE_OWNER= oracle
ORACLE_HOME= /ora01/app/oracle/product/12.1.0/db_1

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.

Tras ejecutar los scripts volveremos a la ventana anterior y pulsaremos "Aceptar" para continuar con el proceso de instalación de Oracle 12c:

Instalar Oracle 12c en Linux CentOS 7

Una vez finalizada la instalación del software de Oracle 12c, si hemos elegido la opción de crear la base de datos, a continuación se iniciará el asistente para crear una base de datos en el servidor Oracle Database 12c:

Instalar Oracle 12c en Linux CentOS 7

Una vez finalizado el proceso de creación de la base de datos para el servidor Oracle 12c, el asistente nos mostrará la siguiente ventana, desde la que podremos anotar la URL para acceder (vía navegador web) a EM Database Express, por defecto:

http://nombre_servidor:5500/em

Pulsando en "Gestión de contraseñas" podremos establecer las contraseñas para los usuarios que el asistente habrá creado:

Instalar Oracle 12c en Linux CentOS 7

Nos mostrará la ventana de Gestión de Contraseñas, desde donde podremos establecer las contraseñas para los usuarios SYS, SYSTEM, AUDSYS, GSMUSER, SPATIAL_WFS_ADMIN_USR, SPATIAL_CSW_ADMIN_USR, APEX_PUBLIC_USER, SYSDG, DIP, SYSBACKUP, MDDATA, GSMCATUSER, SYSKM, ORACLE_OCM, OLAPSYS, SI_INFORMTN_SCHEMA, DVSYS, ORDPLUGINS, XDB:

Instalar Oracle 12c en Linux CentOS 7

Si alguna de las contraseñas establecidas no cumple con la política de complejidad de contraseñas recomendada por Oracle nos mostrará el siguiente mensaje:

Instalar Oracle 12c en Linux CentOS 7

Con el texto: La contraseña para los siguientes usuarios no cumple la política de complejidad de contraseñas recomendada por Oracle. La contraseña debe tener un mínimo de 8 caracteres. Además, debe contener al menos un carácter en mayúscula, uno en minúscula y un dígito: SYS, SYSTEM. ¿Desea continuar?

Aceptaremos la ventana del Asistente de Configuración de Base de Datos:

Instalar Oracle 12c en Linux CentOS 7

Y el asistente nos indicará que el proceso de instalación de Oracle 12c y de creación de base de datos ha concluido satisfactoriamente. Ya podremos cerrar el modo gráfico pulsando en "Cerrar" y tendremos instalado Oracle 12c en nuestro equipo con Linux CentOS 7 Minimal:

Instalar Oracle 12c en Linux CentOS 7

 

 

Comprobar acceso a Oracle 12c en Linux CentOS 7 Minimal, verificar instalación, configuración final de Oracle 12c

Comprobar estado de la base de datos Oracle 12c en Linux

Tras la instalación de Oracle 12c en Linux CentOS 7 Minimal, ahora podremos realizar algunas comprobaciones y configuraciones. Lo primero que haremos es comprobar si la base de datos está correctamente iniciada y accesible desde el servidor de Linux. Para ello, desde una ventana de terminal, con el usuario "oracle":

su - oracle

Accederemos a SQL*Plus con el comando:

sqlplus /nolog

Nos conectaremos a la base de datos Oracle del servidor actual, puesto que no tenemos otra no será necesario indicar el SID, podremos conectarnos con el comando:

conn / as sysdba

Una vez conectados, desde SQL*Plus, ejecutaremos la siguiente select para comprobar el estado de la base de datos:

select status from v$instance;

Si todo es correcto debe devolvernos el valor "OPEN", esto quiere decir que Oracle 12c y la base de datos se ha instalado y creado correctamente.

Comprobar acceso a Oracle 12c en Linux CentOS 7 Minimal, verificar instalación, configuración final de Oracle 12c

El resultado de la ejecución de los comandos anteriores:

[root@srvora12 ~]# su - oracle
Último inicio de sesón:miércoles jul 8 23:56:29 CEST 2015en pts/0
ORACLE_UNQNAME=AJPDSOFT
ORACLE_SID=AJPDSOFT
ORACLE_BASE=/ora01/app/oracle
ORACLE_HOSTNAME=srvora12.ajpdsoft.local
ORACLE_HOME=/ora01/app/oracle/product/12.1.0/db_1

[oracle@srvora12 ~]$ sqlplus /nolog
SQL*Plus: Release 12.1.0.2.0 Production on Thu Jul 9 08:21:57 2015
Copyright (c) 1982, 2014, Oracle. All rights reserved.
SQL> conn / as sysdba
Connected.
SQL> select status from v$instance;

STATUS
------------
OPEN

 

Configurar Listener, métodos de nomenclatura, nombre del Servicio de Red Local en Oracle 12c y Linux con netca

Oracle 12c incluye una herramienta gráfica para configurar el Listener, los Métodos de Nomenclatura, el Nombre de Servicio de Red y el Uso de Directorios. En realidad esta configuración se almacena en varios ficheros (listener.ora, tnsnames.ora, sqlnet.ora, etc.). Con el asistente gráfico nos ayudará a modificar el contenido de estos ficheros, aunque también podríamos hacerlo de forma manual.

En el caso del Listener y del Nombre de Servicio de Red Local, en la instalación realizada anteriormente, ya habrá creado estos ficheros de configuración. Si bien ahora mostraremos cómo editarlos o modificarlos. Para ello, desde la líne de comandos y siempre con el usuario "oracle:

su - oracle

Ejecutaremos el siguiente comando:

netca

Que nos abrirá la ventana gráfica del Asistente de Configuración de Red de Oracle. Desde aquí podremos:

  • Configurar el Listener: modificar un Listener existente, crear un Listener, eliminar un Listener.
  • Configurar Métodos de Nomenclatura.
  • Configurar Nombre del Servicio de Red Local.
  • Configurar uso de Directorios.

Aunque el asistente de instalación, como ya hemos dicho, los habrá creado y configurado, como ejemplo mostramos la ventana del asistente de configuración de red de oracle. Por ejemplo, marcando "Configuración del Listener" y pulsando "Siguiente":

Configurar Listener, métodos de nomenclatura, nombre del Servicio de Red Local en Oracle 12c y Linux con netca

Podremos agregar un Listener, configurar un Listener existente, eliminar un Listener existente o cambiarle el nombre a un Listener existente. Por ejemplo, para volver a configurar el Listener que crea el proceso de instalación de Oracle 12c marcaremos "Volver a Configurar" y pulsaremos "Siguiente":

Configurar Listener, métodos de nomenclatura, nombre del Servicio de Red Local en Oracle 12c y Linux con netca

Seleccionaremos el Listener creado en el proceso de instalación, por defecto con el nombre LISTENER y pulsaremos "Siguiente":

Configurar Listener, métodos de nomenclatura, nombre del Servicio de Red Local en Oracle 12c y Linux con netca

Elegiremos el protocolo de conexión, normalmente TCP y pulsaremos "Siguiente":

Configurar Listener, métodos de nomenclatura, nombre del Servicio de Red Local en Oracle 12c y Linux con netca

Elegiremos el puerto de escucha que se usará para la conexión con Oracle, por defecto el 1521 y pulsaremos "Siguiente":

Configurar Listener, métodos de nomenclatura, nombre del Servicio de Red Local en Oracle 12c y Linux con netca

En realidad, el asistente anterior, creará o modificará los ficheros:

/ora01/app/oracle/product/12.1.0/db_1/network/admin/listener.ora

Un ejemplo de su contenido:

# listener.ora Network Configuration File: /ora01/app/oracle/product/12.1.0/db_1/network/admin/listener.ora
# Generated by Oracle configuration tools.

LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = srvora12.ajpdsoft.local)(PORT = 1521))
)
)

El fichero:

/ora01/app/oracle/product/12.1.0/db_1/network/admin/tnsnames.ora

Con un ejemplo de contenido:

# tnsnames.ora Network Configuration File: /ora01/app/oracle/product/12.1.0/db_1/network/admin/tnsnames.ora
# Generated by Oracle configuration tools.

AJPDSOFT =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = srvora12.ajpdsoft.local)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = AJPDSOFT)
)
)

 

Configuración cortafuegos firewall Linux CentOS 7 para acceso externo a Oracle 12c

Apertura de puertos de Oracle en firewall Linux CentOS 7

Si queremos permitir el acceso desde otros equipos de la red al servidor de base de datos Oracle 12c montado sobre Linux CentOS 7 deberemos añadir algunas reglas en el cortafuegos de Linux. Estas reglas podremos añadirlas para habilitar el acceso desde diferentes zonas (redes) de nuestra organización. Por lo tanto, en primer lugar, mostraremos las zonas disponibles en el servidor Linux con el comando:

firewall-cmd --get-zones

Nos devolverá algo así:

block dmz drop external home internal public trusted work

En función del acceso que queramos permitir elegiremos una zona u otra, la zona por defecto (si no se especifica) se obtiene con el comando:

firewall-cmd --get-default-zone

que normalmente es "public".

En nuestro caso usaremos la zona por defecto "public" y abriremos los siguientes puertos: 1521 (Listener de Oracle), 5500 (consola de administración vía https) y 8080 (consola de administración vía http). Para abrir estos puertos en el cortafuegos de Linux CentOS 7 ejecutaremos los siguientes comandos:

firewall-cmd --permanent --zone=public --add-port=5500/tcp
firewall-cmd --permanent --zone=public --add-port=8080/tcp
firewall-cmd --permanent --zone=public --add-port=1521/tcp

Para aplicarlos ejecutaremos el siguiente comando:

firewall-cmd --reload

A partir de ahora podremos acceder desde cualquier equipo de la red al servidor Oracle 12c.

 

Deshabilitar y habilitar el cortafuegos firewall de Linux CentOS

Si estamos realizando pruebas y si estamos en modo de testeo y necesitamos asegurarnos de que el firewall de Linux CentOS no está bloqueando conexiones podremos deshabilitarlo y desactivarlo temporalmente con los comandos:

  • Para deshabilitar el cortafuegos:

    systemctl disable firewalld

Devolverá algo así:

rm '/etc/systemd/system/basic.target.wants/firewalld.service'
rm '/etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service'

  • Para detener el cortafuegos:

    systemctl stop firewalld

  • Para comprobar el estado del cortafuegos:
  • systemctl status firewalld

Devolverá algo así si está detenido:

    firewalld.service - firewalld - dynamic firewall daemon
    Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled)
    Active: inactive (dead)
    jul 15 10:45:45 srvora12.ajpdsoft.local systemd[1]: Starting firewalld - dynamic firewall daemon...
    jul 15 10:45:48 srvora12.ajpdsoft.local systemd[1]: Started firewalld - dynamic firewall daemon.
    jul 15 11:00:18 srvora12.ajpdsoft.local systemd[1]: Stopping firewalld - dynamic firewall daemon...
    jul 15 11:00:19 srvora12.ajpdsoft.local systemd[1]: Stopped firewalld - dynamic firewall daemon.

Lógicamente de esta forma dejaremos el servidor Linux expuesto, por lo tanto solo debemos detenerlo en casos de pruebas y testeos y volver a activarlo cuando el servidor entre en producción.

  • Para habilitar el cortafuegos:

    systemctl enable firewalld

Devolverá algo así:

ln -s '/usr/lib/systemd/system/firewalld.service' '/etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service'
ln -s '/usr/lib/systemd/system/firewalld.service' '/etc/systemd/system/basic.target.wants/firewalld.service'

  • Para iniciar el cortafuegos:

    systemctl start firewalld

  • Para comprobar el estado del cortafuegos:
  • systemctl status firewalld

Devolverá algo así si está iniciado:

    firewalld.service - firewalld - dynamic firewall daemon
    Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled)
    Active: active (running) since mi 2015-07-15 11:20:01 CEST; 12s ago
    Main PID: 27947 (firewalld)
    CGroup: /system.slice/firewalld.service
    27947 /usr/bin/python -Es /usr/sbin/firewalld --nofork --nopid
    jul 15 11:20:00 srvora12.ajpdsoft.local systemd[1]: Starting firewalld - dynamic firewall daemon...
    jul 15 11:20:01 srvora12.ajpdsoft.local systemd[1]: Started firewalld - dynamic firewall daemon.

 

Configurar acceso a consola de administración Oracle Enterprise Manager Database Express 12c

En el caso de la instalación de Oracle 12c en Linux, por defecto solo se activará el acceso HTTPS a la consola de administración web de Oracle Enterprise Manager Database Express 12c, a través del puerto 5500, abriendo un navegador y accediendo a la URL:

https://IP_Servidor_Oracle:5500/em

Otra posibilidad, si la anterior falla o no queremos usar HTTPS, es usar HTTP, para ello previamente tendremos que ejecutar el paquete dbms_xdb_config.sethttpport(8080). Podremos hacer esto accediendo desde el equipo Linux CentOS con Oracle 12c, con el usuario "oracle" (su - oracle), a SQL*Plus, con el comando:

sqlplus /nolog

Una vez dentro de SQL*Plus nos conectaremos a la base de datos con:

conn / as sysdba

Una vez conectados a la base de datos ejecutaremos el siguiente comando:

exec dbms_xdb_config.sethttpport(8080);

De esta forma habilitaremos el acceso HTTP mediante el puerto 8080 (que tendremos que abrir en el firewall como indicamos en el paso anterior) a Oracle Enterprise Manager Database Express 12c.

Para el caso del acceso HTTPS sería igual que lo anterior pero ejecutando el siguiente paquete, si bien en la instalación de Oracle 12c en Linux CentOS 7 ya viene activado el acceso HTTPS, lo mostramos por si se quiere cambiar el puerto de acceso:

exec dbms_xdb_config.sethttpsport(5500);

Para comprobar que los puertos anteriores para acceso HTTP y HTTPS están correctamente esteblecidos, en SQL*Plus podemos ejecutar las consultas SQL:

  • Para comprobar el puerto HTTPS:

    select dbms_xdb_config.getHttpsPort() from dual;

    Nos devolverá:

    DBMS_XDB_CONFIG.GETHTTPSPORT()
    ------------------------------
    5500

  • Para comprobar el puerto HTTP:

    select dbms_xdb.getHttpPort() from dual;

    Nos devolverá:

    DBMS_XDB.GETHTTPPORT()
    ----------------------
    8080

Para comprobar que el Listener de Oracle está escuchando por estos puertos podemos ejecutar (fuera de SQL*Plus, en la línea de comandos de Linux):

lsnrctl status | grep HTTP

Devolverá algo así:

(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)
(HOST=localhost)(PORT=8080))(Presentation=HTTP)(Session=RAW))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcps)
(HOST=localhost)(PORT=5500))
(Security=(my_wallet_directory=/ora01/app/oracle/admin/AJPDSOFT/xdb_wallet))
(Presentation=HTTP)(Session=RAW))

 

Revisar y activar arranque automático de Oracle 12c al iniciar equipo Linux CentOS 7

A continuación mostramos los pasos para comprobar que tenemos habilitado el arranque automático de Oracle 12c en nuestro equipo Linux CentOS:

1. En primer lugar verificaremos que tenemos las variables de entorno correctas para Oracle 12c en Linux, normalmente para el usuario "oracle". Las variables de entorno que tiene que tener este usuario:

ORACLE_HOSTNAME
ORACLE_UNQNAME
ORACLE_BASE
ORACLE_HOME
ORACLE_SID
PATH
LD_LIBRARY_PATH
CLASSPATH

Ya hemos explicado anteriormente cómo declarar estas variables de entorno.

2. Comprobar el contenido del fichero /etc/oratab, que debe ser algo así:

AJPDSOFT:/ora01/app/oracle/product/12.1.0/db_1:Y

(donde AJPDSOFT será el SID de la base de datos Oracle 12c y /ora01/app/oracle/product/12.1.0/db_1 la ruta de instalación del software)

3. Crear un fichero en /etc/init.d llamado "dbora", con el comando:

nano /etc/init.d/dbora

(o bien con vi /etc/init.d/dbora)

Con el siguiente contenido:

#! /bin/sh

# Cambiar valor de ORACLE_HOME por la ruta de instalación de Oracle
ORACLE_HOME=/ora01/app/oracle/product/12.1.0/db_1

# Cambiar valor de ORACLE por el usuario de instalación de Oracle en Linux
ORACLE=oracle

PATH=${PATH}:$ORACLE_HOME/bin
HOST=`hostname`
PLATFORM=`uname`
export ORACLE_HOME PATH

#
if [ ! "$2" = "ORA_DB" ] ; then
      runuser -l $ORACLE  $0 $1 ORA_DB
      if [ "$PLATFORM" = "Linux" ] ; then
         touch /var/lock/subsys/dbora
      fi
      exit
   fi
#
case $1 in
'start')
        $ORACLE_HOME/bin/dbstart $ORACLE_HOME &
        $ORACLE_HOME/bin/lsnrctl start LISTENER
        ;;
'stop')
        $ORACLE_HOME/bin/dbshut $ORACLE_HOME &
        rm -f /var/lock/subsys/dbora
        $ORACLE_HOME/bin/lsnrctl stop LISTENER
        ;;
*)
        echo "usage: $0 {start|stop}"
        exit
        ;;
esac
#
exit 

En el código anterior para el fichero "dbora" se asume que el Listener de Oracle tiene el nombre LISTENER, si tiene otro nombre se debe cambiar en donde aparezca LISTENER. También se asume que el usuario de Oracle en Linux es "oracle" y que el directorio de instalación de Oracle 12c es "/ora01/app/oracle/product/12.1.0/db_1". Si no es así se deben cambiar estos valores por los correctos.

4. Estableceremos los permisos apropiados para este fichero creado con los comandos:

chgrp dba /etc/init.d/dbora
chmod 750 /etc/init.d/dbora

5. Crearemos los enlaces simbólicos a este fichero con los comandos:

ln -s /etc/init.d/dbora /etc/rc.d/rc0.d/K01dbora
ln -s /etc/init.d/dbora /etc/rc.d/rc3.d/S99dbora
ln -s /etc/init.d/dbora /etc/rc.d/rc5.d/S99dbora

Y ya podremos reiniciar el servidor Linux para verificar que se inicia de forma automática Oracle 12c y el Listener.

 

Posibles errores de Oracle 12c en Linux y su solución

Error ORA-12541 al acceder a Oracle 12c desde un equipo de la red

Si al intentar conectarnos desde un equipo de la red a Oracle 12c, por ejemplo mediante ODBC, nos aparece este error:

Unable to connect
SQLState=S1000
[Oracle][ODBC][Ora]ORA-12541: TNS:no listener

o también:

Unable to connect
SQLState=08004
[Oracle][ODBC][Ora]ORA-12154: TNS:could not resolve the connect identifier specified

El problema podría ser debido a que no tenemos el Listener de Oracle iniciado en Linux. A continuación mostramos unos sencillos pasos para ver el estado del Listener y para iniciarlo en caso de estar detenido:

  • En primer lugar deberemos comprobar que tenemos creado el Listener en Oracle, podremos hacerlo con la herramienta gráfica netca o bien accediendo a:

    nano $ORACLE_HOME/network/admin/listener.ora

y verificando que existe el fichero del Listener y está correctamente configurado. Un ejemplo del contenido de este fichero:

# listener.ora Network Configuration File: /ora01/app/oracle/product/12.1.0/db_1/network/admin/listener.ora
# Generated by Oracle configuration tools.

LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = srvora12.ajpdsoft.local)(PORT = 1521))
)
)

  • Con el usuario "oracle" (su - oracle) ejecuta el siguiente comando para acceder a la consola de administración del Listener:

    lsnrctl

  • Ejecuta el siguiente comando dentro de la consola del Listener para ver el estado actual:

    status

Si devuelve algo así:

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST= srvora12.ajpdsoft.local)(PORT=1521)))
TNS-12541: TNS:no listener
TNS-12560: TNS:protocol adapter error
TNS-00511: No listener
Linux Error: 111: Connection refused

Indica que el servicio o demonio del Listener no está iniciado. En este caso se puede iniciar con el comando:

startup

Ahora al ejecutar nuevamente un "status" debería devolver algo así:

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=soracle)(PORT=1521)))
STATUS of the LISTENER
------------------------
Alias LISTENER
Version TNSLSNR for Linux: Version 12.1.0.2.0 - Production
Start Date 12-JUL-2015 23:51:37
Uptime 0 days 0 hr. 6 min. 17 sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
Listener Parameter File /ora01/app/oracle/product/12.1.0/db_1/network/admin/listener.ora
Listener Log File /ora01/app/oracle/diag/tnslsnr/srvora12/listener/alert/log.xml
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=localhost)(PORT=1521)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcps)(HOST=localhost)(PORT=5500))(Security=(my_wallet_directory=/ora01/app/oracle/admin/AJPDSOFT/xdb_wallet))(Presentation=HTTP)(Session=RAW))
Services Summary...
Service "AJPDSOFT" has 1 instance(s).
Instance "AJPDSOFT", status READY, has 1 handler(s) for this service...
Service "AJPDSOFTXDB" has 1 instance(s).
Instance "AJPDSOFT", status READY, has 1 handler(s) for this service...
Service "bdcontenedor" has 1 instance(s).
Instance "AJPDSOFT", status READY, has 1 handler(s) for this service...
The command completed successfully

 

Error ORA-01034 y ORA-27101 al acceder a Oracle 12c desde SQL*Plus

Si al intentar acceder con SQL*Plus a Oracle 12c en Linux nos muestra este error:

ORA-01034: ORACLE not available
ORA-27101: shared memory realm does not exist
Linux-x86_64 Error: 2: No such file or directory
Additional information: 3640
Additional information: -2082761913
Process ID: 0
Session ID: 0 Serial number: 0

Podría ser debido a que la instancia de Oracle no está iniciada. Para iniciarla se puede acceder a SQL*Plus y ejecutar el comando:

startup

 

 

Artículos relacionados

 

Créditos

Artículo realizado íntegramente por Alonsojpd miembro fundador del Proyecto AjpdSoft.

Artículo en inglés.


Anuncios


Enviado el Viernes, 07 agosto a las 13:38:42 por ajpdsoft
Visita nuestro nuevo sitio web con programas y contenidos actualizados: Proyecto A