rman无法直接配置zdlra,需通过sbt_tape通道连接,关键在于正确安装注册zdlra backup module(含libzdlra.so/.dll)、严格匹配jdk版本(建议jdk 1.8u202以内)、配置channel parms中sbt_library及zdlra_host/port/repo参数,并确保备份不指定本地format路径,验证handle以zdlra://开头且device_type为sbt_tape。

RMAN 无法直接“配置” ZDLRA —— ZDLRA 是一个独立的备份目标设备,RMAN 只需通过标准通道(SBT_TAPE)连接它,关键在于正确安装并注册 ZDLRA Backup Module,否则 RMAN 会报 ORA-19554: error allocating device 或找不到 sbt_library。
确认 ZDLRA Backup Module 已安装且 JDK 兼容
ZDLRA Backup Module 不是 Oracle 自带组件,必须单独下载安装,且对 JDK 版本有硬性要求:
- 必须使用 JDK 1.5 或更高版本(但 不支持 JDK 9+ 的模块化路径,Oracle 12c 环境建议锁定 JDK 1.8u202 以内)
- 安装包解压后,核心文件是
zdlra_backup_module.jar和lib/下的本地库(如libzdlra.so或zdlra.dll) - 确保
$ORACLE_HOME/lib可写,并将libzdlra.so(Linux)或zdlra.dll(Windows)复制到该目录 - 验证:运行
ldd $ORACLE_HOME/lib/libzdlra.so(Linux)检查依赖是否满足,常见缺失libstdc++.so.6或libgcc_s.so.1
在 RMAN 中注册 SBT 设备并测试通道
RMAN 不需要“ZDLRA 模式”,只需把 ZDLRA 当作标准磁带设备(SBT)使用,但参数必须严格匹配 ZDLRA 服务端配置:
- 设置
SBT_LIBRARY指向已部署的库:CONFIGURE CHANNEL DEVICE TYPE 'SBT_TAPE' PARMS 'SBT_LIBRARY=$ORACLE_HOME/lib/libzdlra.so, ENV=(ZDLRA_HOST=192.168.10.5,ZDLRA_PORT=12345,ZDLRA_REPO=RA_REPO_01)'; -
ZDLRA_REPO必须与 ZDLRA 管理控制台中创建的 Repository 名称**完全一致**(区分大小写) - 执行
ALLOCATE CHANNEL c1 DEVICE TYPE 'SBT_TAPE';后立即运行SHOW ALL;,确认 channel 参数已生效 - 首次连接失败时,
RMAN日志里若出现Failed to connect to ZDLRA server,优先检查防火墙(ZDLRA_PORT)、DNS 解析、以及 ZDLRA 服务是否处于ACTIVE状态(非MAINTENANCE)
备份脚本中避免硬编码 FORMAT,改用 %U 或 %d_%T
ZDLRA 内部管理备份片(backup piece),不接受用户自定义路径;RMAN 若在 FORMAT 中指定本地文件系统路径(如 '/backup/rman/%U'),会导致备份静默失败或写入本地磁盘而非 ZDLRA:
- 正确写法:
BACKUP DATABASE PLUS ARCHIVELOG;(不带 FORMAT)或仅用通配符:FORMAT '%U' - 错误写法:
FORMAT '/u01/backup/%d_%T_%s'—— 这会让 RMAN 尝试写本地,而 ZDLRA 模块不会拦截该路径 - 验证是否真正走 ZDLRA:备份完成后查
V$BACKUP_PIECE,DEVICE_TYPE应为SBT_TAPE,HANDLE字段应类似zdlra://RA_REPO_01/.../xxx.bkp,而非本地路径 - 注意:ZDLRA 不支持
BACKUP AS COPY,该命令强制走 DISK,会绕过 SBT 配置
增量策略需配合 ZDLRA 的保留策略与归档日志管理
ZDLRA 要求归档日志必须可访问才能做增量恢复,但它本身不自动删除旧归档 —— 这部分仍由 RMAN 控制,容易因配置冲突导致恢复链断裂:
- 务必在 RMAN 中显式清理归档:
DELETE NOPROMPT ARCHIVELOG UNTIL TIME 'SYSDATE-3';,不能依赖 ZDLRA 自动清理 - ZDLRA 的“保留策略”只管备份集(backupset)生命周期,不管归档日志;若 RMAN 未删归档,ZDLRA 存储会迅速膨胀
- 对 12c CDB+PDB 环境,
BACKUP PLUGGABLE DATABASE pdb1可行,但恢复时需确保 ZDLRA 中该 PDB 的备份集未被全局策略误删(ZDLRA 无 PDB 粒度保留设置) - 最易忽略的一点:ZDLRA 不支持
RECOVER DATABASE USING BACKUP CONTROLFILE场景 —— 它不托管控制文件镜像,全量恢复前必须先从 ZDLRA 恢复控制文件备份(RESTORE CONTROLFILE)再RECOVER











