Base de datos

Sistemas de gestión de Bases de datos y almacenamiento

DB2_KILL – ¿Qué hacer si una instancia DB2 no se para?

Para parar una instancia db2 existe la instrucción db2stop, que puede ser ejecutada como comando cmd o desde sistema operativo. ¿Pero qué hacer si la BBDD no se para y deja el sistema inestable? db2_kill puede librar de muchas crisis.

Cuando hay problemas para parar una BBDD DB2, los pasos habituales suelen ser:

1)

db2stop

2)

db2 force application all + db2stop

3)

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 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:

Error ADM6044E durante rebalanceo en un tablespace después de añadir un container

El error ADM6044E “DMS Container space full” durante un rebalancing de un tablespace con autoresize después de añadir un container puede llegar a suponer un grave problema en tablespaces grandes, puesto que en teoria una operación de rebalanceo se puede realizar online sin afectación a la base de datos, pero en el caso de este error, no se puede escribir en el tablespaces hasta que finaliza la operación de rebalanceo. Por lo que, de “online” nada de nada.

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:

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.

 

Tiempos medios de acceso lectura/escritura a disco a nivel de DB2

A través de DB2 se pueden obtener los tiempos medios en ms de acceso a disco que está teniendo DB2. Estos tiempos son determinantes para la detección de un problema de IO en los discos que tienen los datos de DB2.

Habitualmente se tiene en consideración que un valor cercano a 2-3ms es bueno, más allá de 10ms puede estar indicando problemas.

Promedio milisegundos/escritura (avg ms/write):

select trunc(decimal(sum(pool_write_time))/decimal(

(sum(pool_data_writes)+sum(pool_index_writes))),3)

from sysibmadm.snaptbsp