Cómo instalar Oracle 11g en Ubuntu Linux: guía completa
Oracle Database es un software de gestión de bases de datos multiplataforma y fiable desarrollado por Oracle Corporation. Ofrece una serie de ventajas, entre las que se incluyen un alto rendimiento, una amplia gama de funciones, compatibilidad con clústeres, compatibilidad con PL/SQL, etc. Oracle Database (al que nos referiremos como «Oracle» en esta entrada del blog) se puede instalar en Solaris, Windows y Linux. La instalación en Windows es la opción más sencilla, mientras que la instalación de Oracle en Solaris y Linux requiere una configuración manual previa a la instalación. En cuanto a las distribuciones de Linux, Oracle recomienda instalar Oracle Database en Red Hat, Oracle Linux y SUSE Linux Enterprise Server.
No obstante, también se puede instalar Oracle en Ubuntu Linux y OpenSUSE Linux. Ubuntu es una popular distribución de Linux muy utilizada en todo el mundo y la entrada de hoy ofrece instrucciones paso a paso sobre cómo instalar Oracle Database en Ubuntu. En este tutorial, instalaremos la edición Enterprise (EE) de Oracle Database 11g R2 en Ubuntu.
Preparación de Ubuntu Linux
En este tutorial se utiliza una instalación recién realizada de Ubuntu 16.04.6 . El sistema operativo se instaló en la máquina virtual de VMware sin activar la opción « Descargar actualizaciones durante la instalación de Ubuntu » y sin utilizar la opción « Instalar software de terceros » durante la instalación del sistema operativo.
Si nunca has instalado Oracle en Linux, deberías aprender a hacerlo Instalar Oracle en Ubuntu en una máquina virtual antes de instalar Oracle en un ordenador físico o un servidor.
Si utilizas una máquina virtual de VMware, no olvides instalar VMware Tools. También puedes utilizar máquinas virtuales de VirtualBox e Hyper-V.
Asegúrate de haber seleccionado la zona horaria correcta durante la instalación. La zona horaria es GMT 0 (Londres) en este ejemplo.
Puede comprobar la zona horaria con el comando:
timedatectl
Compruebe la versión de Ubuntu:
lsb_release -a
En nuestro ejemplo, el resultado es el siguiente:
En este tutorial sobre cómo instalar Oracle 11g en Ubuntu, se utilizan los siguientes parámetros de hardware de la máquina virtual:
- CPU: 1 CPU
- RAM: 4 GB
- Disco duro: 40 GB
user1 es un usuario normal en este ejemplo ( user1 se crea durante la instalación de Ubuntu y se utiliza para iniciar sesión en Ubuntu).
Se han instalado los siguientes paquetes:
- vim , el editor de texto
- net-tools , herramientas para la gestión de la red
- openssh-server , el servidor SSH que permite conectarse de forma remota a la consola (terminal) de Linux
Si no tienes estos paquetes instalados en tu Ubuntu Linux, puedes instalarlos utilizando el comando:
sudo apt-get install -y vim net-tools openssh-server
El servidor SSH se instala por comodidad. Debes ejecutar varios comandos en la consola antes de utilizar el instalador de Oracle en Ubuntu.
Para habilitar la autenticación mediante contraseñas, edita el archivo sshd_config :
vim /etc/ssh/sshd_config
Descomenta la línea (elimina el símbolo «#» al principio de la línea):
PasswordAuthentication yes
Guarda los cambios y sal pulsando la tecla Esc en vim y escribiendo :wq
Reinicia el servicio (demonio) sshd ejecutando el comando con privilegios de root:
sudo service ssh restart
Configuración de un archivo de intercambio
Ubuntu 16 utiliza una partición de intercambio de forma predeterminada. Puedes personalizar el tamaño de la partición de intercambio al instalar Ubuntu. Si has seleccionado las opciones de partición predeterminadas o has elegido un tamaño incorrecto para la partición de intercambio, aún puedes crear un archivo de intercambio con un tamaño personalizado y utilizarlo en lugar de una partición de intercambio ya existente. El tamaño del intercambio debe ser el doble del tamaño de la RAM. Si vas a instalar Oracle en Ubuntu con 4 GB de RAM, debes preparar un archivo o una partición de intercambio de 8 GB. Creemos el archivo de intercambio de 8 GB.
Desactivar temporalmente el uso del área de swap:
sudo swapoff -a
Crear un nuevo archivo de 8 GB con la herramienta ` ` `dd` ` `:
sudo dd if=/dev/zero of=/swapfile bs=1G count=8
Configurar el archivo de 8 GB creado para que se utilice como archivo de intercambio:
sudo mkswap /swapfile
Volver a habilitar el uso del intercambio:
sudo swapon /swapfile
Comprobar el tamaño de tu área de intercambio después de crear un nuevo archivo de intercambio:
grep SwapTotal /proc/meminfo
Configuración de los ajustes de red
Por defecto, Ubuntu 16 obtiene automáticamente una dirección IP para una interfaz de red (si hay un servidor DHCP en la red). Debe establecer una dirección IP estática y configurar un nombre de host antes de poder instalar Oracle en Ubuntu.
Compruebe los ajustes de IP actuales:
ifconfig
En la salida, podrá ver los nombres de sus adaptadores de red y las direcciones IP. En nuestro caso, el nombre de la interfaz de red necesaria es ens33 .
Configuración de la dirección IP estática
Edita el archivo de configuración de las interfaces de red con vim :
sudo vim /etc/network interfaces
La dirección IP estática necesaria para instalar Oracle Database en Ubuntu es 192.168.101.11 en la interfaz actual del equipo Linux de este ejemplo. Edita el archivo de configuración de la siguiente manera:
# interfaces(5) file used by ifup(8) and ifdown(8)
auto lo
iface lo inet loopback
auto ens33
iface ens33 inet static
address 192.168.101.11
netmask 255.255.255.0
gateway 192.168.101.2
dns-nameservers 192.168.101.2 8.8.8.8
Guarda los cambios y sal.
Aplica los cambios:
sudo /etc/init.d/networking restart
O reinicia el equipo:
init 6
Verifica que se hayan aplicado los nuevos ajustes de IP:
ifconfig
O bien:
hostname -I
Después de comprobar los ajustes de la dirección IP, comprueba el nombre de host.
Comprobación del nombre de host
En nuestro caso, el nombre de host utilizado para instalar Oracle en Ubuntu es ubuntu-oracle11 .
Comprueba el nombre de host actual:
hostnamectl
Si te has olvidado de configurar el nombre de host durante la instalación de Ubuntu o deseas cambiarlo por otros motivos, aún puedes hacerlo.
Para cambiar el nombre del host y establecer un nuevo nombre de host ( ubuntu-oracle11 ), ejecuta el comando:
sudo hostnamectl set-hostname ubuntu-oracle11
Verifica si se ha aplicado el nuevo nombre de host:
less /etc/hostname
Edita el archivo hosts:
sudo vim /etc/hosts
El contenido del archivo /etc/hosts debe tener este aspecto:
127.0.0.1 localhost
127.0.1.1 ubuntu-oracle11
Reinicia el equipo: init 6
Intenta hacer un ping al nombre de host definido en tu máquina Ubuntu:
ping ubuntu-oracle11
Configuración del entorno para Oracle
Para instalar Oracle en Ubuntu, debes configurar el entorno de Linux: crear usuarios y grupos del sistema, configurar los parámetros del kernel, configurar un perfil del sistema, establecer variables de entorno para un usuario, definir límites del shell, crear enlaces simbólicos e instalar los paquetes necesarios.
Creación de usuarios y grupos
Abre la consola local o conéctate a la consola de Linux vía SSH como usuario normal y, a continuación, obtén los privilegios de root :
sudo -i
Los siguientes comandos deben ejecutarse como root .
Añade los grupos requeridos por Oracle.
Crea el grupo Oracle Inventory :
groupadd oinstall
Crea el grupo Oracle DBA :
groupadd dba
Crea el directorio de inicio para el usuario Oracle:
mkdir /home/oracle/
Crea el directorio para instalar Oracle:
mkdir -p /u01/app/oracle
A continuación, crea la cuenta de usuario Oracle que sea miembro del grupo dba , tenga el directorio de inicio /home/oracle/ y utilice /bin/bash como shell predeterminado:
useradd -g oinstall -G dba -d /home/oracle -s /bin/bash oracle
Establezca la contraseña para el usuario «oracle» (no olvide esta contraseña):
passwd oracle
Establezca al usuario «oracle» de como propietario del directorio de inicio de Oracle y del directorio de instalación de Oracle. El usuario «oracle» de es miembro del grupo «oinstall» de .
chown -R oracle:oinstall /home/oracle
chown -R oracle:oinstall /u01/app/oracle
Nota : A diferencia de Oracle 10, en Oracle 11 no es necesario crear el grupo «nobody» de .
Crea el directorio para el inventario de Oracle:
mkdir -p /u01/app/oraInventory
Establece al usuario oracle como propietario del directorio del inventario de Oracle:
chown -R oracle:oinstall /u01/app/oraInventory
Configuración de los parámetros del núcleo
Se requieren parámetros personalizados del núcleo para instalar Oracle en Ubuntu, y estos parámetros afectan al rendimiento de Oracle. Los parámetros de memoria compartida, incluyendo el tamaño mínimo y máximo, el número de segmentos de memoria compartida y los semáforos que pueden considerarse como indicadores para la memoria compartida, deben personalizarse de acuerdo con la documentación de Oracle. También es necesario establecer el número máximo permitido de archivos que se pueden abrir a la vez, el número máximo de conexiones de red simultáneas y el tamaño de los búferes de envío y recepción de red. Los parámetros del núcleo considerados se pueden clasificar en tres grupos: específicos del núcleo ( kernel ), específicos de la red ( network ) y gestores de archivos ( fs ). Edita el archivo /etc/sysctl.conf para anular los parámetros del núcleo de Linux:
vim /etc/sysctl.conf
Añade las líneas que se muestran a continuación al final de este archivo de configuración.
# ============================
# Oracle 11g
# ============================
# semaphores: semmsl, semmns, semopm, semmni
kernel.sem = 250 32000 100 128
kernel.shmall = 2097152
kernel.shmmni = 4096
# Replace kernel.shmmax with the half of your memory size in bytes
# if lower than 4 GB minus 1
# 2147483648 is 2 GigaBytes (4 GB of RAM / 2)
kernel.shmmax=2147483648
#
# Max number of network connections. Use sysctl -a | grep ip_local_port_range to check.
net.ipv4.ip_local_port_range = 9000 65500
#
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576
#
# The maximum allowed value, set to avoid overhead and input/output errors
fs.aio-max-nr = 1048576
# 512 * Processes
fs.file-max = 6815744
fs.suid_dumpable = 1
#
# To allow dba to allocate hugetlbfs pages
# 1001 is your oinstall group, you can check this id with the grep oinstall /etc/group command
vm.hugetlb_shm_group = 1001
Aplica los parámetros del núcleo que has configurado:
sysctl -p
Configuración de los límites del shell
Debes configurar los límites del shell para mejorar el rendimiento del software de la base de datos de Oracle.
Edite el archivo /etc/security/limits.conf :
vim /etc/security/limits.conf
Añada las siguientes líneas al final del archivo de configuración:
# Oracle
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft stack 10240
La primera columna especifica el usuario para el que se establecen los límites.
La segunda columna admite dos opciones: «soft» y «hard». «Soft» es el número máximo que puede establecer el usuario, mientras que «hard» es el número máximo que puede reconfigurar el usuario definido (oracle). Si el usuario oracle alcanza el valor mínimo crítico de 2047 establecido en la primera línea y necesita ampliar el límite, puede aumentarlo hasta 16384. El usuario oracle no puede establecer valores superiores a 16384, pero sí puede hacerlo el usuario root.
La tercera columna define a qué recursos se aplican los límites establecidos.
La cuarta columna define el número máximo del parámetro de recurso especificado en la tercera columna.
Configuración de PAM
Asegúrese de que el archivo de configuración /etc/pam.d/login contenga la siguiente línea:
session required pam_limits.so
Puede hacerlo con el comando:
cat /etc/pam.d/login | grep pam_limits.so
Si falta la línea mencionada, añádala manualmente.
Configuración del perfil del shell
Las variables de entorno de todo el sistema se establecen en el perfil global del shell bash, que se define en el archivo de configuración /etc/profile .
Edita /etc/profile y configura algunos parámetros necesarios para oracle de forma global y permanente:
vim /etc/profile
Añade las siguientes líneas:
if [ $USER = "oracle" ]; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
fi
Nota : Es útil saber cuándo se puede utilizar cada archivo de configuración del shell, ya que más adelante tendrás que configurar un perfil que contenga variables de entorno para el oracle usuario.
El shell de inicio de sesión de Bash carga su configuración desde los siguientes archivos en el orden adecuado:
- /etc/profile
- ~/.bash_profile
- ~/.bash_login
- ~/.profile
/etc/profile puede considerarse un perfil global para el shell de inicio de sesión de bash.
./bash_profile se aplica a los shells de inicio de sesión de bash, por ejemplo, cuando se inicia sesión en la interfaz de línea de comandos de Linux directamente mediante un teclado conectado a este ordenador con Linux, o después de abrir una nueva sesión de consola después de iniciar sesión mediante el terminal SSH.
.perfil – este archivo se lee para bash y otros shells como sh .
El shell interactivo de Bash sin inicio de sesión carga la configuración desde ~/.bashrc
Esto significa que, si ya has iniciado sesión en tu máquina Linux (por ejemplo, has iniciado sesión en Ubuntu mediante la interfaz gráfica) y, a continuación, abres una nueva ventana de consola (terminal), la configuración del shell, incluidas las variables de entorno, se carga desde el archivo .bashrc antes de que puedas acceder al indicador de comandos.
El shell Bash sin inicio de sesión y no interactivo carga la configuración establecida en la variable de entorno $BASH_ENV . El shell sin inicio de sesión y no interactivo se utiliza cuando se ejecuta un script.
Instalación de los paquetes necesarios
Debes instalar los paquetes que requiere Oracle. Ten cuidado al instalarlos, ya que la falta de algún paquete puede provocar errores durante la instalación de Oracle Database o la creación de la base de datos.
Actualiza el árbol de repositorios:
apt-get update
Instala los paquetes para evitar errores que puedan producirse durante la instalación de Oracle en Ubuntu. La mayoría de los paquetes se pueden instalar con el gestor de paquetes estándar de Ubuntu desde los repositorios en línea.
apt-get install alien
apt-get install autoconf
apt-get install automake
apt-get install autotools-dev
apt-get install binutils
apt-get install bzip2
apt-get install doxygen
apt-get install elfutils
apt-get install expat
apt-get install gawk
apt-get install gcc
apt-get install gcc-multilib
apt-get install g++-multilib
apt-get install libelf-dev
apt-get install libltdl-dev
apt-get install libodbcinstq4-1 libodbcinstq4-1:i386
apt-get install libpth-dev
apt-get install libpthread-stubs0-dev
apt-get install libstdc++5
apt-get install make
apt-get install openssh-server
apt-get install rlwrap
apt-get install rpm
apt-get install sysstat
apt-get install unixodbc
apt-get install unixodbc-dev
apt-get install unzip
apt-get install x11-utils
apt-get install zlibc
apt-get install libaio1
apt-get install libaio-dev
Quedan algunos paquetes por instalar, pero para hacerlo necesitarás estos consejos y trucos.
apt-get install ia32-libs
Cuando ejecutes el comando para instalar este paquete con apt-get , verás un mensaje indicando que este paquete no está disponible.
Existe un paquete alternativo que se puede instalar en lugar de ia32-libs . Instala el paquete alternativo lib32z1 :
apt-get install lib32z1
Instalemos el siguiente paquete:
apt-get install libmotif4
Este paquete tampoco está disponible. Debes descargar e instalar este paquete manualmente. Descarga el archivo libmotif4_2.3.4-8ubuntu1_amd64.deb desde recurso gratuito. Guarda el archivo deb descargado en un directorio de tu elección, por ejemplo, /home/user1/Descargas, antes de instalar este paquete.
El proceso de instalación de paquetes deb en Ubuntu es el siguiente (ejecuta los comandos con privilegios de root):
sudo dpkg -i nombre_del_paquete.deb
sudo apt-get -f install
En este caso, ejecutamos los comandos para instalar paquetes como usuario normal, por ejemplo, user1 utilizando sudo . Pulsa Ctrl+D para salir de la sesión de usuario root y volver a la user1 sesión en la consola (terminal).
Ve al directorio donde se almacenan los archivos descargados:
cd /home/user1/Downloads
Descarga el archivo utilizando un enlace directo:
wget http://launchpadlibrarian.net/207968936/libmotif4_2.3.4-8ubuntu1_amd64.deb
sudo dpkg -i libmotif4_2.3.4-8ubuntu1_amd64.deb
sudo apt-get -f install
El siguiente paquete no se puede instalar automáticamente:
sudo apt-get install libpthread-stubs0
E: No se puede localizar el paquete libpthread-stubs0
Descargar e instala este paquete manualmente.
wget http://launchpadlibrarian.net/154418307/libpthread-stubs0-dev_0.3-4_amd64.deb
sudo dpkg -i libpthread-stubs0-dev_0.3-4_amd64.deb
sudo apt-get -f install
Instala de forma similar el siguiente paquete:
sudo apt-get install lsb-cxx
E: No se puede localizar el paquete lsb-cxx
Puedes descargar el lsb-cxx paquete manualmente.
wget http://packages.linuxmint.com//pool/upstream/l/lsb/lsb-cxx_4.1+Debian11ubuntu6mint1_amd64.deb
sudo dpkg -i lsb-cxx_4.1+Debian11ubuntu6mint1_amd64.deb
sudo apt-get -f install
Instala un paquete más:
sudo apt-get install pdksh
E: El paquete «pdksh» no tiene ningún candidato de instalación
El procedimiento para instalar el pdksh paquete es el mismo. Este paquete se puede descargar aquí.
wget http://launchpadlibrarian.net/200019501/pdksh_50e-2ubuntu1_all.deb
sudo dpkg -i pdksh_50e-2ubuntu1_all.deb
sudo apt-get -f install
Oracle 11g requiere la instalación de la versión de 32 bits del libstdc++5 paquete, que no se instala automáticamente en Ubuntu 16. A continuación se explica cómo instalar este paquete manualmente.
Los siguientes comandos se ejecutan como root . Crea un directorio temporal para descargar el paquete:
mkdir /tmp/libstdc++5
cd /tmp/libstdc++5
Descarga el paquete (se muestran enlaces a los paquetes de 32 y 64 bits):
wget http://mirrors.edge.kernel.org/ubuntu/pool/universe/g/gcc-3.3/libstdc++5_3.3.6-30_i386.deb
wget http://mirrors.edge.kernel.org/ubuntu/pool/universe/g/gcc-3.3/libstdc++5_3.3.6-30_amd64.deb
Instala los paquetes descargados con dpkg :
dpkg --force-architecture -i libstdc++5_3.3.6-30_i386.deb
Nota : Si los enlaces no funcionan, es posible que se hayan publicado versiones más recientes de los paquetes en lugar de las antiguas. En ese caso, visita una página web en el navegador y copia los enlaces correctos a los paquetes necesarios: deb :
http://mirrors.edge.kernel.org/ubuntu/pool/universe/g/gcc-3.3/
Reinicia el equipo Linux para aplicar los cambios. init 6
Creación de enlaces simbólicos Debes crear enlaces simbólicos (symlinks) para que la estructura de archivos y directorios utilizada en Ubuntu sea similar a la de Red Hat. Crea los enlaces simbólicos para que la estructura del sistema de archivos sea idéntica a la de Red Hat y así evitar errores durante la instalación de Oracle. Ejecuta los comandos como root: Los comandos anteriores ayudan a evitar errores como el siguiente: genclntsh: No se ha podido vincular libclntsh.so.11.1 en el archivo make para rdbms/lib/ins_rdbms.mk debido a que falta la biblioteca: /usr/bin/ld: no se encuentra /usr/lib64/libpthread_nonshared.a dentro de lib//libagtsh.so: referencia indefinida a «nnfyboot» en make: rdbms/lib/dg4odbc] Error 1 Ahora evitemos otro error más: /lib64/libgcc_s.so.1: El archivo o directorio no existe, al crear lib/liborasdkbase.so.11.1 en ins_rdbms.mk . Ve al /lib64 directorio y ejecuta el comando: No te olvides del punto al final del comando. Configura la versión de Linux como Red Hat Linux release 5 en /etc/redhat-release . Las distribuciones de Red Hat Linux almacenan su versión en ese archivo. Configuración del perfil del usuario «oracle» Ahora debe configurar el entorno de usuario para el usuario «oracle» . Inicie sesión como «oracle» si ha abierto la consola como otro usuario: Ejecute los comandos como «oracle» : Añada las siguientes líneas al archivo : Aplique los ajustes: Ahora debe reiniciar Ubuntu. Tenga en cuenta que los ajustes se aplicarán después del reinicio, incluso sin ejecutar «source ~/.bashrc». Preparación del instalador de Oracle Ya casi hemos terminado con los preparativos para instalar Oracle. Solo quedan unos pocos pasos más antes de que puedas iniciar el instalador e instalar Oracle en Ubuntu. Después de reiniciar el equipo con Ubuntu, inicia sesión como oracle en la interfaz gráfica de usuario de Ubuntu. Abre un navegador web. En nuestro ejemplo, los dos archivos descargados se guardan en /home/oracle/Downloads para mayor comodidad:
mkdir /usr/lib64
ln -s /etc /etc/rc.d
ln -s /usr/bin/awk /bin/awk
ln -s /usr/bin/basename /bin/basename
ln -s /usr/bin/rpm /bin/rpm
ln -s /lib/x86_64-linux-gnu/libgcc_s.so.1 /usr/lib64/
ln -s /usr/lib/x86_64-linux-gnu/libc_nonshared.a /usr/lib64/
ln -s /usr/lib/x86_64-linux-gnu/libpthread_nonshared.a /usr/lib64/
ln -s /usr/lib/x86_64-linux-gnu/libstdc++.so.6 /usr/lib64/
ln -s /usr/lib/x86_64-linux-gnu /usr/lib64
ln -sf /bin/bash /bin/sh
ln -s /etc/rc0.d /etc/rc.d/rc0.d
ln -s /etc/rc2.d /etc/rc.d/rc2.d
ln -s /etc/rc3.d /etc/rc.d/rc3.d
ln -s /etc/rc4.d /etc/rc.d/rc4.d
ln -s /etc/rc5.d /etc/rc.d/rc5.d
ln -s /etc/rc6.d /etc/rc.d/rc6.d
ln -s /etc/init.d /etc/rc.d/init.d
cd /lib64
ln -s /lib/x86_64-linux-gnu/libgcc_s.so.1 .
echo 'Red Hat Linux release 5' > /etc/redhat-release
su oracle
cd
vim ~/.bashrc
.bashrc
# Oracle Settings
TMP=/tmp; export TMP
TMPDIR=$TMP; export TMPDIR
# Enter your hostname
ORACLE_HOSTNAME=ubuntu-oracle11; export ORACLE_HOSTNAME
ORACLE_UNQNAME=ORADB11G; export ORACLE_UNQNAME
ORACLE_BASE=/u01/app/oracle; export ORACLE_BASE
ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1; export ORACLE_HOME
ORACLE_SID=ORADB11G; export ORACLE_SID
PATH=/usr/sbin:$PATH; export PATH
PATH=$ORACLE_HOME/bin:$PATH; export PATH
LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib:/usr/lib64; export LD_LIBRARY_PATH
CLASSPATH=$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib; export CLASSPATH
umask 022
source ~/.bashrc
init 6
linux.x64_11gR2_database_1of2.zip
linux.x64_11gR2_database_2of2.zip
Abre la consola en Ubuntu y ejecuta los siguientes comandos como o como oracle. Ve al directorio donde se encuentran los archivos descargados:
cd /home/oracle/Downloads
o cd ~/Downloads/
Descomprime los archivos de instalación de los archivos ZIP descargados:
unzip linux.x64_11gR2_database_1of2.zip
unzip linux.x64_11gR2_database_2of2.zip
Los archivos extraídos se guardan en:
/home/oracle/Downloads/database
Ahora ya estás listo para ejecutar el instalador e instalar Oracle en Ubuntu.
Instalación de Oracle
Ve al directorio en el que se descargaron los archivos de instalación. Ejecuta los comandos como oracle en la consola iniciada en la sesión de la interfaz gráfica.
cd /home/oracle/Downloads/database
Ejecuta el instalador de Oracle:
./runInstaller
1. Configurar las actualizaciones de seguridad
Desmarca la casilla « Deseo recibir actualizaciones de seguridad a través de My Oracle Support ».
Haz clic en Siguiente para pasar al siguiente paso del asistente de instalación de Oracle.
Aparecerá el mensaje: No ha proporcionado un correo electrónico. ¿Desea no recibir información sobre problemas críticos de seguridad en su configuración? Ignore este mensaje y pulse Sí .
2. Opción de instalación
Seleccione Crear y configurar una base de datos .
3. Clase de sistema
Seleccione Clase de servidor , que es una opción avanzada para instalar la base de datos Oracle en Ubuntu.
4. Opciones de red
Seleccione Instalación de base de datos de instancia única como tipo de instalación de la base de datos.
5. Tipo de instalación
Seleccione Instalación avanzada como tipo de instalación. Esta opción le permite configurar contraseñas, juegos de caracteres, idiomas, opciones de almacenamiento, etc.
6. Idiomas del producto
Seleccione los idiomas necesarios. En este ejemplo, Inglés y Inglés (Reino Unido) están seleccionados.
7. Edición de la base de datos
Seleccione Edición Enterprise para la base de datos que va a instalar.
8. Selecciona la ubicación base de Oracle
Normalmente se utilizan el directorio base de Oracle y el directorio de inicio de Oracle.
Base de Oracle: /u01/app/oracle
Ubicación del software: /u01/app/oracle/product/11.2.0/dbhome_1
9. Crea el inventario
El directorio que se utiliza para almacenar los archivos de instalación de Oracle se denomina «directorio de inventario de Oracle».
Directorio de inventario: /u01/app/oraInventory
Nombre del grupo oraInventory: oinstall
10. Tipo de configuración
Seleccione el tipo de base de datos que desea crear:
Uso general / Procesamiento de transacciones
11. Identificadores de la base de datos
Puede definir el mismo valor para el nombre global de la base de datos y el identificador de servicio de Oracle.
Nombre de la base de datos global: ORADB11G
Identificador de servicio de Oracle (SID): ORADB11G
12. Opciones de configuración
En este paso hay cuatro pestañas. Puede configurar cada pestaña de la siguiente manera:
Memoria: Habilite la gestión automática de memoria (por defecto).
Juegos de caracteres: Utilizar Unicode (AL32UTF8).
Seguridad: Aplicar todos los nuevos ajustes de seguridad (por defecto).
Esquemas de ejemplo: Crear la base de datos con esquemas de ejemplo (no obstante, puede dejar el valor por defecto).
13. Opciones de gestión
Puede dejar los parámetros por defecto.
14. Almacenamiento de la base de datos
Lea las recomendaciones que aparecen en la ventana y seleccione Sistema de archivos .
Especifica la ubicación del archivo de la base de datos: /u01/app/oracle/oradata
15. Backups y recuperación
En este punto puedes seleccionar la opción: No habilitar backups automáticos (por defecto).
Los backups son importantes, pero es mejor configurar los backups de la base de datos Oracle después de instalar Oracle en Ubuntu.
16. Contraseñas del esquema
Puedes seleccionar Usar la misma contraseña para todas las cuentas . Introduzca una contraseña y confirmarla.
17. Grupos del sistema operativo
Lea la descripción que aparece en la ventana y seleccione los grupos necesarios.
Grupo de administradores de bases de datos (OSDBA): dba
Grupo de operadores de bases de datos (OSOPER): oinstall
18. Comprobaciones de requisitos previos
Ahora el instalador de Oracle Database comprueba si la configuración del sistema cumple los requisitos previos. Aparecerán advertencias en este paso. El parámetro del núcleo del sistema operativo semmni se configuró anteriormente, pero se muestra el estado de error para este parámetro.
Parámetro del núcleo del sistema operativo: semmni Fallido
Puede comprobar el valor de este parámetro para asegurarse de que todo está correcto. Compruebe el parámetro semmni con el comando (ejecutado como root): /sbin/sysctl -a | grep sem
kernel.sem = 250 32000 100 128
o
cat /proc/sys/kernel/sem
250 32000 100 128
Si el último valor es igual o superior a 128, todo está en orden y puedes ignorar esta advertencia.
Por algún motivo, el verificador de requisitos previos de Oracle no puede determinar que el parámetro semmni sea correcto y que los paquetes necesarios estén instalados. Si el contenido de la ventana «Prerequisite Checks» (Verificación de requisitos previos) es similar al de la captura de pantalla anterior, marca la casilla de verificación «Ignore All» (Ignorar todo) y haz clic en «Siguiente» (Siguiente) para continuar.
19. Resumen
Comprueba el resumen de la configuración para asegurarte de que has configurado todos los ajustes según sea necesario. Puede guardar el archivo de respuesta ( db.rsp ), ya que puede resultarle útil si necesita instalar Oracle en varios equipos Linux o si va a instalar Oracle en Ubuntu Server sin la interfaz gráfica de usuario.
Ahora puede realizar la supervisión de cómo el instalador de Oracle está copiando los archivos hasta que el instalador pase a la etapa «Enlazar binarios» .
Enlazado de binarios para Oracle Database: corrección de errores de enlace y compilación
Esta etapa es una de las más difíciles de la instalación de Oracle Database en Ubuntu Linux. La probabilidad de que se produzcan errores en este paso es alta. En el ejemplo actual, se produce el siguiente error al instalar Oracle 11g en Ubuntu 16:
Error al invocar el destino «install» del archivo makefile «/u01/app/oracle/product/11.2.0/dbhome_1/ctx/lib/ins_ctx.mk». Consulte «/u01/app/oraInventory/logs/installActions2020-01-22_12-53-06PM.log» para obtener más detalles .
Tenga en cuenta que pueden producirse errores similares incluso si instala Oracle en Oracle Linux. El nombre de su archivo de registro debería ser diferente.
Nota : Los archivos con .mk extensión son archivos makefile y se utilizan para compilar programas. Un archivo «makefile» determina qué «partes» del programa hay que compilar y qué archivos del programa deben compilarse y enlazarse entre sí. Algunos componentes del software de Oracle están escritos en Java (por ejemplo, Oracle Universal Installer, que cuenta con una interfaz gráfica de usuario) y otros están escritos en C. Los componentes escritos en Java deben interpretarse sin necesidad de compilarlos (Java es multiplataforma), mientras que los componentes escritos en C deben compilarse, y el enlace de los binarios y las bibliotecas es una etapa obligatoria de este proceso. Oracle utiliza este enfoque para aportar mayor flexibilidad y permitir la instalación de Oracle en diferentes sistemas operativos (Windows, Linux, Solaris). Otra ventaja es el menor tamaño del instalador. La desventaja es que pueden producirse errores en la etapa de enlazado de binarios durante el proceso de instalación de Oracle. En la mayoría de los casos, para solucionar los problemas de enlazado, debes añadir los indicadores adecuados editando los archivos .mk .
Veamos cómo solucionar los errores de enlace de binarios que se producen al instalar la Oracle Database en Ubuntu Linux.
Inicia sesión como oracle a través de SSH en el equipo Ubuntu y comprueba el archivo de registro:
tail -n 100 /u01/app/oraInventory/logs/installActions2020-01-22_12-53-06PM.log
Al leer la salida del registro, presta atención a la línea que explica el error.
INFO: /u01/app/oracle/product/11.2.0/dbhome_1/ctx/lib/ins_ctx.mk:11: la receta para el destino «ctxhx» ha fallado
ins_ctx.mk:11 te remite a la línea 11 del archivo ins_ctx.mk .
Abramos el archivo ins_ctx.mk y comprobemos la línea 11 de dicho archivo.
vim /u01/app/oracle/product/11.2.0/dbhome_1/ctx/lib/ins_ctx.mk
En el modo de navegación de vim escribe :set number para ver los números de línea.
Busquemos la línea número 11.
Al utilizar el modo de navegación en vim , puedes encontrar la cadena necesaria con el comando:
/LINK_CTXHX
Edita la siguiente sección:
ctxhx: $(CTXHXOBJ)
$(LINK_CTXHX) $(CTXHXOBJ) $(INSO_LINK)
La línea número 11 debe editarse de la siguiente manera:
-static $(LINK_CTXHX) $(CTXHXOBJ) $(INSO_LINK) /usr/lib64/stdc.a
Guarda el ins_ctx.mk y sal de vim .
Ahora vuelve a la ventana de error de instalación de Oracle y haz clic en Reintentar .
El proceso de instalación continúa, pero al cabo de unos segundos aparece otro error al Compilar las bibliotecas del agente :
Error al invocar el destino «agent nmhs» del archivo makefile «/u01/app/oracle/product/11.2.0/dbhome_1/sysman/lib/ins_emagent.mk».
Ejecute los siguientes comandos como oracle para solucionar este problema:
export ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1
sed -i 's/^(s*$(MK_EMAGENT_NMECTL))s*$/1 -lnnz11/g' $ORACLE_HOME/sysman/lib/ins_emagent.mk
Nota: sed es un editor de texto de flujo que se utiliza para ahorrar tiempo al editar los archivos .mk en comparación con editarlos con vim u otros editores de texto interactivos.
Después de ejecutar los dos comandos anteriores, haz clic en Reintentar en la ventana de error de la instalación de Oracle Database. Verás que el error se ha solucionado y que la instalación de Oracle Database en Ubuntu Linux continúa. Sin embargo, al cabo de unos segundos se produce otro error al vincular los ejecutables del RDBMS : Error al invocar el destino «all_no_orcl» del archivo makefile «/u01/app/oracle/product/11.2.0/dbhome_1/rdbms/lib/ins_rdbms.mk».
Ejecuta los siguientes comandos como oracle para corregir este error y otros similares:
export ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1
cd $ORACLE_HOME/lib
ln -s libclient11.a libagtsh.a
$ORACLE_HOME/bin/genagtsh $ORACLE_HOME/lib/libagtsh.so 1.0
sed -i 's/^($LD $LD_RUNTIME) ($LD_OPT)/1 -Wl,--no-as-needed 2/g' $ORACLE_HOME/bin/genorasdksh
sed -i 's/^(s*)($(OCRLIBS_DEFAULT))/1 -Wl,--no-as-needed 2/g' $ORACLE_HOME/srvm/lib/ins_srvm.mk
sed -i 's/^(TNSLSNR_LINKLINE.*$(TNSLSNR_OFILES)) ($(LINKTTLIBS))/1 -Wl,--no-as-needed 2/g' $ORACLE_HOME/network/lib/env_network.mk
sed -i 's/^(ORACLE_LINKLINE.*$(ORACLE_LINKER)) ($(PL_FLAGS))/1 -Wl,--no-as-needed 2/g' $ORACLE_HOME/rdbms/lib/env_rdbms.mk
A continuación, vuelve a la ventana de error y haz clic en Reintentar . Ahora el proceso de instalación debería reanudarse sin errores.
El Asistente de configuración de la base de datos Oracle (DBCA) se abrirá después de superar la etapa «Vincular binarios» .
«Ejecutando scripts de configuración»
Ya casi hemos finalizado la instalación de la base de datos Oracle en Ubuntu.
Ejecuta estos dos scripts como root :
/u01/app/oraInventory/orainstRoot.sh
/u01/app/oracle/product/11.2.0/dbhome_1/root.sh
En la captura de pantalla siguiente puedes ver que los scripts se han ejecutado correctamente.
«La instalación de la base de datos Oracle se ha realizado correctamente» .
Si ves esta notificación, puedes cerrar la ventana del instalador de Oracle.
Comprueba que Oracle se está ejecutando en Ubuntu
Abre un navegador web en tu equipo Ubuntu en el que se esté ejecutando Oracle y comprueba si Oracle está en funcionamiento abriendo la interfaz web de Oracle Database Control Manager. Para ello, puede utilizar los siguientes enlaces:
https://localhost:1158/em
https://ubuntu-oracle11:1158/em
https://192.168.101.11:1158/em
También puede intentar conectarse al equipo Ubuntu en el que se ejecuta Oracle desde otro host de su red.
Defina los parámetros de conexión.
Nombre de usuario : SYS
Contraseña : La contraseña que hayas establecido durante la instalación de Oracle
Conectar como : SYSDBA
A continuación puedes ver una captura de pantalla de Oracle Enterprise Manager cuando Oracle se está ejecutando correctamente.
Configuración posterior a la instalación de Oracle
Oracle ya está instalado, y ahora debemos configurar la base de datos para que se inicie automáticamente al iniciarse Ubuntu. Debe editar el /etc/oratab archivo de configuración para que Oracle se inicie durante el arranque del sistema.
Ejecute el comando como root.
vim /etc/oratab
Sustituya N por Y al final de la línea:
ORADB11G:/u01/app/oracle/product/11.2.0/dbhome_1:Y
Comandos útiles
Antes de configurar Oracle para que se inicie automáticamente, debe saber cómo iniciar los componentes de Oracle manualmente. Esto también le ayudará a realizar diagnósticos. Ejecute estos comandos como oracle usuario.
Iniciar la base de datos:
$ORACLE_HOME/bin/dbstart $ORACLE_HOME
Detener la base de datos: $ORACLE_HOME/bin/dbshut $ORACLE_HOME
Inicia el Database Control Enterprise Manager, que proporciona una interfaz web para el control de la base de datos:
emctl start dbconsole
Detén el Database Control Manager:
emctl stop dbconsole
Comprueba el estado del Database Control Manager:
emctl status dbconsole
Inicia el listener:
$ORACLE_HOME/bin/lsnrctl start
Detén el listener:
$ORACLE_HOME/bin/lsnrctl stop
Comprueba el estado del listener:
$ORACLE_HOME/bin/lsnrctl status
Inicia el Asistente de configuración de la base de datos (en el entorno gráfico, no en la consola SSH):
dbca
El listener de Oracle se puede configurar editando el archivo:
vim $ORACLE_HOME/network/admin/listener.ora
Conexión a la base de datos en la consola:
sqlplus / as sysdba;
Creación de un script de inicio para Oracle en Ubuntu
Veamos cómo configurar Oracle para que se inicie automáticamente al arrancar Ubuntu. Después de editar /etc/oratab , debes crear un script de inicio en el directorio /etc/init.d/ .
Crea el nuevo archivo del script de inicio de Oracle en Ubuntu (ejecuta el comando como root ):
vim /etc/init.d/oracle
Añade el siguiente contenido a ese archivo:
#!/bin/bash
#
# Run-level Startup script for the Oracle Instance and Listener
#
### BEGIN INIT INFO
# Provides: Oracle
# Required-Start: $remote_fs $syslog
# Required-Stop: $remote_fs $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Startup/Shutdown Oracle listener and instance
### END INIT INFO
#ORACLE_UNQNAME="ORADB11G"
#export $ORACLE_UNQNAME
echo "ORACLE_UNQNAME is $ORACLE_UNQNAME"
ORACLE_HOME="/u01/app/oracle/product/11.2.0/dbhome_1"
ORACLE_OWNR="oracle"
# if the executables do not exist -- display error
if [ ! -f $ORACLE_HOME/bin/dbstart -o ! -d $ORACLE_HOME ]
then
echo "Oracle startup: cannot start"
exit 1
fi
# depending on parameter -- startup, shutdown, restart
# of the instance and listener or usage display
case "$1" in
start)
# Oracle listener and instance startup
echo -n "Starting Oracle: "
echo "dbstart"
source "/home/oracle/.bashrc" && su $ORACLE_OWNR -c "$ORACLE_HOME/bin/dbstart $ORACLE_HOME"
echo "lsnrctl start"
source "/home/oracle/.bashrc" && su $ORACLE_OWNR -c "$ORACLE_HOME/bin/lsnrctl start"
#Optional : for Enterprise Manager software only
echo "emctl start dbconsole"
source "/home/oracle/.bashrc" && su $ORACLE_OWNR -c "$ORACLE_HOME/bin/emctl start dbconsole"
touch /var/lock/oracle
echo "OK - a script has been executed"
;;
stop)
# Oracle listener and instance shutdown
echo -n "Shutdown Oracle: "
#Optional : for Enterprise Manager software only
source "/home/oracle/.bashrc" && su $ORACLE_OWNR -c "$ORAClE_HOME/bin/emctl stop dbconsole"
source "/home/oracle/.bashrc" && su $ORACLE_OWNR -c "$ORACLE_HOME/bin/lsnrctl stop"
source "/home/oracle/.bashrc" && su $ORACLE_OWNR -c "$ORACLE_HOME/bin/dbshut $ORACLE_HOME"
rm -f /var/lock/oracle
echo "OK - a script has been executed"
;;
reload|restart)
$0 stop
$0 start
;;
*)
echo "Usage: $0 start|stop|restart|reload"
exit 1
esac
exit 0
Establece los permisos correctos:
chown oracle:oinstall /etc/init.d/oracle
chmod 0775 /etc/init.d/oracle
Haga que este script se ejecute justo después del arranque del sistema operativo (disponible para los niveles de ejecución predeterminados):
update-rc.d oracle defaults
Puede editar la prioridad de inicio si es necesario.
Ejecute el script para detener Oracle (puede ejecutar este script como root ):
/etc/init.d/oracle stop
Si desea iniciar Oracle, ejecute este script con el comando:
/etc/init.d/oracle start
Nota: Preste atención a la siguiente línea y a líneas similares en el script de inicio de Oracle:
source "/home/oracle/.bashrc" && su $ORACLE_OWNR -c "$ORACLE_HOME/bin/dbstart $ORACLE_HOME"
En primer lugar, configuramos el shell para que lea los ajustes almacenados en el .bashrc perfil del sistema del usuario «oracle» , incluyendo variables como ORACLE_HOSTNAME , ORACLE_BASE , PATH etc., que son necesarias para que los componentes de Oracle ejecuten correctamente. Después de aplicar los ajustes de bash del usuario «oracle» a la sesión actual del shell, se ejecuta el siguiente comando para iniciar Oracle Database. ¿Cuál es la diferencia entre su - y su?
user1@hostname:~$ su - username2 – este comando ejecuta la sesión de shell de línea de comandos como el usuario seleccionado ( username2 ) con los ajustes de dicho usuario ( username2 ), como si hubieras iniciado sesión como username2 al crear una nueva sesión de shell directamente (desde cero). En esta sesión de shell se utilizan las variables de entorno de username2 .
user1@hostname:~$ su username2 – este comando ejecuta el shell de línea de comandos como el usuario seleccionado ( username2 ) con los ajustes del usuario actual ( user1 ) y las variables de entorno de user1 son heredadas por username2 en esta sesión de shell.
su -c (–command) significa que se debe ejecutar un comando especificado como el usuario seleccionado.
Solución de problemas
Repasemos algunos posibles problemas que pueden surgir al instalar Oracle en Ubuntu y si existen métodos para solucionarlos.
ORA-12547: TNS: contacto perdido
El Asistente de configuración de bases de datos no puede crear una base de datos y se produce un error.
ORA-12547: TNS: contacto perdido .
Los archivos de registro de la operación actual se encuentran en :
/u01/app/oracle/cfgtoollogs/dbca/ORADB11G
Consulte el archivo de registro:
tail -n 100 /u01/app/oracle/cfgtoollogs/dbca/ORADB11G/cloneDBCreation.log
Preste atención a estas cadenas:
oracleORADB11G: error al cargar las bibliotecas compartidas: libaio.so.1: no se puede abrir el archivo de objeto compartido: No existe tal archivo o directorio
ORA-12547: TNS: contacto perdido
Uno de los motivos por los que aparece este mensaje de error es la ausencia de bibliotecas relacionadas con los paquetes adecuados: libaio1 , libaio-dev . Comprueba si los paquetes mencionados están instalados; de lo contrario, instálalos:
sudo apt-get install libaio1
sudo apt-get install libaio-dev
Oracle no se inicia automáticamente al iniciar Ubuntu
Puede ocurrir que estés ejecutando el script como root y veas el mensaje:
«Variable de entorno ORACLE_UNQNAME no definida. Por favor, establezca ORACLE_UNQNAME con el nombre único de la base de datos».
En esta situación, Oracle no se inicia automáticamente al arrancar Ubuntu. Si aparece este mensaje de error al iniciar Oracle Enterprise Manager 11g Database Control, debe comprobar las variables de entorno.
How to check the ORACLE_UNQNAME?
Puede comprobar ORACLE_UNQNAME (ejecute los comandos como oracle ).
sqlplus / as sysdba;
SQL> SELECT name, db_unique_name FROM v$database;
SQL> exit
Edite /etc/profile (como root): vim /etc/profile
Añade la línea al final del archivo /etc/profile :
ORACLE_UNQNAME=ORADB11G; export ORACLE_UNQNAME
Reinicia el equipo con Ubuntu en el que está instalado Oracle.
Ahora este error ya no debería aparecer al ejecutar el script y Oracle debería iniciarse después de ejecutar manualmente el comando /etc/init.d/oracle start . Sin embargo, Oracle sigue sin iniciarse automáticamente durante el arranque de Ubuntu Linux. El motivo de este problema es que las variables de entorno no están configuradas para el shell en el que se ejecuta el script. Consulta la explicación del script de inicio de Oracle más arriba y revisa tu script con atención.
¿Es posible instalar Oracle 11g en Ubuntu 18?
Ubuntu 18 cuenta con versiones más recientes de las bibliotecas del sistema Linux que son muy compatibles con Oracle 11g R2. Existe una alta probabilidad de que aparezcan errores en la etapa de « » («Enlazar binarios») de la instalación de Oracle. Por ejemplo:
Error al invocar el destino «links proc gen_pcscfg» del archivo makefile «u01/app/oracle/product/11.2.0/dbhome_1/precomp/lib/ins_precomp.mk».
Por eso se utiliza Ubuntu 16 en este tutorial. Por supuesto, puedes intentar instalar Oracle 11g en Ubuntu 18, pero prepárate para algunas dificultades. Es posible que tengas que instalar paquetes y bibliotecas de versiones anteriores y, por lo tanto, rebajar la versión del sistema operativo Ubuntu.
El proceso de instalación de Oracle Database en Ubuntu 18 es similar al de la instalación en Ubuntu 16 (para Oracle 11g R2 EE). En la etapa de « » («Enlazar binarios») , si se producen errores, debes analizar los registros, consultar la documentación y corregir los errores de enlace.
El siguiente comando puede resultar útil después de editar los archivos para volver a vincular manualmente las bibliotecas:
$ORACLE_HOME/bin/relink all
Conclusión
Esta entrada del blog te ha guiado a través de la instalación de Oracle 11g R2 Enterprise Edition, un proceso mucho más complejo que la instalación de Oracle XE (Express Edition). Instalar la Oracle Database en Ubuntu requiere que realices una configuración manual de los archivos y los parámetros del sistema.
Instalar Oracle en Ubuntu Linux no es una tarea fácil, pero Oracle Enterprise Edition ofrece muchas ventajas. Los pasos de la instalación de Oracle que requieren mayor atención por tu parte son la instalación de los paquetes de Ubuntu, la vinculación de los binarios y la creación de un script de inicio. Si tus versiones de Ubuntu y Oracle son las mismas que las utilizadas en esta entrada, sigue el tutorial paso a paso para instalar Oracle correctamente. Después de instalar la base de datos de Oracle, no olvides hacer backups.







































