Recently, I encountered an RMAN backup error while running an Oracle Database backup to Veritas NetBackup. Again this script was running without error when the target database was 19.26. After we have updated the database release from 19.26 to 19.32. The error started.
Environment
The backup environment consisted of:
- Oracle Database 19c (19.32)
- RMAN recovery catalog (19.6 database)
- SBT_TAPE channels
- Recovery catalog initially running RMAN catalog package version 19.06.00.00
- Target database compatible parameter: 19.0.0
- Veritas NetBackup for Oracle: 10.4.0.1
The RMAN job was using multiple SBT channels:
RUN { sql 'alter system checkpoint global'; ALLOCATE CHANNEL ch00 TYPE 'SBT_TAPE'; ALLOCATE CHANNEL ch01 TYPE 'SBT_TAPE'; ALLOCATE CHANNEL ch02 TYPE 'SBT_TAPE'; ALLOCATE CHANNEL ch03 TYPE 'SBT_TAPE'; send 'NB_ORA_SERV=netbackupsrv01.localdomain.com, NB_ORA_CLIENT=myexaccbck01.localdomain.com, NB_ORA_POLICY=ORA_BLTDB_EXA_FULL'; BACKUP CHECK LOGICAL filesperset 1 INCREMENTAL LEVEL=0 TAG 'full_backup_bltdb' FORMAT 'df_%d_%s_%p_%t' DATABASE PLUS ARCHIVELOG NOT BACKED UP 2 TIMES; crosscheck backup completed before 'sysdate-36'; delete noprompt force expired backup; RELEASE CHANNEL ch00; RELEASE CHANNEL ch01; RELEASE CHANNEL ch02; RELEASE CHANNEL ch03;}connected to target database: BLTDB (DBID=790320212)connected to recovery catalog databasePL/SQL package RMAN.DBMS_RCVCAT version 19.06.00.00.in RCVCAT database is not currentPL/SQL package RMAN.DBMS_RCVMAN version 19.06.00.00in RCVCAT database is not currentallocated channel: ch00channel ch00: SID=1931 instance=BLTDB1 device type=SBT_TAPEchannel ch00: Veritas NetBackup for Oracle - Release 10.4.0.1released channel: ch00RMAN-00571: ===========================================================RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============RMAN-00571: ===========================================================RMAN-03009: failure of allocate command on ch00 channelORA-01403: no data found
At this point, RMAN was already telling us that the recovery catalog packages were not current. However, the backup failure itself was ORA-01403: no data found.
First Troubleshooting Step: Test Without the Recovery Catalog
The first thing I wanted to determine was whether the problem was related to RMAN itself, the SBT integration or the recovery catalog. I retried the channel allocation without connecting to the recovery catalog. SBT channel allocation worked. The NetBackup configuration and SBT library were looking functional. The failure appeared when the recovery catalog was involved.
In other words:
RMAN + Target DB + SBT
|
+—- Works without catalog
RMAN + Target DB + SBT + Recovery Catalog
|
+—- ORA-01403
That significantly narrowed the investigation.
Checking the RMAN Diagnostic Output
The RMAN trace also provided some useful information.
DBGSQL: TARGET> select decode(open_mode, 'READ WRITE', 1, 0) into :read_write from v$databaseDBGSQL: sqlcode = 0DBGSQL: D :read_write = 1 DBGSQL: TARGET> select value into :vcomp_txt from v$parameter where name = 'compatible'DBGSQL: sqlcode = 0DBGSQL: D :vcomp_txt = 19.0.0 DBGSQL: TARGET> declare dot1st number; dot2nd number; dot3rd number; comptxt varchar2(255) := :vcomp_txt; begin comptxt := comptxt || '.0.0'; dot1st := instr(comptxt, '.', 1, 1); dot2nd := instr(comptxt, '.', 1, 2); dot3rd := instr(comptxt, '.', 1, 3); comptxt := lpad(substr(comptxt, 1, dot1st - 1), 2, '0') || lpad(substr(comptxt, dot1st + 1, dot2nd - dot1st - 1), 2, '0') || lpad(substr(comptxt, dot2nd + 1, dot3rd - dot2nd - 1), 2, '0');:vcomp_ub4 := to_number(comptxt); end;DBGSQL: sqlcode = 0DBGSQL: B :vcomp_ub4 = 190000DBGSQL: B :vcomp_txt = 19.0.0DBGMISC: krmkpdbs(): vcomp_txt:19.0.0 vcomp_ub4:190000 flags:5 [14:34:06.433]DBGMISC: ENTERED krmkjcl [14:34:06.433]DBGMISC: EXITED krmkjcl [14:34:06.433] elapsed time [00:00:00:00.000]DBGMISC: error recovery releasing channel resources [14:34:06.433]released channel: ch00Calling krmmpem from krmmexeRMAN-00571: ===========================================================RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============RMAN-00571: ===========================================================RMAN-03009: failure of allocate command on ch00 channel at 09/14/2026 14:34:06ORA-01403: no data foundDBGMISC: ENTERED krmkursr [14:34:06.445]
Although the trace did not immediately identify the exact catalog object or package that caused the NO_DATA_FOUND, the combination of the catalog warning and the successful test without the catalog was becoming increasingly significant.
As another troubleshooting step, I tried unregistering and registering the database again with the recovery catalog. The expectation was that perhaps some catalog metadata had become inconsistent. However, the problem persisted. The channel allocation still failed with same error.
After some investigation, the actual root cause turned out to be a version incompatability between the RMAN recovery catalog and the Oracle RMAN client/database environment, since the trace failed just after running internal queries about versions and compatability.
Actually according to the Backup and Recovery Reference – RMAN Compatibility:
Starting with Oracle Database 12c, the version of the RMAN client, target database, and auxiliary database must be the same. The recovery catalog schema can be any supported catalog schema whose version is greater than the version of the RMAN client. For example an Oracle Database 12c RMAN client can only connect to a target database whose version is Oracle Database 12c, an auxiliary database whose version is Oracle Database 12c, and a recovery catalog schema that is created in an Oracle Database 12c or higher version.
Consider a production environment with databases running the following Oracle Database releases:
- Oracle Database 12c Release 1 (12.1)
- Oracle Database 18c
- Oracle Database 19c
- Oracle Database 21c
- Oracle AI Database 26ai
Configure the recovery catalog using the highest production database version as the catalog schema version. This enables the recovery catalog to store metadata for all production databases across the different Oracle Database releases.
The solution was to upgrade the RMAN recovery catalog from 19.6 to 19.32. I applied a release update to the rman catalog database and run “upgrade catalog” to update the recovery catalog packages and retried the same RMAN operation. The SBT channel allocation succeeded, and the backup proceeded normally.
Hope it helps.


Leave your comment