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.

El rebalanceo en tablespaces de DB2 permite que tras añadir un nuevo container a un tablespaces, los datos internos del tablespaces, se van moviendo online hasta conseguir que todos los containers contengan el mismo volumen de datos. Esto permite en la mayoria de los casos, si los tablespaces DMS están en particiones distintas, mejorar la velocidad de acceso a los datos.

Un tablespace puede tener esta propiedad o no, dependiendo de si tiene marcado el flag de “Rebalancing”, que puede ser consultado mediante la instrucción:

db2 > list tablespaces show detail

Un rebalanceo se puede hacer totalmente online, con una afectación menor o mayor al rendimiento, pero como se indica en todos los manuales de IBM, es totalmente factible realizarlo online.

El problema se da en tablespaces con autoresize activo: si durante las operaciones de rebalanceo online, el tablespace requiere más espacio por el trabajo de los usuarios/aplicaciones sobre la Base de Datos, este autoresize no se puede realizar por estar llevandose a cabo el rebalanceo, puesto que un autoresize implica una modificación del tamaño de los containers, sobre los cuales se está realizando el rebalanceo.

Esto implica que si debes realizar un rebalanceo controlado para añadir un container de manera online, es necesario asegurarse que durante dicha operación el tablespaces tenga espacio suficiente y no requiera realizar un autoresize, para ello, realiza un resize previo de los containers.

Si has tenido la mala suerte de toparte con este error, durante el rebalanceo de un tablespace vital para tú aplicación y no permite a los usuarios trabajar, no hay más opción que esperar (ni reinicios, ni nada de nada…). Sólo es posible hacer una estimación de tiempo de cuanto tardará en finalizar mediante la instrucción:

db2 > list utilities show detail

 

Suerte si te encuentras con este problema!