Consultas SQL personalizadas en Opscenter

Introducción

 

Opscenter permite obtener información acerca del funcionamiento de una infraestructura de Netbackup. Hay muchos informes predefinidos y plantillas, pero en ocasiones puede ser necesario hacer algún informe más complejo creando una consulta SQL personalizada. Desde la versión 7.6 está documentado el esquema de la base de datos, lo que facilita la creación de consultas personalizadas.

 

En este artículo haré una introducción sobre como conectarse a la base de datos del Opscenter con una herramienta para poder hacer una consulta sencilla así como localizar el documento que explica el esquema de la base de datos.

 

La base de datos que aloja el Opscenter es Sybase, y podemos conectarnos por ODBC con el editor que más nos guste para poder hacer las consultas de forma visual (por ejemplo Microsoft Query o cualquier otro existente en el mercado).

 

AVISO: hay que tener cuidado con las consultas que se ejecutan, ya que nos van a permitir tener informes a nuestra medida pero un uso incorrecto de las consultas podría dañar la estructura de la base de datos. No ejecutar consultas SQL que puedan hacer cualquier cambio, usar sólo consultas de LECTURA. En cualquier caso, hacer SIEMPRE una copia de seguridad de la base de datos con el comando:

 

WINDOWS: «<INSTALL_PATH>\OpsCenter\server\bin\dbbackup.bat» «<DESTINATION_PATH>\MyDbBackupFolder»

UNIX: /opt/SYMCOpsCenterServer/bin/dbbackup.sh /my_db_backup_dir

(Ver nota técnica al final de la página para mayor información)

 

Creación de una consulta SQL personalizada

 

Quien esté acostumbrado a crear consultas SQL puede introducirlas directamente dentro del opscenter creando un informe y eligiendo la opción «Run SQL Query»:

 

opscenter1

 

 

En la siguiente pantalla tenemos la opción de descargar el documento PDF con el detalle del esquema de la base de datos:

 

opscenter2

 

A continuación se podría introducir la consulta SQL. Para quien no esté acostumbrado a hace consultas, es mejor utilizar cualquier editor de consultas SQL (tipo Microsoft Query). Este tipo de editores permiten seleccionar de forma gráfica las tablas, las relaciones, los filtros, etc… para permitir de una forma visual hacer nuestra consulta.

 

Si se ejecuta este editor en el servidor Opscenter basta con crear la conexión a la base de datos, pero si queremos ejecutarlo en un equipo distinto del servidor Opscenter necesitamos hacer unos pasos adicionales: el primero es permitir las conexiones remotas al Opscenter, y el segundo instalar un ODBC que permita conectarse al Opscenter.

 

Para permitir las conexiones remotas, es necesario modificar el siguiente fichero:

<install path>\Symantec\OpsCenter\server\db\CONF\server.conf

y cambiar la entrada LocalOnly=YES por LocalOnly=No

 

Por otro lado, para instalar los drivers ODBC, hay que descargarlos desde la página del fabricante del motor de base de datos. En el momento de escribir este artículo, se puede descargar desde la web de SAP la versión de SAP SQL Anywhere Developer Edition 16, que lleva incorporado los drivers ODBC, así como una versión gráfica para crear consultas SQL. Para no instalar también el servidor hay que elegir instalación «personalizada» y seleccionar sólo el «SQL Anywhere client» y las herramientas administrativas.

 

Una vez instalado, podemos ejecutar la herramienta de administración «Sybase Central»:

 

opscenter5

 

y desde esta herramienta podremos ejecutar «Interactive SQL»:

 

opscenter6

 

Lo primero que nos pide son los datos de conexión al servidor Sybase, que podemos encontrar en el fichero server.conf que previamente hemos editado. El usuario administrador es «dba» y la password por defecto es «SQL».

 

En este momento, se trata de buscar en el documento las tablas y las relaciones que hay entre ellas para construir la consulta que necesitemos, para lo que nos vendrá muy bien el PDF que hemos descargado previamente con el esquema de la BBDD y sus relaciones. Si seleccionamos «Tools->Edit Query» podremos construir nuestra consulta de forma gráfica:

 

opscenter7

 

Por ejemplo, esta es una consulta que lista los trabajos realizados en los últimos 30 días mostrando para cada uno de ellos varios campos. Hay que destacar como se pueden convertir los decimales (con la palabra clave CAST) o como convertir las fechas de tipo «unixtime» con UTCBigintToNOMTime:

 

SELECT «DBA».»nb_Job».»id» as JobId,
«DBA».»nb_Job».»clientName» as Client,
«DBA».»nb_JobBackupAttributes».»jobDefinitionName» as Policy,
UTCBigintToNOMTime(«DBA».»nb_JobAttempt».»startTime») as StartDate,
«DBA».»nb_JobAttempt».»statusCode» as Status,
«DBA».»nb_JobAttempt».»bytesWritten»/1024/1024 As MBWritten,
CAST («DBA».»nb_Job».»dedupRatio» AS decimal (8,2) ) As DeduplicationRate,
«DBA».»lookup_JobType».name As JobType
FROM ( ( «DBA».»nb_Job» JOIN «DBA».»nb_JobBackupAttributes» ON «DBA».»nb_Job».»masterServerId» = «DBA».»nb_JobBackupAttributes».»masterserverId» AND «DBA».»nb_Job».»clientName» = «DBA».»nb_JobBackupAttributes».»clientName» AND «DBA».»nb_Job».»id» = «DBA».»nb_JobBackupAttributes».»jobId» ) JOIN «DBA».»nb_JobAttempt» ON «DBA».»nb_Job».»masterServerId» = «DBA».»nb_JobAttempt».»masterserverId» AND «DBA».»nb_Job».»clientName» = «DBA».»nb_JobAttempt».»clientName» AND «DBA».»nb_Job».»id» = «DBA».»nb_JobAttempt».»jobId» ) JOIN «DBA».»lookup_JobType» ON «DBA».»nb_Job».»actualJobType» = «DBA».»lookup_JobType».»id»

 

Esta consulta personalizada la podemos introducir en un informe personalizado en Opscenter (tras elegir crear un informe nuevo, de tipo «Run SQL Query»:

 

opscenter8

 

Y obtendremos así nuestro informe personalizado. Este es un ejemplo sencillo para ilustrar la potencia de los informes en Opscenter realizados con sentencias SQL:

 

opscenter9

 

Referencias:

How to setup a remote ODBC connection to the OpsCenter Analytics database

How to back up the OpsCenter database

 

 

Una respuesta a “Consultas SQL personalizadas en Opscenter”

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *