domingo, 9 de noviembre de 2014

Instalando Oracle Linux UEK 6 y Oracle Database 12c en una VM en 1 hora o menos

Si andas buscando una guía para crear tu propio laboratorio para aprendizaje en Oracle Database 12c, aquí tienes la respuesta.

Te voy a explicar como en pocos minutos, podrás tener funcional al 100% una máquina virtual con la última versión del sistema operativo Oracle Linux UEK y la versión Oracle Database 12c.

Inicialmente vas a tener que obtener el ISO del Oracle Linux UEK, el cuál lo puedes bajar de Oracle Software Delivery Cloud. Si no tienes una cuenta para poder ingresar aquí, no te preocupes, basta con que ingreses en el portal principal de Oracle en la ruta oracle.com y ahí podrás crear un usuario sin costo alguno.

Cuando ingreses verás en la parte superior un TAB con la descripción de Cloud Portal (Oracle Linux/VM), haz click allí y podrás realizar la búsqueda del medio para Oracle Enterprise Linux. También en este lugar, tienes acceso a los binarios para Oracle Virtual Machine y las plantillas con productos ya instalados de otras familias.

Esta guía esta hecha con base en la versión OEL 6.x.


Una vez que tengas el medio, utiliza VirtualBox o VMWARE Player, para crear una maquina virtual a partir del ISO de OEL, como lo hayas hecho con otras máquinas virtuales. Puedes instalar el OEL mediante el método "Windows" ( NEXT - NEXT ), siguiendo estas únicas indicaciones:
  1. Asigna a la máquina, la posibilidad de crecer hasta unos 30GB de almacenamiento.
  2. Te recomiendo utilizar una máquina con al menos Corei5, para que puedas asignar un par de cores a la VM.
  3. Escoje cuando estés creando la VM, la opción de sistema operativo de Oracle Enterprise Linux o similar. ( Red Hat Linux, Suse Linux )
  4. Ideal 6GB de memoria RAM para máquina. Se puede crear con 2GB, pero el proceso es mucho más lento
  5. Cuando estés instalando el Linux, no te preocupes de crear particiones para el software. Crea únicamente el área de BOOT, un swaping según la cantidad de memoria física asignada a la máquina virtual ( Con un máximo de 4GB ) y el resto de los 30GB posibles de crecimiento, que queden en ROOT ( / ).
  6. Escoge desactivar el FIREWALL en el proceso de instalación
  7. Asigna a la VM una dirección IP fija y un nombre de host. Por ejemplo ( IP 10.0.0.1 y hostname LAB1 )
  8. Te recomiendo no te compliques con los passwords de los usuarios. En mis laboratorios siempre utilizo "oracle" para todos. Te dará un "warning" cuando estés instalando, pero no te preocupes.
Cuando termine el proceso de volcado del software del Linux al ambiente de tu máquina virtual, haz login en el equipo con el usuario ROOT y empezamos a configurar el equipo para poder instalar una base de datos Oracle 12c.

Primero que todo, la instalación de facto, no ha instalado todo el software que necesitamos para hacer correr Oracle Database. Vamos a montar el ISO de Linux, dentro de nuestra máquina virtual y vamos a modificar el repositorio de carga del utilitario YUM, para poder instalar fácilmente el software faltante.

[root@lab1 ~]# mount /dev/cdrom /media/cdrom
mount: block device /dev/sr0 is write-protected, mounting read-only

[root@lab1 yum.repos.d]# pwd
/etc/yum.repos.d
[root@lab1 yum.repos.d]# df -k
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/sda3             59705476   3358692  53313904   6% /
tmpfs                  3097604       204   3097400   1% /dev/shm
/dev/sda1               198337     47972    140125  26% /boot
/dev/sr0               3027556   3027556         0 100% /media/cdrom

[root@lab1 yum.repos.d]# cd /media/cdrom

[root@lab1 cdrom]# ls -la
total 755
drwxr-xr-x. 10 root root   4096 Jun 26  2012 .
drwxr-xr-x.  3 root root   4096 Jan 10 14:37 ..
-rw-r--r--.  1 root root     42 Jun 26  2012 .discinfo
-rw-r--r--.  1 root root   7041 Jun 26  2012 EULA
-rw-r--r--.  1 root root   7041 Jun 26  2012 eula.en_US
-rw-r--r--.  1 root root   3334 Jun 26  2012 eula.py
-rw-r--r--.  1 root root  18390 Jun 26  2012 GPL
drwxr-xr-x.  3 root root   2048 Jun 26  2012 HighAvailability
drwxr-xr-x.  3 root root   2048 Jun 26  2012 images
drwxr-xr-x.  2 root root   2048 Jun 26  2012 isolinux
drwxr-xr-x.  3 root root   2048 Jun 26  2012 LoadBalancer
-rw-r--r--.  1 root root    196 Jun 26  2012 media.repo
drwxr-xr-x.  2 root root 505856 Jun 26  2012 Packages
-rw-r--r--.  1 root root   2443 Jun 26  2012 README-en
-rw-r--r--.  1 root root   6722 Jun 26  2012 README-en.html
-rw-r--r--.  1 root root  29531 Jun 26  2012 RELEASE-NOTES-en
-rw-r--r--.  1 root root  32428 Jun 26  2012 RELEASE-NOTES-en.html
-rw-r--r--.  1 root root  29531 Jun 26  2012 RELEASE-NOTES-x86_64-en
-rw-r--r--.  1 root root  32428 Jun 26  2012 RELEASE-NOTES-x86_64-en.html
-rw-r--r--.  1 root root  29531 Jun 26  2012 RELEASE-NOTES-x86-en
-rw-r--r--.  1 root root  32428 Jun 26  2012 RELEASE-NOTES-x86-en.html
lrwxrwxrwx.  1 root root     15 Jun 26  2012 repodata -> Server/repodata
drwxr-xr-x.  3 root root   2048 Jun 26  2012 ResilientStorage
-rw-r--r--.  1 root root   1011 Jun 26  2012 RPM-GPG-KEY
-rw-r--r--.  1 root root   1011 Jun 26  2012 RPM-GPG-KEY-oracle
drwxr-xr-x.  4 root root   2048 Jun 26  2012 Server
-rw-r--r--.  1 root root    108 Jun 26  2012 supportinfo
-r--r--r--.  1 root root   6072 Jun 26  2012 TRANS.TBL
-rw-r--r--.  1 root root   1188 Jun 26  2012 .treeinfo
drwxr-xr-x.  3 root root   2048 Jun 26  2012 UEK2
[root@lab1 cdrom]# pwd
/media/cdrom

Cuando ejecutemos el comando "yum repolist" para ver el repositorio de programas disponibles, vamos a recibir un error, de que no es posible resolver la dirección del mismo. Esto es, porque Yum va a intentar conectarse a una dirección externa en el CLOUD ( Internet ) y nuestra VM, no ha sido configurada para hacerlo.

Vamos a cambiar la configuración de facto del YUM, para que pueda ver el ISO como su repositorio de facto.

[root@lab1 cdrom]# yum repolist
Loaded plugins: refresh-packagekit, security
http://public-yum.oracle.com/repo/OracleLinux/OL6/UEK/latest/i386/repodata/repomd.xml: [Errno 14] PYCURL ERROR 6 - "Couldn't resolve host 'public-yum.oracle.com'"
Trying other mirror.
repo id                         repo name                                                                              status
ol6_UEK_latest                  Latest Unbreakable Enterprise Kernel for Oracle Linux 6Server (i386)                   0
ol6_latest                      Oracle Linux 6Server Latest (i386)                                                     0
repolist: 0

Vamos a ingresar al directorio en donde se encuentra el archivo de configuración de YUM y vamos a realizar los cambios que te describo a continuación.
[root@lab1 cdrom]# cd /etc/yum.repos.d/
[root@lab1 yum.repos.d]# ls -la
total 20
drwxr-xr-x.   2 root root  4096 Jan 10 14:09 .
drwxr-xr-x. 112 root root 12288 Jan 10 14:39 ..
-rw-r--r--.   1 root root  1707 Jun 25  2012 public-yum-ol6.repo

[root@lab1 yum.repos.d]# cp public-yum-ol6.repo oracle-yum.repo

Edita la copia del archivo que haz hecho con vi o gedit y deja el archivo con el contenido que te muestro aquí.

[root@lab1 yum.repos.d]# vi oracle-yum.repo

[root@lab1 yum.repos.d]# more oracle-yum.repo
[ol6_UEK_base]
name=Unbreakable Enterprise Kernel for Oracle Linux $releasever ($basearch)
baseurl=file:///media/cdrom/
gpgkey=file:///media/cdrom/RPM-GPG-KEY-oracle
gpgcheck=1
enabled=1
[root@lab1 yum.repos.d]#

Renombra el archivo original del repositorio y ejecuta ahora nuevamente el YUM REPOLIST.

[root@lab1 yum.repos.d]# mv public-yum-ol6.repo public-yum-ol6.repo_bk
[root@lab1 yum.repos.d]# ls -la
total 24
drwxr-xr-x.   2 root root  4096 Jan 10 14:53 .
drwxr-xr-x. 112 root root 12288 Jan 10 14:39 ..
-rw-r--r--.   1 root root   187 Jan 10 14:53 oracle-yum.repo
-rw-r--r--.   1 root root  1707 Jun 25  2012 public-yum-ol6.repo_bk
[root@lab1 yum.repos.d]# yum repolist
Loaded plugins: refresh-packagekit, security
ol6_UEK_base                                                                                          | 3.7 kB     00:00 ...
ol6_UEK_base/primary_db                                                                               | 2.4 MB     00:00 ...
repo id                            repo name                                                                           status
ol6_UEK_base                       Unbreakable Enterprise Kernel for Oracle Linux 6Server (i386)                       2,776
repolist: 2,776


Como puedes observar, ya estas utilizando el propio ISO como repositorio de software para el YUM. Ahora vamos a instalar algún software necesario para que puedas utilizar todas las posibilidades que el software de base de datos Oracle te pueda brindar.

Vamos a instalar como primer paso, el soporte para ASM

[root@lab1 yum.repos.d]# yum install oracleasm-support oracleasm-2.6.18-274.el5
Loaded plugins: refresh-packagekit, security
Setting up Install Process
No package oracleasm-2.6.18-274.el5 available.
Resolving Dependencies
--> Running transaction check
---> Package oracleasm-support.i686 0:2.1.5-1.el6 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

=================================================================================
 Package                            Arch                  Version                        Repository                     Size
=================================================================================
Installing:
 oracleasm-support                  i686                  2.1.5-1.el6                    ol6_UEK_base                   70 k

Transaction Summary
=================================================================================
Install       1 Package(s)

Total download size: 70 k
Installed size: 188 k
Is this ok [y/N]: y
Downloading Packages:
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
  Installing : oracleasm-support-2.1.5-1.el6.i686                                                                        1/1
  Verifying  : oracleasm-support-2.1.5-1.el6.i686                                                                        1/1
Installed:
  oracleasm-support.i686 0:2.1.5-1.el6

Complete!

Completado este paso, vamos a utilizar ahora el paquete de soporte para instalar el software de base de datos 11gR2 y luego haremos lo mismo para 12c.

[root@lab1 yum.repos.d]#

[root@lab1 yum.repos.d]# yum install oracle-rdbms-server-11gR2-preinstall
Loaded plugins: refresh-packagekit, security
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package oracle-rdbms-server-11gR2-preinstall.i686 0:1.0-6.el6 will be installed
--> Processing Dependency: compat-libcap1 for package: oracle-rdbms-server-11gR2-preinstall-1.0-6.el6.i686
--> Processing Dependency: ksh for package: oracle-rdbms-server-11gR2-preinstall-1.0-6.el6.i686
--> Processing Dependency: libaio-devel for package: oracle-rdbms-server-11gR2-preinstall-1.0-6.el6.i686
--> Processing Dependency: compat-libstdc++-33 for package: oracle-rdbms-server-11gR2-preinstall-1.0-6.el6.i686
--> Running transaction check
---> Package compat-libcap1.i686 0:1.10-1 will be installed
---> Package compat-libstdc++-33.i686 0:3.2.3-69.el6 will be installed
---> Package ksh.i686 0:20100621-16.el6 will be installed
---> Package libaio-devel.i686 0:0.3.107-10.el6 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

=================================================================================
 Package                                         Arch            Version                       Repository               Size
=================================================================================
Installing:
 oracle-rdbms-server-11gR2-preinstall            i686            1.0-6.el6                     ol6_UEK_base             15 k
Installing for dependencies:
 compat-libcap1                                  i686            1.10-1                        ol6_UEK_base             16 k
 compat-libstdc++-33                             i686            3.2.3-69.el6                  ol6_UEK_base            188 k
 ksh                                             i686            20100621-16.el6               ol6_UEK_base            680 k
 libaio-devel                                    i686            0.3.107-10.el6                ol6_UEK_base             13 k

Transaction Summary
=================================================================================
Install       5 Package(s)

Total download size: 912 k
Installed size: 2.2 M
Is this ok [y/N]: Y
Downloading Packages:
-----------------------------------------------------------------
Total                                                                                        9.2 MB/s | 912 kB     00:00
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
  Installing : libaio-devel-0.3.107-10.el6.i686                                                                          1/5
  Installing : compat-libstdc++-33-3.2.3-69.el6.i686                                                                     2/5
  Installing : compat-libcap1-1.10-1.i686                                                                                3/5
  Installing : ksh-20100621-16.el6.i686                                                                                  4/5
  Installing : oracle-rdbms-server-11gR2-preinstall-1.0-6.el6.i686                                                       5/5
  Verifying  : ksh-20100621-16.el6.i686                                                                                  1/5
  Verifying  : compat-libcap1-1.10-1.i686                                                                                2/5
  Verifying  : oracle-rdbms-server-11gR2-preinstall-1.0-6.el6.i686                                                       3/5
  Verifying  : compat-libstdc++-33-3.2.3-69.el6.i686                                                                     4/5
  Verifying  : libaio-devel-0.3.107-10.el6.i686                                                                          5/5

Installed:
  oracle-rdbms-server-11gR2-preinstall.i686 0:1.0-6.el6

Dependency Installed:
  compat-libcap1.i686 0:1.10-1              compat-libstdc++-33.i686 0:3.2.3-69.el6        ksh.i686 0:20100621-16.el6
  libaio-devel.i686 0:0.3.107-10.el6

Complete!

Lo mismo que en el paso anterior, pero con Oracle 12c paquete.

http://public-yum.oracle.com/repo/OracleLinux/OL6/latest/x86_64/


[root@lab1 ~]# yum install oracle-rdbms-server-12cR1-preinstall-1.0-11.el6.x86_64.rpm
Loaded plugins: refresh-packagekit, security
Setting up Install Process
Examining oracle-rdbms-server-12cR1-preinstall-1.0-11.el6.x86_64.rpm: oracle-rdbms-server-12cR1-preinstall-1.0-11.el6.x86_64
Marking oracle-rdbms-server-12cR1-preinstall-1.0-11.el6.x86_64.rpm to be installed
Resolving Dependencies
--> Running transaction check
---> Package oracle-rdbms-server-12cR1-preinstall.x86_64 0:1.0-11.el6 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

=================================================================================
 Package                                          Arch               Version                  Repository                                                           Size
=================================================================================
Installing:
 oracle-rdbms-server-12cR1-preinstall             x86_64             1.0-11.el6               /oracle-rdbms-server-12cR1-preinstall-1.0-11.el6.x86_64              38 k

Transaction Summary
=================================================================================
Install       1 Package(s)

Total size: 38 k
Installed size: 38 k
Is this ok [y/N]: Y
Downloading Packages:
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
Warning: RPMDB altered outside of yum.
  Installing : oracle-rdbms-server-12cR1-preinstall-1.0-11.el6.x86_64                                                                                               1/1
  Verifying  : oracle-rdbms-server-12cR1-preinstall-1.0-11.el6.x86_64                                                                                               1/1
Installed:
  oracle-rdbms-server-12cR1-preinstall.x86_64 0:1.0-11.el6

Complete!

Con la instalación de estos paquetes, haz creado y configurado el ambiente necesario para instalar el motor de base de datos Oracle. El usuario ORACLE ha sido creado y necesitas para poder iniciar a utilizarlo, asignarle una clave.

[root@lab1 yum.repos.d] passwd oracle

Cambia los permisos de dueño y grupo del directorio /OPT que utilizaremos para la instalación del software. Allí podrás crear un directorio que se llama INSTALADORES, para bajar los medios de la base de datos.

[root@lab1 yum.repos.d] chown -R oracle:oinstall /opt

[root@lab1 yum.repos.d] su - oracle

[oracle@lab1 /home/oracle]

Configura en el archivo .profile las variables básicas de ambiente para la instalación del motor.

ORACLE_BASE=/opt/oracle
export ORACLE_BASE
ORACLE_HOME=$ORACLE_BASE/product/12c
ORACLE_SID=lab1
export ORACLE_HOME ORACLE_SID
PATH=$ORACLE_HOME/bin:$PATH
export ORACLE_PATH

Ahora sí, necesitas los medios de instalación del motor de base de datos Oracle 12c. Estos medios los obtienes desde el sitio de descargas de oracle.com. Puedes descargar la edición 12.1.0.2 para que tengas IN-MEMORY Database en tu laboratorio de una sola vez. 

Necesitas para esta instalación los archivos 1 y 2 de la base de datos, únicamente.

Oracle Database 12c Release 1 (12.1.0.2.0) Enterprise Edition 

Oracle Database 12c Release 1 (12.1.0.2.0) for Linux x86-64

 Downloadlinuxamd64_12c_database_1of2.zip (1,673,544,724 bytes) (cksum - 839029806)
 Downloadlinuxamd64_12c_database_2of2.zip (1,014,530,602 bytes) (cksum - 1187131466)
  
 Directions
  1. All files are in the .zip format. There is an unzip utility here if you need one.
  2. Download and unzip both files to the same directory.
  3. Installation guides and general Oracle Database 12c documentation are here.

Cuando tengas los archivos ZIP, necesitas trasladar estos archivos al directorio INSTALADORES de tu  VM. Crea dentro de este directorio dos subdirectorios adicionales Disk1 y Disk2 para cada uno de los archivos ZIP obtenidos. Copiados a estas rutas, procede a desempacar los archivos.

[oracle@lab1 ~]#

[oracle@lab1 yum.repos.d]#

unzip linuxamd64_12c_database_2of2.zip
...
  inflating: database/stage/Components/oracle.rdbms/12.1.0.1.0/1/DataFiles/filegroup46.jar
  inflating: database/stage/Components/oracle.rdbms/12.1.0.1.0/1/DataFiles/filegroup48.jar
  inflating: database/stage/Components/oracle.rdbms/12.1.0.1.0/1/DataFiles/filegroup34.jar
  inflating: database/stage/Components/oracle.rdbms/12.1.0.1.0/1/DataFiles/filegroup33.jar
  inflating: database/stage/Components/oracle.rdbms/12.1.0.1.0/1/DataFiles/filegroup19.6.1.jar

[oracle@lab1 Disk2]$ ls -la
total 1090376
drwxr-xr-x. 3 oracle oinstall       4096 Jan 10 15:39 .
drwxr-xr-x. 4 oracle oinstall       4096 Jan 10 15:37 ..
drwxr-xr-x. 4 oracle oinstall       4096 Jun 10  2013 database
-rw-r--r--. 1 oracle oinstall 1116527103 Dec  5 11:52 linuxamd64_12c_database_2of2.zip

Por espacio puedes borrar los archivos .zip.
[oracle@lab1 Disk2]$ rm linuxamd64_12c_database_2of2.zip

Ahora sí, vamos cuanto espacio nos queda en la VM, antes de iniciar el proceso de instalación de la base de datos.

[oracle@lab1 Disk2]$ df -k
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/sda3             59705476   6231660  50440936  11% /
tmpfs                  3097604       204   3097400   1% /dev/shm
/dev/sda1               198337     47975    140122  26% /boot
/dev/sr0               3027556   3027556         0 100% /media/cdrom
[oracle@lab1 Disk2]$ pwd
/opt/oracle/instaladores/Disk2

[oracle@lab1 Disk2]$ cd ..

En el directorio de instaladores tienes ahora dos directorios con el software desempacado de la base de datos. Antes de lanzar el instalador, debemos hacer un paso más.

Vamos a tomar el contenido del Disk2 y lo vamos a fusionar con el Disk1, como lo demuestro más abajo.

[oracle@lab1 instaladores]$ ls -la
total 16
drwxr-xr-x. 4 oracle oinstall 4096 Jan 10 15:37 .
drwxr-xr-x. 3 oracle oinstall 4096 Jan 10 15:05 ..
drwxr-xr-x. 3 oracle oinstall 4096 Jan 10 15:39 Disk1
drwxr-xr-x. 3 oracle oinstall 4096 Jan 10 15:40 Disk2

[oracle@lab1 instaladores]$ cd Disk1

[oracle@lab1 Disk1]$ cp -R ../Disk2/* .
[oracle@lab1 Disk1]$

Una vez que termine este paso, abré otra terminal en la VM en la cuál estarás logeado con el usuario ROOT y ejecuta el comando para deshabilitar la seguridad del ambiente gráfico, para permiter la ejecución del instalador con el usuario ORACLE.

[root@lab1 root] xhost +

Vuelve a tu terminar donde estas logeado con el usuario ORACLE y ahora puedes ingresar al directorio del Disk1 y lanzar ahora sí el runInstaller del motor de la base de datos.

De aquí en adelante, ya sabes que hacer.

Puedes tener acceso a más tutoriales en el sitio oficial de oracle.com