Skip to main content

Resolving Oracle 12c DTC Restore Failures: Addressing ORA-00904 and RMAN-06091 Errors Due to Hybrid Backup Strategies

Resolving Oracle 12c DTC Restore Failures: Addressing ORA-00904 and RMAN-06091 Errors Due to Hybrid Backup Strategies

Updated over a week ago

Problem Description:

During a Direct to Cloud (DTC) restore operation for Oracle 12c (Release 12.1.0.2.0), the restore job fails with the error:

  • ORA-00904: "SYS"."DBMS_RCVMAN"."NUM2DISPLAYSIZE": invalid identifier
    Additionally, the following RMAN error is observed:

  • RMAN-06091: no channel allocated for maintenance (of an appropriate type)
    The restore is being attempted in an environment where backups are performed both by Druva (to SBT/Cloud) and native RMAN (to local DISK).

Cause:

  • The function DBMS_RCVMAN.NUM2DISPLAYSIZE is not available in Oracle 12.1.0.2.0; it was introduced in Oracle 19c. The Druva agent attempts to invoke this function during restore job status tracking or RMAN metadata parsing, resulting in the invalid identifier error.

  • The RMAN-06091 error occurs because the control file metadata contains backup pieces for both SBT (Druva) and DISK (native RMAN). During restore, RMAN performs an implicit crosscheck requiring a DISK channel, but Druva’s automated restore script only allocates SBT_TAPE channels. This leads to restore failure as RMAN cannot verify the DISK backup pieces.

Traceback / Logs:

In Jobs Logs, RMAN Logs(rman.log)

Error: ORA-00904: "SYS"."DBMS_RCVMAN"."NUM2DISPLAYSIZE": invalid identifier
Error: RMAN-06091: no channel allocated for maintenance (of an appropriate type)
RMAN log excerpt:
allocated channel: ch0
channel ch0: SID=6 device type=SBT_TAPE
channel ch0: Druva Phoenix SBT for Oracle - Release 1.0.0.0
...
RMAN-06091: no channel allocated for maintenance (of an appropriate type)
RMAN configuration:
CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 2 DAYS;
CONFIGURE DEFAULT DEVICE TYPE TO DISK;

Resolution:

Immediate Solution: Manual Restore

  • Download backup data files using the third option under Oracle DTC restore.

  • While running manual RMAN restore, add the command:

ALLOCATE CHANNEL FOR MAINTENANCE TYPE 'DISK';

This enables RMAN to complete the crosscheck and proceed with restore.

Future Strategy: Transition to Druva-Only Backups

  • Option A (Standard Approach):

    1. Configure RMAN default device type to SBT_TAPE:

CONFIGURE DEFAULT DEVICE TYPE TO SBT_TAPE;

  1. Stop all native RMAN-to-disk backup jobs.

  2. Wait 3 days (to cover the 2-day recovery window).

  3. Take a new Druva DTC backup; the control file will exclude disk backups.

  4. Test automated restore from the latest snapshot.

  • Option B (Accelerated Approach):

    1. Configure RMAN default device type to SBT_TAPE.

    2. Temporarily set retention policy to 1 day: CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 1 DAYS;

    3. Stop all native RMAN-to-disk backup jobs.

    4. Wait 2 days, then take a new Druva DTC backup and test automated restore.

    5. Revert retention policy back to 2 days after testing.

Additional Recommendations:

  • If a recovery catalog is in use, update the catalog schema by running Oracle’s catalog.sql and catproc.sql scripts to bring it in sync with Oracle 12.1.0.2.

  • Ensure sufficient free space on the root filesystem before re-running the restore.

  • For every manual restore, a README file is created at the same location as the restored data, containing instructions and sample commands.

References:

Did this answer your question?