DB2 备份失败,并显示SQL2071N“/usr/lib/libnsrdb2.so”。原因代码:"2"

Summary: DB2 已从 v10.5 升级到 11.5 系统(作系统)上存在 OpenSSL 版本 3,并且 NMDA 捆绑了 OpenSSL 版本 1 如果系统上存在 OpenSSL 版本 3。 db2vend 进程仅依赖于 OpenSSL V3,但是 libnsrdb2 进程将装入 NMDA 中存在的 OpenSSL 版本

This article applies to This article does not apply to This article is not tied to any specific product. Not all product versions are identified in this article.

Symptoms

将数据库从 V10.5 升级到 V11.5 后,DB2 备份失败并显示以下错误

错误:

DB2 backup fails with SQL2071N "/usr/lib/libnsrdb2.so". Reason code: "2"

DB2DIAG日志具有以下错误。

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

如果系统上安装了 OpenSSL 版本 3。
db2vend 进程仅依赖于 OpenSSL V3,但是 libnsrdb2 进程将装入 NMDA 中存在的 OpenSSL V1

作系统 OpenSSL 路径: /usr/lib64/
NMDA OpenSSL 路径: /usr/lib/nsr/apps/lib64/

下面是一台无法正常工作的主机的代码片段。

两个 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

第一个带有 PID 23876 的 db2vend 从 OS OpenSSL 路径加载 OpenSSL V3

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

带有 PID 24856 的第二个 db2vend 从 NMDA OpenSSL 路径 (/usr/lib/nsr/apps/lib64/libssl.so.1.1) 和 OS OpenSSL 路径加载 OpenSSL V1

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

上述混淆的 OpenSSL 版本是导致错误的原因。
NMDA OpenSSL version 1 is compiled with "IDEA encryption algorithm for EVP" but OS OpenSSL Version 1 are not.

Resolution

  1. 此问题已在 NMDA 19.12(随 OpenSSL V3 附带的 NMDA)中得到解决。
  2. 卸载 OpenSSL V3 很可能会有所帮助,因为 db2vend 随后将被迫装入作系统库 libssl.so.1.1 和 libcrypto.so.1.1,因此,供应商接口的初始化将不需要装入随 NMDA 一起分发的库
  3. 解决办法:DB2 环境变量用作变通办法,以强制 /usr/lib/nsr/apps/lib64/ 路径。  DB2LIBPATH [ibm.com]此超链接会将您带往 Dell Technologies 之外的网站。

 

Products

NetWorker Family, NetWorker
Article Properties
Article Number: 000297010
Article Type: Solution
Last Modified: 20 Mar 2025
Version:  2
Find answers to your questions from other Dell users
Support Services
Check if your device is covered by Support Services.