Otro punto de vista sobre la Administración de Bases de Datos


viernes, 18 de julio de 2008

Database Control muestra una versión incorrecta después de instalar el parche 10.2.0.4

Después de instalar el parche 10.2.0.4 en un Oracle RAC de dos nodos, apareció un problema estético en el Oracle Enterprise Manager 10g Database Control.

En la página principal del Database Control dentro del apartado General aparecía como versión la 10.2.0.1.0, aparentemente era algo estético puesto que todas las opciones funcionaban perfectamente.

Después de buscar durante bastante tiempo no encontré ninguna solución para este pequeño problema.

Pude ver que le había ocurrido a más gente:

http://kr.forums.oracle.com/forums/thread.jspa?threadID=638803

pero en este caso no habia ninguna solución.

Al ejecutar la siguiente consulta todos los productos tenían la versión correcta.

select comp_name,version,status from dba_registry;

Por lo tanto, la única solución aparente era borrar y crear de nuevo el repositorio de Enterprise Manager, para esto seguí los siguientes pasos:

1.- Borrar la configuración de Database Control y el repositorio.

Hay que ejecutar el siguiente comando:

emca -deconfig dbcontrol db -repos drop -cluster

Al trabajar con un entorno RAC con dos nodos el comando anterior pedía los siguientes parámetros:

Enter the following information:
Database unique name:ORCL (nombre de la bbdd en RAC)
Listener port number:1521 (puerto del listener, no confundir con el puerto que usa dbconsole)
Password for SYS user:xxxxx
Password for SYSMAN user:xxxxx

Do you wish to continue? [yes(Y)/no(N)]:Y

Esto borra el usuario SYSMAN de la base de datos, por lo tanto se pierde todo lo que tenga este usuario.

2.- Crear la configuración de Database Control y creación del repositorio.

Para crear el repositorio ejecutamos:

emca -config dbcontrol db -repos create cluster

pedirá los siguientes parámetros:

Enter the following information:
Database unique name:ORCL
Listener port number: 1521
Cluster name: crs (ver NOTA más abajo)
Password for SYS user: xxxxx
Password for DBSNMP user: xxxxx
Password for SYSMAN user:
xxxxx
Email address for notifications (optional):
Outgoing Mail (SMTP) server for notifications (optional):
ASM ORACLE_HOME [ /opt/oracle/u01/app/oracle/product/10.2/db_1 ]:
ASM port [ 1521 ]:
ASM user role [ SYSDBA ]:

ASM username [ SYS ]:
ASM user password: xxxxx
-----------------------------------------------------------------

You have specified the following settings

Database ORACLE_HOME ................ /opt/oracle/u01/app/oracle/product/10.2/db_1

Database instance hostname ................ node1
Listener port number ................ 1521
Cluster name ................ crs
Database unique name ................ ORCL
Email address for notifications ...............
Outgoing Mail (SMTP) server for notifications ...............
ASM ORACLE_HOME ................ /opt/oracle/u01/app/oracle/product/10.2/db_1
ASM port ................ 1521
ASM user role ................ SYSDBA
ASM username ................ SYS

-----------------------------------------------------------------
Do you wish to continue? [yes(Y)/no(N)]:
Y

Después de unos minutos se ha creado el repositorio de Enterprise Manager y el usuario SYSMAN también ha sido creado.

NOTA : El nombre del cluster es por defecto crs, en cualquier caso se puede comprobar cual es el nombre de cluster en nuestra instalación ejecutando el siguiente comando:

$ORA_CRS_HOME/bin/cemutlo -n

3.- Cambiar el puerto de dbconsole.

Una vez creado el repositorio, el anterior comando ha arrancado la dbconsole en el puerto por defecto 5500, en mi caso, yo tenía la consola en el puerto 1158, para evitar abrir otro tunel y poder seguir usando el mismo puerto tengo que cambiar el puerto de la consola con:

emca -reconfig ports -cluster -DBCONTROL_HTTP_PORT 1158

pedirá:

Enter the following information:
Database unique name: ORCL

Do you wish to continue? [yes(Y)/no(N)]: Y

Para y arranca el database control, después de unos minutos de espera la dbconsole ya esta configurada en el nuevo puerto.

4.- Ver la configuración.

Como último paso, vamos a ver la configuración actual de Enterprise Manager.

emca -displayConfig dbcontrol -cluster

nos pide:

Enter the following information:
Database unique name: ORCL

Do you wish to continue? [yes(Y)/no(N)]: Y

Nos muestra la siguiente información:

**************** Current Configuration ****************
INSTANCE NODE DBCONTROL_UPLOAD_HOST
-------- ----- ---------------------

ORCL1 node1 node1
ORCL2 node2 node1

Conclusiones.

Al arrancar la consola desde el navegador ahora es necesario poner https puesto que en esta versión se trata ya de una "secure dbconsole" según la documentación de Oracle.

Podemos observar que la versión que aparece en la consola es la correcta 10.2.0.4.0. En mi caso, además, tenía una serie de alertas caducadas que no se habían eliminado del repositorio, al recrearlo aparecen solo las alertas nuevas.

Links.

* Enterprise Manager Configuration Assistant.
http://kr.forums.oracle.com/forums/thread.jspa?threadID=638803
* Como recrear el Enterprise Manager http://www.dbasupport.com.mx/index.php?option=com_content&task=view&id=152&Itemid=29

2 comentarios:

Unknown dijo...

En una instalación 11g RAC con dos nodos el OEM solo arranca en uno de los nodos ¿se puede arrancar en ambos nodos? Cuando caé el sistema en el nodo dónde corre EM supongo que existirá alguna forma de levantarlo en el otro...

Gracias por tus artículos, verdaderamente muy interesantes.

El Otro DBA dijo...

Solo puedes tener arrancado el OEM en un solo nodo. En caso de caida del nodo principal puedes arrancarlo en el segundo nodo con:

emctl start dbconsole

Ten en cuenta que ahora debes usar el nombre o la direccion ip del segundo nodo para acceder a la consola.

https://segundo_nodo:port/em

Creo que eso es todo.