Instalando ORACLE Warehouse Builder en RAC - Exadata

Por Sinue R. Botello García
Publicado en mayo 2011

Nos encontramos con una situación muy particular con un cliente en México, el cual había decidido echar a andar el Oracle Warehouse Builder dentro del exadata con una configuración de RAC, la particularidad de este suceso es que para ese momento (Marzo 2011) no existía un instalador liberado para la versión de sistema operativo con la que trabaja el exadata (Oracle Enterprise Linux 5 64 bits). Nos dimos a la tarea de realizar una investigación que nos permitiera conocer los alcances y requerimientos de esta instalación, el siguiente documento es la resultante de dicha instalación que se llevo a cabo en el ambiente productivo del cliente, en el cual se refieren cuales fueron los pasos que se llevaron a cabo, los servicios que se dieron de alta y de que manera se podían switchear entre ambos.

Introducción
El proceso general de instalación de OWB en un ambiente RAC es similar al proceso general de instalación en una sola instancia de base de datos, sin embargo, hay algunos detalles específicos que observar de los cuales se habla a continuación.

Para instalar y configurar Warehouse Builder con Oracle RAC:
Se tiene creado un ambiente normal RAC como se describe en la Oracle Real Application Clusters Installation Guide para la plataforma Enterprise Linux 5 – 64 bits.

NODOS:

  • faexdb01.ad.fahorro.com.mx
  • faexdb02.ad.fahorro.com.mx

Instalación del warehouse builder 11.2.0.2

No existe una versión de warehouse builder standalone 11.0.2.0.2 para Linux 64 bits, de hecho el instalador standalone se utiliza solamente para los componentes clientes y cuando se desea montar el repositorio en una base de datos de versión 10g. Al momento no existe el instalador del Warehouse Builder para la plataforma Oracle Enterprise Linux 5 - 64 Bits. Por lo cual se realizo una instalación utilizando el software de warehouse builider que viene inmerso en el software del rdbms. La instanciación se realizo usando la siguiente arquitectura:

Debido a problemas presentados en la instalación con la versión 11.2.0.2 se tuvo que seguir el workaround comentado en la nota “Installation Of Owb 11.2.0.2 On Linux Fails Continuously (Doc ID 1268702.1)” el cual consistió en:

  • Instalar OWB 11.2.0.1 (RDBMS 11.2.0.1) dentro de un Nuevo ORACLE_HOME (temporalmente) cuando finalizo la instalacion se procedio a eliminar este ORACLE_HOME
  • Crear el repositorio utilizando la herramienta reposint.sh de la version 11.2.0.1 instalada en el paso 1.
  • Actualizacion a 11.2.0.2 usando el script que se encuentra en <OH11.2.0.2>\owb\reposasst\upg\upg11201to11202.sql

 

Preparando  los nodos host.

  1. Para cada uno de los nodos se configura el archivo tnsnames.ora alojado en el directorio OWB_ORACLE_HOME\owb\network\admin directory. La configuración del tnsnames es para poder alejar strings de conexión hacia los 2 nodos del clúster. Uno definido hacia la instancia 1 usando el servicio owb1, otro definido hacia la instancia del cluster 2 usando el servicio definido como owb2 y otro para conectarse mediante aplicaciones cliente usando el servicio que ve ambas instancias del  clúster “meta_owb”
  2. Existe una configuración predeterminada del archivo tnsnames.ora para cada uno de los nodos de tal forma que se consideraran fuente y destino de datos del Warehouse Builder.
  3. Se definió los usuarios (owbsys, owb_audit) y el owner para el primer workspace (owbrep), el Repository Assistant se ejecuta y te permite realizar estas tareas. Para ejecutar el  Repository Assistant en Linux debemos ejecutar la rutina reposinst.sh alojada en el directorio OWB_ORACLE_HOME/owb/bin.
  4. Para registrar cada uno de los nodos de RAC es necesario, a través del Repository Assistant, seleccionar la opción “Advanced Set Up”. Se realiza una conexión al nodo utilizando Host:Port:Sid donde “Host” es el nombre físico del nodo, se selecciona la opción de registrar la instancia de RAC y se utilizan el otro servicio definido que para la instancia 2 el cual fue owb2.
  5. El contenido del archivo rtrepos.properties (ubicado en ORACLE_HOME/owb/bin/admin/rtrepos.properties) se debe copiar en cada uno de los nodos del clúster, de manera manual, del nodo primario (faexdb01) al nodo secundario (faexdb02).

Upgrade del RDBMS 11.2.0.2

Terminada la creación del repositorio utlizando el WB en la versión mencionada anteriormente se procede a realizar el upgrade apropiado descrito en la nota:

How To Upgrade 11.1 Repository to 11.2 In The Same Database Instance [ID 1161683.1]

Para el caso especifico de esta instalacion dado que aun no contenia objetos, basto con aplicar el procedimiento de ejecutar como un usuario sysdba el siguiente script:

\owb\reposasst\upg\upg11201to11202.sql

Una vez realizada la configuración del repositorio se procedió a eliminar el RDBMS en la versión 11.2.0.1, pues su único fin era permitirnos configurar el repositorio, tarea a este punto realizada con éxito.

Alta de los servicios

  1. Para asegurar el correcto funcionamiento del Servicio del Control Center se requiere que los servicios individuales de cada uno de los nodos se encuentren disponibles. Si éstos no están presentes después de la instalación de RAC, es necesario que manualmente asegures la disponibilidad de los mismos.
  2. Nos debemos asegurar de que cada nodo en RAC tenga un service_name único. Se agrega un servicio único  a través del siguiente comando:

srvctl add service -d owbmeta -s owb1 -r owbmeta1                para faexdb01
srvctl add service -d owbmeta -s owb2 -r owbmeta2                para faexdb02

Para realizar la correcta configuración de éstos servicios, los esfuerzos se basaron en la nota:

How to Verify if OWB is Installed Correctly on RAC and Exadata [ID 455999.1]

Que habla puntualmente de cómo asegurar que cada uno de los nodos de RAC tenga un  nombre de servicio único.

Asegurando la disponibilidad de los nombres de servicio para cada uno de los nodos de RAC

Para una instancia dada, podemos iniciar el servicio de la siguiente manera(en el caso en que no haya sido levantado aún), después de iniciarse manualmente la primera vez queda registrado para su reinicio en automatico por el cluster:

srvctl start service –d owbmeta –s owb1

Para una instancia dada podemos verificar que el servicio esté corriendo con el siguiente comando:

srvctl status service –d owbmeta –s owb1

Verificando el status de los nodos con el Warehouse Builder Browser

Una vez que se realizó la configuración correcta de los servicios se procedió a asegurar que warehouse builder era realmente capaz de mapear a ambos nodos como candidatos a correr el servicio del Control Center.

Para validar y levantar esta aplicación de visualización web nos basamos en el blog oracle oficial de warehouse builder.
http://blogs.oracle.com/warehousebuilder/2010/01/how_to_start_oracle_warehouse_builder_repository_browser.html, se procedió a habilitar el servicio del OWB Browser Listener y a través del Warehouse Builder browser checar si los servicios efectivamente eran visibles para la herramienta, asi como las características generales del workspace (versionamiento, fechas de creación, etc.)

Se puede realizar una conexión remota hacia este browser mediante la siguiente liga.

https://faexdb01:8999/owbb/RABLogin.uix?mode=runtime&def_host=faexdb01&def_port=1521&def_service=owb1

Utilizando el usuario owbrep para loggearse al sistema, una vez dentro podemos observar que ambos nodos se encuentran en el estado de enabled, como activo solo puede estar un nodo a la vez como lo cita la nota referida:

Enabled
If Enabled is checked, then the node is a "candidate" to run the Control Center Service
If Enabled is not checked, then the Control Center Service is not allowed to run on the node.
NOTE: So when a node is "Enabled", it does not mean that the Control Center Service is really running on that node. It is only marked as a "candidate" to run the Control Center Service. The only column where can be seen that the Control Center Service is really running on the node, is the "Active" column.

If a node is "Enabled", a job "check_service" will be spawned in the database for each node.

- For node 1: check_service(1)
- For node 2: check_service(2).
Both nodes check every 6 minutes if the Control Center Service is still running ('Active') on one of the nodes. If it finds the Control Center Service inactive, then it will try to start it.

Active
Active means: The Control Center Service is running on the node
There can only be one Active node at a given point in time! That is the reason why in a RAC, the script "start_service.sql" might show:

ORA-20001: The runtime service is already running in a different process
This just indicates that the service is already "Active" on one of the nodes in the RAC.”

Las características citadas las podemos ver en el snapshot siguiente:

Y de esta manera podemos asegurar la correcta instalación y configuración de la herramienta Warehouse Builder en el ambiente RAC de Farmacias del Ahorro , todas las notas referidas son incluidas tambien en este entregable.


Relacion de password de la Instalacion realizada de Warehouse builder realizada por Oracle

Usuario

Tipo de usuario

password

sys

Sysdba de la BD owbmeta

Oracle10

system

Administrador de la BD owbmeta

Oracle10

owbsys

Dueño del repositorio de WB

Oracle10

owbrep

Dueño del Workspace WS_CENTRAL

temporal

Nota: Para poder bajar el contenedor (OC4J) del repository Browser Listener, al momento de levantarlo la primera vez pide un password administrador de esta aplacion JAVA el password que se le asigno fue Oracle10.

Script para levantar el Repository Browser Listener.

<ORACLE_HOME/owb/bin/unix/startOwbbInst.sh
Script para bajar el Repository Browser Listener (con el password previamente proporcionado)
<ORACLE_HOME/owb/bin/unix/stopOWBBInst.sh

Asi finalmente pudimos cumplir con la expectative del cliente y a casi dos meses de que se llevo a cabo esta instalación no se ha reportado ningun error o falla en el servicio para el cual fue preparado el ambiente.

 


Publicado por Sinue R. Botello García (sinue.botello@oracle.com), Associate Sales Consultant. Se desempeña como Oracle Enterprise Accounts en Oracle México