Problemas con proceso Db2fmd – Instalación FixPatch

Durante la instalación de un fixpatch o cualquier otra aplicación que requiera tener parado los procesos de DB2, se obtiene un error indicando que existe un proceso db2fmd que está en marcha.

Al intentar matar el proceso, se arranca de manera automática constantemente. Si se reinicia el servidor, ocurre lo mismo.

La solución pasa por comentar la línea siguiente del fichero /etc/inittab y reiniciar el servidor.

fmc:2345:respawn:/opt/IBM/db2/V8.1/bin/db2fmcd #DB2 Fault Monitor Coordinator

 

Cómo gestionar la prioridad de sesiones en DB2

En DB2 es posible priorizar procesos entre los mismos procesos que tengan prioridad.

Me explico: existe un parámetro a nivel de instancia que indica el porcentaje máximo de CPU disponible para procesos priorizados (UTIL_IMPACT_LIM).

Por defecto, tiene el valor 10%. Ello implica que si varios procesos priorizados luchan entre sí por recursos de CPU, podrán obtener como máximo entre ellos un 10% de la CPU. El resto de procesos no compiten por este porcentaje de la CPU.

Las sesiones se priorizan a través del comando SET UTIL_IMPACT_PRIORITY:

Compatibilidad de DB2 con ORACLE: DB2 9.7 CLP PLUS

Para DBA’s que provengan del mundo Oracle, a partir de la versión 9.7, el motor de DB2 ofrece un modo de compatibilidad que permite usar el CLP PLUS (Command Line Processor Plus) con las mismas sentencias que Oracle.

En este artículo se habla de esta interesante capacidad para hacer menos pesado el uso de DB2 si eres un Oracle DBA convencido.

El primer paso para utilizar esta sentencia en DB2 es dar el valor apropiado a la variable de entorno DB2_COMPATIBILITY_VECTOR:

Cómo renombrar una Base de Datos DB2

Suele ser habitual necesitar una réplica de una base de datos en otro entorno distinto, y además, necesitar que esa nueva base de datos tenga un nuevo nombre. Por ejemplo, para actualizar una base de datos de preproducción, realizar una copia homogénea de SAP o simplemente para cambiar el nombre de la base de datos por alguna necesidad.

La utilidad “db2relocatedb” permite realizar las siguientes funciones:

Tabla DUAL en DB2: sysibm.sysdummy1

Si vienes del mundo Oracle, sabrás que existe una tabla “ficticia” llamada DUAL que sirve para operaciones auxiliares, pero en algún caso muy importantes. En DB2 esta tabla es se llama sysibm.sysdummy1.

La tabla sysibm.sysdummy1 igual que su homologa de Oracle, tiene un único registro, y permite realizar operaciones del estilo:

db2> select current date from sysibm.sysdummy1

22/12/2010

Como curiosidad notad que la columna de la tabla DUAL en Oracle se llama DUMMY (tonto), similar al nombre de la tabla en DB2.

 

Cómo buscar las tablas con más accesos en DB2

Es relativamente simple, y poco conocido, con la utilidad db2top.

Accediendo a la opción “T” (tablas) y ordenando la lista (pulsar “z”) e indicar que lo realice por la columna 1.

En primera posición aparecerá la tabla más accedida. Si existe mucha diferencia entre las primeras y el resto durante un periodo de tiempo apreciable de uso normal de la base de datos, esas tablas serían candidatas a intentar mejorar su acceso a ellas o intentar que sus tiempos de acceso sean óptimos para mejorar el rendimiento global.

 

Usar db2look para crear DDL de una tabla en concreto, o un esquema completo

La utilidad db2look permite extraer la definición de los objetos de base de datos. Además, permite algo realmente interesante: extraer las estadísticas de los objetos para exportarlas a otros entornos de prueba/integración y obtener los mismos planes de acceso a los objetos.

En este artículo veremos su utilidad más frecuente.

 

Extracción del DDL de los objetos de mi esquema:

db2look -d MI_BBDD -a -e -x -o FICHERO_SALIDA.txt

Extración del DDL de la tabla DEPT:

db2look -d MI_BBDD -t DEPT -a -e -x -o FICHERO_SALIDA.txt

 

Otro método para detectar índices no usados en DB2

En este artículo muestro un método para ver los índices no-usados de nuestra base de datos desde el último reinicio.

Ya traté este tema en el artículo Detección de índices, tablas y packages no usados en DB2 9.7, pero dicho artículo utiliza la columna LASTCOLUMN incluida en la versión 9.7. Si tienes otra versión, o incluso la 9.7, este artículo te permitirá conocer que índices no están siendo usados, con el desperdicio de recursos que conlleva.