El respaldo de DB2 falla con SQL2071N "/usr/lib/libnsrdb2.so". Código de motivo: "2"
Summary: DB2 actualizado de v10.5 a 11.5 Presencia de OpenSSL versión 3 en el sistema (sistema operativo) y OpenSSL versión 1 incluido con NMDA Si OpenSSL versión 3 está presente en el sistema. El proceso db2vend solo se basa en OpenSSL versión 3, sin embargo, el proceso libnsrdb2 cargará la versión de OpenSSL presente en NMDA ...
Symptoms
Los respaldos de DB2 fallan con el siguiente error después de la actualización de la base de datos de V10.5 a V11.5
Error:
DB2 backup fails with SQL2071N "/usr/lib/libnsrdb2.so". Reason code: "2"
DB2DIAG registros tienen el siguiente error.
2025-01-13-20.16.25.864739+060 E79273449E571 LEVEL: Error (OS)
PID : 29019 TID : 139807381163456 PROC : db2vend (db2logmgr.meth1 - 267 (
INSTANCE: db2prd NODE : 000
HOSTNAME: labhostPRD-00
FUNCTION: DB2 UDB, oper system services, sqloLoadModule, probe:191
CALLED : OS, -, dlopen
DATA #1 : Library name or path, 21 bytes
/usr/lib/libnsrdb2.so
DATA #2 : shared library load flags, PD_TYPE_LOAD_FLAGS, 4 bytes
0
DATA #3 : String, 92 bytes
/usr/lib/nsr/apps/lib64/libssl.so.1.1: undefined symbol: EVP_idea_cbc, version OPENSSL_1_1_0
2025-01-13-20.16.25.864904+060 I79274021E462 LEVEL: Error
PID : 29019 TID : 139807381163456 PROC : db2vend (db2logmgr.meth1 - 267 (
INSTANCE: db2prd NODE : 000
HOSTNAME: labhostPRD-00
FUNCTION: DB2 UDB, database utilities, sqluFencedVendorProcessCB::loadLibrary, probe:104
MESSAGE : ZRC=0x870F009B=-2029059941=SQLO_MOD_LOAD_FAILED
"Dynamic library load failed."
DATA #1 : String, 21 bytes
/usr/lib/libnsrdb2.so
Cause
Si OpenSSL versión 3 está instalado en el sistema.
El proceso db2vend solo se basa en OpenSSL versión 3, sin embargo, el proceso libnsrdb2 cargará el OpenSSL versión 1 presente en NMDA
Ruta de OpenSSL del SO: /usr/lib64/
Ruta de OpenSSL NMDA: /usr/lib/nsr/apps/lib64/
A continuación, se muestra el fragmento de un host que no funciona.
Dos procesos db2vend
labhostPRD-00:(/root)(root)#ps -ef | grep db2vend | grep -v grep
db2prd 23876 23452 0 Feb05 ? 00:00:00 db2vend (PD Vendor Process - 1) 0
db2prd 24856 23452 0 Feb11 ? 00:00:04 db2vend (db2logmgr.meth1 - 27 (PRD)) 0
El primer db2vend con PID 23876 carga OpenSSL V3 desde la ruta OpenSSL del sistema operativo
labhostPRD-00:(/root)(root)#lsof -p 23876 | grep -E "lib(ssl|crypto)"
db2vend 23876 db2prd DEL REG 8,4 51527190 /usr/lib64/libcrypto.so.3.1.4
db2vend 23876 db2prd DEL REG 8,4 51527189 /usr/lib64/libcrypto.so.1.1
db2vend 23876 db2prd DEL REG 8,4 51784225 /usr/lib64/libssl.so.3.1.4
En segundo lugar, db2vend con PID 24856 carga OpenSSL V1 desde la ruta OpenSSL de NMDA (/usr/lib/nsr/apps/lib64/libssl.so.1.1) y la ruta OpenSSL del sistema operativo
labhostPRD-00:(/root)(root)#lsof -p 24856 | grep -E "lib(ssl|crypto)"
db2vend 24856 db2prd mem REG 8,4 721456 50354171 /usr/lib/nsr/apps/lib64/libssl.so.1.1
db2vend 24856 db2prd mem REG 8,4 5715664 50354411 /usr/lib64/libcrypto.so.3.1.4
db2vend 24856 db2prd mem REG 8,4 3924472 50360290 /usr/lib64/libcrypto.so.1.1
db2vend 24856 db2prd mem REG 8,4 743784 50354413 /usr/lib64/libssl.so.3.1.4
La confusión anterior de la versión de OpenSSL es la causa del error.NMDA OpenSSL version 1 is compiled with "IDEA encryption algorithm for EVP" but OS OpenSSL Version 1 are not.
Resolution
- Este problema se soluciona en NMDA 19.12, NMDA enviado con OpenSSL V3.
- Lo más probable es que la desinstalación de OpenSSL versión 3 ayude, ya que db2vend se vería obligado a cargar las bibliotecas del sistema operativo libssl.so.1.1 y libcrypto.so.1.1 y, como resultado, la inicialización de la interfaz del proveedor no necesitaría cargar las bibliotecas distribuidas con NMDA
- Solución alternativa: La variable de entorno DB2 utilizada como solución alternativa para forzar el
/usr/lib/nsr/apps/lib64/mediante el siguiente documento de IBM. DB2LIBPATH [ibm.com]