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.
- Requisitos físicos mínimos, memoria RAM, espacio en disco.
- Configuración de red, IP, nombre de red, Linux CentOS 7.
- Memoria RAM libre, swap en Linux CentOS para Oracle 12c.
- Grupos de seguridad, usuarios para Oracle en Linux CentOS 7.
- Parámetro de seguridad SELINUX a permissive.
- Instalar paquetes necesarios para Oracle 12c en Linux CentOS 7.
- Conexión a Internet en el equipo Linux para descargar paquetes.
- Configurar parámetros del kernel para Oracle 12c en Linux CentOS 7.
- Límites usuario oracle en shell.
- Crear .bash_profile para usuario Oracle.
- Crear estructura de directorios para Oracle 12c y asignar permisos a usuario oracle.
- 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.
- Configuración cortafuegos firewall Linux CentOS 7 para acceso externo a Oracle 12c.
- Configurar acceso a consola de administración Oracle Enterprise Manager Database Express 12c.
- Revisar y activar arranque automático de Oracle 12c al iniciar equipo Linux CentOS 7.
- Posibles errores de Oracle 12c en Linux y su solución.
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:
- 2GB de RAM mínima para Oracle.
- Memoria de intercambio Swap, al menos el doble que la memoria RAM.
- 8GB de espacio en disco.
- 1GB de espacio libre en el directorio /tmp para la instalación.
- 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)
Un ejemplo del contenido de este fichero /etc/hosts:
127.0.0.1 localhost srvoracle12.ajpdsoft.local
::1 localhost srvoracle12.ajpdsoft.local
Revisaremos el nombre de red (nombre DNS o hostname) del equipo, podremos establecerlo con el comando:
hostnamectl –static set-hostname srvora12.ajpdsoft.local
(Cambiando lógicamente «srvora12.ajpdsoft.local» por el nombre de red que queramos establecer al equipo Linux)
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:
Si hemos realizado 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
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:
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
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
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
Y añadiendo los «nameserver» que consideremos, por ejemplo:
nameserver 8.8.8.8
nameserver 8.8.4.4
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
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
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)
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
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
Aplicaremos los cambios ejecutando el comando Linux:
sysctl -p
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:
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
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
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
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:
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/
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
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
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
6. La descompresión nos habrá creado una carpeta llamada «database» con todos los ficheros de instalación de Oracle 12c descomprimidos:
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
Añadiremos la siguiente línea al fichero /etc/ssh/sshd_config:
X11Forwarding yes
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:
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
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:
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:
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.
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»:
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»:
Elegiremos el idioma del producto y pulsaremos «Siguiente»:
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.
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
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:
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»:
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
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:
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:
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»:
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:
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:
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.
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»:
Si introducimos contraseñas que no cumplan los requisitos de seguridad mínimos, el asistente nos mostrará un aviso como el siguiente:
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»:
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»:
Si hemos ignorado requisitos nos mostrará un mensaje de aviso como el siguiente:
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»:
Se iniciará el proceso de instalación del software de Oracle 12c en el sistema Linux:
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
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
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:
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:
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:
Pulsando en «Gestión de contraseñas» podremos establecer las contraseñas para los usuarios que el asistente habrá creado:
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:
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:
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:
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:
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.
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»:
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»:
Seleccionaremos el Listener creado en el proceso de instalación, por defecto con el nombre LISTENER y pulsaremos «Siguiente»:
Elegiremos el protocolo de conexión, normalmente TCP y pulsaremos «Siguiente»:
Elegiremos el puerto de escucha que se usará para la conexión con Oracle, por defecto el 1521 y pulsaremos «Siguiente»:
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:
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:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
#! /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