PowerProtect Data Manager:由于缺少库文件,Oracle 代理程序错误“无法加载 Oracle OCI 库”

Summary: 当安装了多个版本的 Oracle 数据库服务器时,Oracle 库的库路径可能未正确更新。库文件可能“丢失”,无论它们缺失还是存在,但LDD_LIBRARY_PATH未配置为查找它们。

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

登录时出现以下错误 ddbmcon*.logOpAgentSvc*.log 这会阻止发现和备份运行:
Unable to load Oracle OCI library

Cause

缺少库文件,或 LDD_LIBRARY_PATH 未正确配置。

Resolution

再次运行 ddbmcon 在调试模式下,获取有关错误性质的更多详细信息:

使用具有数据库访问权限的 Oracle 用户帐户登录时,创建名为以下项的文件:
.ddbmcon.debug
将文件复制到以下两个位置:
  • /opt/dpsapps/agentsvc/tmp - 这是代理服务的默认位置 tmp 文件夹,但它可能有所不同。
  • $RMAN_AGENT_HOME/tmp
创建文件 $RMAN_AGENT_HOME/bin/input.txt

将以下文本添加到input.txt文件中:
{"APIVersion": "2.3", "command": "DISCOVERY", "arguments": {"discoveryType": "APPLICATION_SYSTEMS", "type": "ORACLE_DATABSE_SYSTEM"}}
从 运行以下命令 $RMAN_AGENT_HOME
bin/ddbmcon -d9 < bin/input.txt
检查生成的 ddbmcon.<epoch time>.<counter>.log 调试日志。

调试文件名示例:
ddbmcon.1719066794.32076.log
以下是缺失库错误的序列:
2024-06-14T20:53:40.198Z ddbmcon: build machine = linux86w
2024-06-14T20:53:40.198Z ddbmcon: Oracle library: /u01/app/oracle/product/19.3.0/dbhome_1/lib64/libclntsh.so not found.
2024-06-14T20:53:40.198Z ddbmcon: Loading library: /u01/app/oracle/product/19.3.0/dbhome_1/lib/libclntsh.so
2024-06-14T20:53:40.198Z ddbmcon: dlopen(NULL): failure = libnnz19.so: cannot open shared object file: No such file or directory
2024-06-14T20:53:40.198Z ddbmcon: Unable to load Oracle OCI library.
使用 ldd 要检查“未找到”错误中列出的库的库依赖项,请使用上面的输出:
[root@lab logs]# ldd -v /u01/app/oracle/product/19.3.0/dbhome_1/lib/libclntsh.so.19.1
linux-vdso.so.1 => (0x00007ffe4d7e5000)
libnnz19.so => not found
libdl.so.2 => /usr/lib64/libdl.so.2 (0x00007fbb3f248000)
libm.so.6 => /usr/lib64/libm.so.6 (0x00007fbb3ef46000)
libpthread.so.0 => /usr/lib64/libpthread.so.0 (0x00007fbb3ed2a000)
libnsl.so.1 => /usr/lib64/libnsl.so.1 (0x00007fbb3eb10000)
librt.so.1 => /usr/lib64/librt.so.1 (0x00007fbb3e908000)
libaio.so.1 => /usr/lib64/libaio.so.1 (0x00007fbb3e706000)
libresolv.so.2 => /usr/lib64/libresolv.so.2 (0x00007fbb3e4ec000)
libc.so.6 => /usr/lib64/libc.so.6 (0x00007fbb3e11e000)
/lib64/ld-linux-x86-64.so.2 (0x00007fbb435ef000)
libclntshcore.so.19.1 => not found
输出显示未找到两个突出显示的库文件。根据输出示例,使用以下命令搜索文件系统,以确定文件是否在计算机上:
find / -type f -name libnnz.so
find / -type f -name libclntshcore.so.
如果文件不在计算机上,请确定应安装哪个软件包来安装库。如果需要,请咨询 Oracle 支持。

如果在非默认位置找到库,请配置 LDD_LIBRARY_PATH 适用于 PowerProtect Data Manager 代理。

重命名 $RMAN_AGENT_HOME/bin/ddbmcon 设置为 $RMAN_AGENT_HOME/bin/ddbmcon.orig
找到 bash 可执行文件:
which bash
创建文件 ddbmcon.bash 使用此内容:
#!/usr/bin/bash  #determined from `which bash`
export LD_LIBRARY_PATH=<path to OCI libraries>:$LD_LIBRARY_PATH
/home/oracle/opt/dpsapps/rmanagent/bin/ddbmcon.orig "$@"
复制 ddbmcon.bash 设置为 ddbmcon

更改文件的所有者 ddbmcon 设置为 oracle:oinstall 或相应的 [oracle owner]:[oracle install group]

替换的 ddbmcon 脚本设置 LDD_LIBRARY_PATH 然后调用原始 ddbmcon 使用调用应用程序传递的命令字符串。

Affected Products

PowerProtect Data Manager, PowerProtect Data Manager Software
Article Properties
Article Number: 000226523
Article Type: Solution
Last Modified: 08 Aug 2024
Version:  2
Find answers to your questions from other Dell users
Support Services
Check if your device is covered by Support Services.