es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

En Docker, al usar DB2 y conectarse a testdb (que es un catálogo en un nodo), se produce un error de falta de memoria.

He estado utilizando la imagen de db2 de https://hub.docker.com/r/ibmcom/db2
y después de configurar el contenedor que se ejecuta en Docker.
Luego aumento la memoria de INSTANCE y la memoria del miembro mediante:
db2 update dbm cfg using INSTANCE_MEMORY 508241 immediate
db2 update dbm cfg member 0 using instance_memory 508241 immediate
La razón por la que establezco 508241 es que si configuro 508241, db2start lanzará un error:
12/22/2021 13:22:38 0 0 SQL1220N El administrador de la base de datos no pudo asignar memoria compartida.
SQL1032N No se emitió ningún comando de inicio del administrador de la base de datos. SQLSTATE=57019

Así que tuve que usar el número 508241 para INSTANCE_MEMORY y la memoria del miembro.

Después de que db2start se ejecute correctamente, db2 se conecta a testdb como usuario db2inst1 con la contraseña somepassword, se mostrará un error:
SQL1224N El administrador de la base de datos no puede aceptar nuevas solicitudes, ha terminado todas las solicitudes en curso o ha terminado la solicitud especificada debido a un error o una interrupción forzada. SQLSTATE=55032

Preguntas:
1. ¿Qué debo hacer a continuación para que la conexión a testdb funcione correctamente?
2. ¿Cómo puedo configurar más de 508241 para INSTANCE_MEMORY y que funcione correctamente al ejecutar db2start?

Por cierto, testdb se creó utilizando:
catalog tcpip node somenode remote somehost server 50000
catalog databse testdb as testdb at node somenode

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Respuestas:

    1. El mensaje de error indica que el gestor de base de datos no puede aceptar nuevas solicitudes, lo cual puede deberse a varias razones como memoria insuficiente o conexiones terminadas. Por lo tanto, para conectarse correctamente a testdb, puedes intentar los siguientes pasos:
    • Verifica el estado actual del gestor de base de datos usando el comando: db2pd -d -hadr

    • Reinicia el gestor de base de datos usando el comando: db2 force applications all; db2stop force; db2start

    • Aumenta el número de conexiones permitidas al gestor de base de datos modificando el parámetro dbm cfg usando el comando: db2 update dbm cfg using MAX_COORDAGENT

    1. Para establecer un valor mayor a 508241 para INSTANCE_MEMORY, debes asegurarte de que tu sistema tenga suficiente memoria física para admitir el aumento. También puedes intentar ajustar otros parámetros relacionados con la memoria, como max_memory_agents y buffer_pool_size, para optimizar el uso de memoria. Además, debes considerar la posibilidad de actualizar tu sistema para admitir más memoria si necesitas establecer valores de memoria más allá del límite actual.

Comments are closed.