Notas del release


9.3 Capítulo 10. Ajuste de la configuración mediante la adición de procesadores

9.3.1 Problemas al añadir nodos a una base de datos particionada

Cuando se añaden nodos a una base de datos particionada que tiene uno o más espacios de tablas temporales del sistema con un tamaño de página diferente del tamaño de página por omisión (4 KB), puede recibir este mensaje de error: "SQL6073N Ha fallado la operación de añadir nodo" y un SQLCODE. Esto se produce porque, cuando se crea el nodo sólo, existe la agrupación de almacenamientos intermedios IBMDEFAULTBP con un tamaño de página de 4 KB.

Por ejemplo, puede utilizar el mandato db2start para añadir un nodo a la base de datos particionada actual:

   DB2START NODENUM 2 ADDNODE HOSTNAME newhost PORT 2

Si la base de datos particionada tiene espacios de tablas temporales del sistema con el tamaño de página por omisión, se devuelve el siguiente mensaje:

   SQL6075W La operación Iniciar gestor de bases de datos ha añadido
   satisfactoriamente el nodo.
   El nodo no está activo hasta que se detienen todos los nodos y se
   vuelve a iniciar.

Sin embargo, si la base de datos particionada tiene espacios de tablas temporales del sistema que no tienen el tamaño de página por omisión, se devuelve el mensaje siguiente:

   SQL6073N Ha fallado la operación de nodo. SQLCODE = "<-902>"

En un ejemplo similar, puede utilizar el mandato ADD NODE después de actualizar manualmente el archivo db2nodes.cfg con la nueva descripción de nodo. Después de editar el archivo y ejecutar el mandato ADD NODE con una base de datos particionada que tiene espacios de tablas temporales del sistema con el tamaño de página por omisión, se devuelve el mensaje siguiente:

   DB20000I El mandato ADD NODE se completó satisfactoriamente.

Sin embargo, si la base de datos particionada tiene espacios de tablas temporales del sistema que no tienen el tamaño de página por omisión, se devuelve el mensaje siguiente:

   SQL6073N Ha fallado la operación de nodo. SQLCODE = "<-902>"

Un modo de evitar los problemas descritos previamente consiste en ejecutar:

   DB2SET DB2_HIDDENBP=16

antes de emitir db2start o el mandato ADD NODE. Esta variable de registro permite que DB2 asigne agrupaciones de almacenamientos intermedios ocultas de 16 páginas cada una utilizando un tamaño de página diferente del valor por omisión. Esto permite que la operación ADD NODE se complete satisfactoriamente.

Otro modo de evitar estos problemas consiste en especificar la cláusula WITHOUT TABLESPACES en ADD NODE o el mandato db2start. Después de esto, deberá crear las agrupaciones de almacenamientos intermedios utilizando la sentencia CREATE BUFFERPOOL y asociar los espacios de tablas temporales del sistema con la agrupación de almacenamientos intermedios utilizando la sentencia ALTER TABLESPACE.

Cuando se añaden nodos a un grupo de nodos existentes que tienen uno o más espacios de tablas con un tamaño de página diferente del tamaño de página por omisión (4 KB), puede recibir el mensaje de error: "SQL0647N La agrupación de almacenamientos intermedios "" no está activa actualmente.". Esto se produce porque las agrupaciones de almacenamientos intermedios que no tienen el tamaño de página por omisión creadas en el nuevo nodo no se han activado para los espacios de tablas.

Por ejemplo, puede utilizar la sentencia ALTER NODEGROUP para añadir un nodo a un grupo de nodos:

   DB2START
   CONNECT TO mpp1
   ALTER NODEGROUP ng1 ADD NODE (2)

Si el grupo de nodos tiene espacios de tablas con el tamaño de página por omisión, se devuelve el mensaje siguiente:

   SQL1759W Es necesario redistribuir el grupo de nodos para cambiar la
   posición de los datos para que los objetos del grupo de nodos <ng1>"
   incluyan algunos nodos añadidos o excluyan algunos nodos eliminados.

Sin embargo, si el grupo de nodos tiene espacios de tablas que no tienen el tamaño de página por omisión, el mensaje que se devuelve es:

   SQL0647N La agrupación de almacenamientos intermedios "" no está activa
   actualmente.

Un modo de evitar este problema consiste en crear agrupaciones de almacenamientos intermedios para cada tamaño de página y, a continuación, volver a conectar con la base de datos antes de emitir la sentencia ALTER NODEGROUP:

   DB2START
   CONNECT TO mpp1
   CREATE BUFFERPOOL bp1 SIZE 1000 PAGESIZE 8192
   CONNECT RESET
   CONNECT TO mpp1
   ALTER NODEGROUP ng1 ADD NODE (2)

Un segundo modo de evitar el problema consiste en ejecutar:

   DB2SET DB2_HIDDENBP=16

antes de emitir el mandato db2start y las sentencias CONNECT y ALTER NODEGROUP.

Otro problema se puede producir cuando se utiliza la sentencia ALTER TABLESPACE para añadir un espacio de tablas a un nodo. Por ejemplo:

   DB2START
   CONNECT TO mpp1
   ALTER NODEGROUP ng1 ADD NODE (2) WITHOUT TABLESPACES
   ALTER TABLESPACE ts1 ADD ('ts1') ON NODE (2)

Estas series de mandatos y sentencias generan el mensaje de error SQL0647N (no el mensaje esperado SQL1759W).

Para completar este cambio correctamente, debe volver a conectar con la base de datos después de la sentencia ALTER NODEGROUP... WITHOUT TABLESPACES.

   DB2START
   CONNECT TO mpp1
   ALTER NODEGROUP ng1 ADD NODE (2) WITHOUT TABLESPACES
   CONNECT RESET
   CONNECT TO mpp1
   ALTER TABLESPACE ts1 ADD ('ts1') ON NODE (2)

Otro modo de evitar el problema consiste en ejecutar:

   DB2SET DB2_HIDDENBP=16

antes de emitir el mandato db2start y las sentencias CONNECT, ALTER NODEGROUP y ALTER TABLESPACE.


[ Principio de página | Página anterior | Página siguiente | Contenido | Índice ]