Guia : Instalacion Base de datos Oracle 12c en Linux, para novatos

Dettlaff

El primero con su Nick
Miembro del Equipo
ADMIN
Se incorporó
27 Octubre 2010
Mensajes
19.325
Ahora vamos con la instalación de Oracle Linux 12c, la última versión de este software de base de datos relacional, sobre Oracle Linux 7, el cuál también es la última versión de dicho sistema operativo. Cabe destacar que el proceso de instalación que llevaremos a cabo es equivalente también para RedHat 7 y CentOS 7.​

Para realizar la instalación necesitan:

Archivos de instalación de Oracle 12c

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

Seleccionen la versión para Linux x86-64.

Una imagen de Oracle Linux 7

https://edelivery.oracle.com/linux

Para descargar todo eso necesitarán tener una cuenta en oracle.com. Crear la cuenta es gratis, vayan tranquilos.

Un servidor (o máquina virtual) con los siguientes requisitos

Por lo menos 2GB de RAM (yo utilizaré una máquina virtual de 4GB de RAM).
Por lo menos 10GB de espacio en disco limpios para la instalación de oracle (yo utilizaré una máquina virtual con 30GB de espacio en disco).
Un procesador de arquitectura x86-64 (yo utilizaré una máquina virtual con 2 cores de arquitectura x86-64).

Pueden tomar estas especificaciones como base.

http://docs.oracle.com/database/121/LADBI/pre_install.htm#LADBI7497

https://www.redhat.com/en/files/resources/en-rhel-deploy-oracle-rac-database-12c-rhel-7.pdf

Comencemos con la instalación.

9XZf3z2.jpg

Como lo he comentado en otras guías, yo siempre prefiero instalar las versions en inglés porque es más fácil buscar coincidencias en internet de los mensajes de error que nos puedan salir en algún momento.

lzS2zRN.jpg


En la configuración de la fecha (Date/Time), elijan la zona horaria que corresponda. Yo selecciono America/Santiago (no se preocupen, luego instalamos el tzdata actualizado).
En la configuración Keyboard, seleccionen su configuración de teclado. Yo selecciono Español, que es el teclado de mi notebook en donde reside la máquina virtual.​

Configuren la red con una ip fija y también denle un nombre al host. Mi comité creativo no estaba disponible, así que simplemente llamé a este servidororacle12c.​

En Installation Destination deben seleccionar el tamaño de la swap. El requerimiento de Oracle dice que si la memoria RAM de tu servidor es de 2 a 16 GB, la swap debe ser del mismo tamaño de la memoria RAM. Si la memoria RAM es mayor a 16GB, entonces la swap debe ser de 16GB. Como mi máquina virtual tiene 4GB de ram, la swap será de 4GB.
En Software Selection, elijan la opción Server with GUI, ya que se necesita entorno gráfico para hacer una instalación práctica de la base de datos Oracle.​

Una vez seleccionado todo eso, presionen el botón Begin Installation.

BQjsfXq.jpg


Mientras se ejecuta el proceso de instalación, configuren la contraseña de la cuenta root.

oWvKo5W.jpg


Cuando termine, presionen el botón de Reboot.

Una vez reiniciado el sistema, Oracle Linux pedirá aceptar las condiciones de Licenciamiento. Entren al menú de licenciamiento, acepten las condiciones, presionen el botón Done y un vez de vuelta en la pantalla inicial presionen el botón Finish Configuration.​

La pantalla siguiente consultará por una suscripción a la red de Oracle Linux. En mi caso selecciono No, para más adelante realizar la configuración manual a los repositorios públicos.

La pantalla siguiente pedirá validación de idioma. Una vez resuelto eso, solicitará la creación de una cuenta de sistema operativo. Yo aprovecharé para crear la cuenta oracle, necesaria para realizar la instalación del software de base de datos.

lcz8PR4.jpg


Luego seleccionen una ubicación geográfica. En mi caso elijo Santiago.

Luego solicita una cuenta de conexión a la nube. Simplemente ignórenlo y presionen Next.

Finalmente presionen el botón para comenzar a utilizar el sistema.

Una vez que reinicie el sistema, accedan a él vía ssh utilizando su cliente ssh favorito con la cuenta root. Yo usaré putty, el amigo de todos.

Asegúrense de que la tabla de host tiene asociada la IP del servidor con el nombre de host. Si no está, agréguenla.

Code:

127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4

192.168.0.50 oracle12c




Luego, configuren yum en el servidor con los repositorios oficiales del sistema operativo. En mi caso estoy trabajando con Oracle Linux 7, así que configuraré yum contra los repositorios públicos oficiales de Oracle.
https://docs.oracle.com/cd/E52668_01/E54669/html/ol7-downloading-yum-repo.html
Si están utilizando RedHat 7, usen tranquilamente los repos de RedHat Network. Con CentOS 7 pues lo mismo, apunten a los repos de CentOS 7.

Una vez configurados los repositorios para yum, podemos instalar los paquetes requeridos por la base de datos. En Oracle Linux se simplifica todo este procedimiento simplemente instalando el paquete oracle-rdbms-server-12cR1-preinstall. Al instalar con yum este paquete, yum se encarga de bajar desde el repositorio todos los paquetes requeridos por Oracle para el correcto funcionamiento de la base de datos, además de realizar algunas configuraciones del sistema operativo.

Code:

yum install oracle-rdbms-server-12cR1-preinstall -y




Más información
http://www.oracle.com/technetwork/articles/servers-storage-admin/ginnydbinstallonlinux-488779.html

Sin embargo, para hacer esta guía útil también para quienes utilizan RedHat o CentOS, iremos por el camino manual. Comenzamos instalando los paquetes uno por uno en una simple instrucción de yum.

Code:

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




Una vez terminado, realizamos una actualización general del sistema. Esto no es obligatorio, pero si es una muy buena práctica: comenzar a instalar con el sistema actualizado.

Code:

yum update




y una vez que finalice la actualización de los paquetes de todo el sistema, reiniciamos para proseguir la configuración sobre un entorno actualizado.

Code:

reboot




Ya reiniciado el servidor, accedan a él vía ssh con la cuenta root. Editen el archivo /etc/sysctl.conf , agregando o modificando valores según corresponda. Ennegrita el comentario de los valores. Si no tiene comentario configúrenlo así como se ve. Son parámetros mínimos recomendados por Oracle.

Code:

fs.aio-max-nr = 1048576

fs.file-max = 6815744

kernel.shmall = 419430 40% de la memoria física del servidor en pages. Como mi servidor tiene 4GB de ram y el valor de pages es 4096, lo configuraré con 1,6 GB / 4096

kernel.shmmax = 2147483648 La mitad de la memoria física en bytes. Como mi servidor tiene 4GB de ram, lo configuraré con 2GB

kernel.shmmni = 4096

kernel.sem = 250 32000 100 128

net.ipv4.ip_local_port_range = 9000 65500

net.core.rmem_default = 262144

net.core.rmem_max = 4194304

net.core.wmem_default = 262144

net.core.wmem_max = 1048576




Ahora creen el siguiente archivo

Code:

vi /etc/security/limits.d/99-oracle-limits.conf




y escriban los siguientes valores que serán de uso de la cuenta se sistema operativo oracle.

Code:

oracle soft nproc 16384

oracle hard nproc 16384

oracle soft nofile 1024

oracle hard nofile 65536

oracle soft stack 10240

oracle hard stack 32768




Creen los grupos de sistema operativo dba y oinstall.

Code:

groupadd oinstall

groupadd dba




Y ahora asocien los grupos dba y oinstall a la cuenta de usuario oracle creada inicialmente.

Code:

usermod -G dba -g oinstall oracle




Pueden dejar el sistema sin seguridad, deshabilitando el firewall y selinux, o configurar la seguridad para que permita las conexiones.

Opción sin seguridad

Deshabiliten el servicio de firewall.

Code:

systemctl stop firewalld

systemctl disable firewalld




Deshabiliten selinux.

Code:

vi /etc/selinux/config




Y el parámetro SELINUX déjenlo en disabled.

Code:

SELINUX=disabled




Opción con seguridad

Permitan que el firewall de Linux acepte conexiones al puerto 1521 (es el puerto de escucha por defecto de Oracle).

Code:

systemctl start firewalld

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

firewall-cmd --reload




Modifiquen selinux.

Code:

vi /etc/selinux/config




Y el parámetro SELINUX déjenlo en permissive.

Code:

SELINUX=permissive






Ahora vamos a crear los directorios de instalación y de almacenamiento.

En estricto rigor, pueden instalar y mantener los archivos de datos (datafiles) donde ustedes quieran. Pero por orden se estila dejar todo en directorios nombrados /u01, /u02, /u03... /u0n , básicamente porque además puedes atachar un storage y mapearlo en esas rutas de forma ordenada.

Procedemos a crear entonces los directorios /u01 y /u02 para almacenar la instalación y los archivos de datos, respectivamente, y crear los subdirectorios respectivos. No olviden de darle permiso a la cuenta oracle.

Code:

mkdir /u01

mkdir /u02



mkdir -p /u01/app/oracle/product/12.1.0.2/db_1

mkdir -p /u02/capadb/datafiles



chown -R oracle:eekinstall /u01

chown -R oracle:eekinstall /u02




Si se fijan, creé un directorio llamado capadb. Ese será el nombre que le pondré a la base de datos y por razones de orden así llamé al directorio.

Conéctense por ssh con la cuenta oracle, editen el archivo .bash_profile y agreguen lo siguiente al final

Code:

export ORACLE_BASE=/u01/app/oracle

export ORACLE_HOME=$ORACLE_BASE/product/12.1.0.2/db_1

export ORACLE_SID=capadb



export PATH=/usr/sbin:$PATH

export PATH=$ORACLE_HOME/bin:$PATH




En dónde ORACLE_SID será el nombre de la base de datos.

Ahora es el momento de copiar los archivos de instalación. Conéctense al servidor con alguna aplicación que permita transferencia vía scp, con la cuenta de sistema operativo oracle. Yo utilizo winscp.

Una vez que se conecten, copien los archivos de instalación de Oracle al directorio /u01.

lEDaJIq.jpg


Conéctense por entorno gráfico al servidor con la cuenta oracle, abran un terminal y diríjanse al directorio /u01. Descompriman los archivos de instalación con la instrucción unzip.

Code:

unzip linuxamd64_12102_database_1of2.zip

unzip linuxamd64_12102_database_2of2.zip




La descompresión de los dos archivos generará un directorio llamado database. Ingresen ahí y ejecuten el archivo ejecutable runInstaller.

Code:

./runInstaller




F6ciGZx.jpg


Se desplegará una interfaz gráfica del instalador.

En la primera ventana desctiven la caja de texto para las actualizaciones. Cuando les aparezca una ventana de advertencia, presionen Yes.

JaAYVBp.jpg


En la ventana siguiente seleccionen Crear y configurar una base de datos.

HfPyC17.jpg


En la ventana siguiente seleccionen Server Class.

V1OmKFa.jpg


En la ventana siguiente seleccionen Single Instance database installation.

d6dDmZn.jpg


En la ventana siguiente seleccionen Typical Install.

SMAKBFR.jpg


En la ventana siguiente pongan mucho ojo con las opciones:
- El directorio de instalación deberá ser el mismo que configuraron ustedes previamente. ¿Y cómo lo sabe el instalador? Pues porque se definió la variable $ORACLE_HOME en el .bash_profile.
- En directorio de database file location debe ser aquel que ustedes hayan definido para almacenar los archivos de datos de la base de datos. Estos archivos serán SU base de datos, y si la base de datos crece, este filesystem crecerá.
- En global database name es capadb. Obviamente ustedes pueden crear el nombre que quieran.
- Definan contraseña de administración.

BbguOFr.jpg


En la ventana siguiente se definirá la ubicación del inventarior. Dejen la que ofrece el instalador por defecto.

HcsaiiD.jpg


En la ventana siguiente se revisaran los requisitos de software para la instalación. Si todo está en orden se desplegará una pantalla mostrando el resumen de lo que se va a instalar. Presionen Install para comenzar.

zEZpnVQ.jpg


Antes de concluir la instalación, Oracle solicitará que ejecuten un par de scripts con la cuenta root. Ejecútenlos desde un terminal y presionen el botón OK cuando finalicen, para dar paso a la etapa siguiente que es crear la base de datos.

IlJu3V9.jpg


Luego de que se ejecuten los scripts y se presione el botón OK, comenzará la creación de la base de datos propiamente tal.

La3wpqT.jpg


Al finalizar se desplegará la siguiente pantalla

jF5lMgY.jpg


La pantalla tiene información resumen. Si se fijan bien, además de las rutas de instalación y el nombre de la base de datos, vemos también una URL. Esa URL corresponde a la interface de administración web de la base de datos.

La base de datos como tal ya está instalada y operativa. Ahora resta instalar el servicio que escucha las peticiones de los clientes externos, el listener.

Siempre en el entorno gráfico, con la cuenta oracle, ejecuten el comanto netca.

FFc89Or.jpg




Si las variables de entorno están correctas se desplegará una ventana gráfica, similar a la de la instalación de la base de datos.

Seleccionen la primera opción, Listner Configuration, y presionen el botón Next.

En la ventana siguiente seleccionen la opción Add para agregar un nuevo servicio.

KekjnIg.jpg


La opción siguiente requerirá ingresar un nombre al Listener. Yo dejo el nombre por defecto: LISTENER.

lSbb98V.jpg


La siguiente ventana permite seleccionar los protocolos a utilizar por el servicio. Prefieran la opción por defecto que es únicamente TCP.

Vn7eMFp.jpg


La ventana siguiente es para configurar el puerto. El puerto por defecto es 1521 (de hecho es el puerto que utilizamos más arriba para dejar abierto el puerto del firewall). Algunas organizaciones por motivos de seguridad tienen normas que obligan a no utilizar los puertos por defecto de los diferentes softwares, servicios y aplicaciones. Si este es tu caso pues debes cabiar el puerto y elegir otro. Para la guía prefieran la opción por defecto que es 1521.

PN44cEj.jpg


Esa fue la última ventana de configuración. Luego sigan las instrucciones (no agregar otro cambio y cerrar la ventana). Cuando se cierre la ventana se iniciará el servicio listener.

5T83DDM.jpg


Subir base de datos

Esta es una instalación bastante sencilla y como tal no levanta automáticamente. Sin embargo, el procedimiento es bastante sencillo

Conectado vía ssh con la cuenta oracle, ejecuten las siguiente instrucciones para levantar la base de datos

Code:

[oracle@oracle12c ~]$ sqlplus / as sysdba



SQL*Plus: Release 12.1.0.2.0 Production on Mon Aug 24 22:59:17 2015



Copyright (c) 1982, 2014, Oracle. All rights reserved.



Connected to an idle instance.



SQL> startup

ORACLE instance started.



Total System Global Area 1660944384 bytes

Fixed Size 2925072 bytes

Variable Size 989859312 bytes

Database Buffers 654311424 bytes

Redo Buffers 13848576 bytes

Database mounted.

Database opened.

SQL> exit

[oracle@oracle12c ~]$




y ahora, siempre conectados con la cuenta oracle, ejecutarán la instrucción para levantar el servicio listener para escuchar peticiones.

Code:

[oracle@oracle12c ~]$ lsnrctl start




Bajar base de datos

Antes de apagar el servidor ejecuten lo siguiente

Code:

[oracle@oracle12c ~]$ lsnrctl stop




y para bajar el servicio de base de datos

Code:

[oracle@oracle12c ~]$ sqlplus / as sysdba



SQL*Plus: Release 12.1.0.2.0 Production on Mon Aug 24 23:10:34 2015



Copyright (c) 1982, 2014, Oracle. All rights reserved.



Connected to:

Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production

With the Partitioning, OLAP, Advanced Analytics and Real Application Testing options



SQL> shutdown immediate

Database closed.

Database dismounted.

ORACLE instance shut down.

SQL> exit

Disconnected from Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production

With the Partitioning, OLAP, Advanced Analytics and Real Application Testing options

[oracle@oracle12c ~]$




Luego, para conectarse a la base de datos desde un equipo remoto, debes proporcionar lo siguiente:

Una cuenta de usuario y su respectiva contraseña.
El hostname o la ip del servidor de base de datos.
El puerto, que si utilizaron el valor por defecto será 1521.
Y el nombre del servicio, que en la mayoría de los casos será el nombre de la base de datos, que en este caso es capadb.

gvwJLki.jpg


Y eso es todo amigos. Tenemos una instalación sencilla de base de datos Oracle 12c sobre Oracle Linux 7 para que los que se interesen comiencen a dar sus primeros pasos.
View the Post on the Blog
 
Última modificación:

Chronos 1nside

Droogie
Se incorporó
12 Mayo 2005
Mensajes
2.170
Buenísima :D

¿Planeas hacer algo similar con SOA Suite incluyendo el uso del RCU para crear los esquemas? :O
 

Zuljin

Fundador
Miembro del Equipo
Fundador
ADMIN
Se incorporó
15 Enero 2004
Mensajes
11.872
Buenísima :D

¿Planeas hacer algo similar con SOA Suite incluyendo el uso del RCU para crear los esquemas? :O


Mi plan es tirar una guía de jboss/wildfly -> weblogic (Fusion Middleware). No tenía considerada la SOA Suite, pero igual la podemos tirar. He hecho instalaciones de SOA Suite 12c en Cluster, contra Oracle DB también en Cluster, e igual se me complica un poco todavía pero ya le voy pillando la maña.

En todo caso, el uso del RCU es, al igual que todo con Oracle, sencillo una vez que lo entiendes.
 

Rudel

Overclockero retirado.
Se incorporó
28 Octubre 2004
Mensajes
8.727
Es un tema especializado, pero muy buena la Guía :) felicitaciones.
 

Tbon

Football total philosophy
Miembro del Equipo
Fundador
ADMIN
Se incorporó
20 Enero 2004
Mensajes
13.674
Zuljin, justo estoy montando un sistema que va sobre Oracle y me sirvio n los parametros que se deben agregar en el sysctl.conf y los limites!

Excelente guia!

Saludos! :D
 
Subir