Parse errors por OMC_ASH_VIEWER en Oracle


Introducción
En algunos entornos Oracle gestionados desde Enterprise Manager Cloud Control (OEM), puede aparecer un error curioso y molesto en el alert log de la base de datos:
WARNING: too many parse errors, count=4390 SQL hash=0xb6a91e8f PARSE ERROR: ospid=3152219, error=904: Additional information: ... sqlid=fa9vmfqvak7ng Current username=SYS
Este tipo de error suele estar relacionado con llamadas automáticas que hace OEM a paquetes PL/SQL internos. En este caso concreto, se trataba del paquete OMC_ASH_VIEWER, que no estaba correctamente desplegado en la base de datos. Ups!!
Diagnóstico
Para confirmar que el error estaba relacionado con el paquete OMC_ASH_VIEWER ejecutamos:
SELECT dbsnmp.OMC_ASH_VIEWER.getVersion() FROM dual;
ORA-00904: "DBSNMP"."OMC_ASH_VIEWER"."GETVERSION": invalid identifier
¿Qué es OMC_ASH_VIEWER?
Es un paquete PL/SQL creado por OEM dentro del esquema DBSNMP, que se utiliza para recolectar datos de:
Active Session History (ASH)
AWR y CPU
Sesiones bloqueadas
Información de rendimiento en tiempo real o histórico
Este paquete forma parte del plugin oracle.sysman.db.oms.plugin, y se crea automáticamente mediante el job de OEM llamado:
Deploy Database Management PL/SQL Packages
Solución
Oracle ofrece una solución oficial (Doc ID 2769758.1) para este problema:
- Ejecutar el job desde OEM:
Desde la consola de Enterprise Manager:
Ir a Enterprise → Job → Activity
Hacer clic en Create Job
Buscar y seleccionar el tipo de job: Deploy Database Management PL/SQL Packages
Seleccionar el target afectado (base de datos o PDB)
Proporcionar credenciales SYSDBA válidas
Ejecutar inmediatamente (o programar)
- Verificación
Una vez desplegado correctamente, la siguiente consulta debería funcionar:
SYS@CDB$ROOT> SELECT dbsnmp.OMC_ASH_VIEWER.getVersion() FROM dual;
DBSNMP.OMC_ASH_VIEWER.GETVERSION()
_____________________________________
60
Y el alert log ya no mostrará errores de parse.
¿Qué hace internamente este job?
Este job ejecuta scripts como:
omc_ashv_pkg.sql y omc_ashv_pkg_body.sql: Definen el paquete OMC_ASH_VIEWER en DBSNMP
priv_grant_omc_ash.sql: Asigna los permisos necesarios al paquete
Esto permite a OEM acceder a vistas como GV$SESSION, DBA_HIST_*, V$SQL, etc., y generar informes y gráficos en el panel de rendimiento.
Conclusión
Este tipo de error puede pasar desapercibido si no revisamos el alert log con frecuencia, pero puede generar carga innecesaria y confusión.
Afortunadamente, la solución es sencilla si sabemos lo que buscamos: verificar y desplegar correctamente los paquetes PL/SQL de gestión desde OEM.
¿Te ha pasado algo similar en tus entornos? ¡Cuéntamelo en los comentarios!
Subscribe to my newsletter
Read articles from Carla Muñoz López directly inside your inbox. Subscribe to the newsletter, and don't miss out.
Written by

Carla Muñoz López
Carla Muñoz López
Mi nombre es Carla y me defino como una apasionada de conocer, compartir ideas, divertirme y aprender todo lo relacionado con Oracle. Alegre y creativa, con un alto grado de autoexigencia, que busca, incluso sin querer, una forma diferente de ver un mismo problema o solución. Defensora del trabajo en equipo en todas las facetas de la vida y de disfrutar todo lo que haces, siempre con humildad. Actualmente cuento con más de 15 años de experiencia como administradora de Oracle, habiendo ocupado previamente posiciones como desarrolladora en la rama de Inteligencia de Negocios. Fue en ese momento que me di cuenta de que no quería centrarme en el desarrollo, sino participar en todas las capas que involucraban los datos, desde el despliegue de la base de datos hasta su explotación final. Siempre estoy dispuesta a ayudar y compartir conocimientos. Creo firmemente que con la tecnología hay que divertirse y no verla como una competencia. La persona con la que tienes que ser el mejor es contigo mismo.