SBT_TAPE通道不识别NBU介质服务器,根本原因是Oracle通过libobk.so调用NBU客户端库,需确保NBU客户端已安装、路径正确、权限充足、主机名可解析且NBU侧策略/存储单元就绪。
SBT\_TAPE通道不识别NBU介质服务器
oracle 的 sbt_tape 通道本身不直接“对接”nbu,它只调用第三方提供的 sbt 库(libobk.so 或 libobk.dll),而该库必须由 nbu 客户端安装后部署。常见现象是 rman 报错:ora-19554: error allocating device, device type: sbt_tape,紧接着跟 ora-27000: skgfqsbi: failed to initialize storage subsystem —— 这几乎一定是 sbt 库路径或权限问题。
实操建议:
- 确认 NBU 客户端已安装在数据库服务器上,且版本与 Oracle 兼容(例如 Oracle 19c 推荐 NBU 9.1+)
-
libobk.so默认在/usr/openv/netbackup/bin/(Linux)或C:\Program Files\Veritas\NetBackup\bin\(Windows),需软链或通过LD_LIBRARY_PATH指向它 - Oracle 用户(如
oracle)必须对libobk.so及其依赖库(用ldd libobk.so检查)有读+执行权限 - 不要手动拷贝
libobk.so到 $ORACLE_HOME/lib —— NBU 升级时会覆盖,且可能缺配套配置文件
RMAN 中配置 SBT\_TAPE 通道的最小必要参数
NBU 不靠 RMAN 命令传地址或认证信息,所有连接细节都由 libobk.so 从本地配置读取。RMAN 侧只需声明类型和并行度,多余参数反而引发报错。
实操建议:
- 运行
CONFIGURE CHANNEL DEVICE TYPE 'SBT_TAPE' PARMS 'SBT_LIBRARY=/usr/openv/netbackup/bin/libobk.so, ENV=(NB_ORA_CLIENT=your_db_host)'; -
NB_ORA_CLIENT必须设为 NBU 服务端能解析的主机名(不是 IP),且该主机已在 NBU 控制台注册为客户端 - 不要在
PARMS里写NB_ORA_POLICY或NB_ORA_SCHED—— 这些由 NBU 策略控制,RMAN 不参与调度决策 - 若启用多通道,确保每个通道用相同
SBT_LIBRARY路径,否则可能混用不同版本库导致 core dump
备份到磁带前必须验证的 NBU 侧状态
RMAN 成功分配通道 ≠ 能真正写入磁带。NBU 的策略、存储单元、介质服务器负载、磁带槽位可用性全在 Oracle 视野之外。
实操建议:
- 在 NBU 控制台检查:对应
NB_ORA_CLIENT的策略是否启用、是否关联了有效的存储单元(Storage Unit)、该单元是否指向在线的介质服务器 - 运行
/usr/openv/netbackup/bin/admincmd/bppllist -U查看策略列表,确认策略名与 RMAN 中隐式使用的匹配(默认是Oracle_backup,但可被NB_ORA_POLICY环境变量覆盖) - 用
bpmedia -l -d检查磁带库中是否有可写状态(AVAILABLE或SCRATCH)的磁带,且未被其他作业锁定 - 避免在 NBU 正执行图像复制或磁带回收时启动 RMAN 备份,否则 RMAN 会卡在
ALLOCATING CHANNEL长达数分钟
备份失败时优先排查的三个日志位置
错误信息分散在 Oracle 和 NBU 两边,只看 RMAN 输出会漏掉关键线索。比如 ORA-19511: non RMAN error from helper library 后面那串数字,其实是 libobk.so 转发的 NBU 错误码。
实操建议:
- RMAN 日志里搜
ORA-19511,记下末尾的数字(如ERROR = 0x26),查 NBU 文档对应含义(0x26 是 “client not found”) - 查 NBU 客户端日志:
/usr/openv/netbackup/logs/bpbrm(Linux)或C:\Program Files\Veritas\NetBackup\logs\bpbrm(Windows),过滤your_db_host - 查 NBU 介质服务器日志:
/usr/openv/netbackup/logs/ltid和/usr/openv/netbackup/logs/bptm,确认磁带驱动器是否响应 - 临时关闭 NBU 客户端防火墙(
nbemm、bpdbm端口)再试 —— 很多超时问题实际是网络策略拦截
最常被忽略的是 NBU 客户端主机名解析:Oracle 进程里 nslookup your_db_host 必须返回唯一 IPv4 地址,且该地址要出现在 NBU 控制台客户端列表中。DNS 轮询、/etc/hosts 里多个条目、IPv6 优先都会让 libobk.so 连错机器。










