Oracle DBMS_RA_STORAGE
Version 21c

General Information
Library Note Morgan's Library Page Header
The best Oracle News for FY2026

Oracle Database 26ai is now availble. If you haven't you downloaded already: Why?
Purpose Recovery Appliance (Recovery Appliance) Backup and Recovery support utility.
AUTHID DEFINER
Constants
Name Data Type Value
 Copy Constants
 COPY_RA_POLL NUMBER 1
COPY_RA_CPMV NUMBER 2
COPY_RA_XALG NUMBER 3
 KRSP Constants
KRSP_SUCCESS NUMBER 0
KRSP_REFETCH NUMBER 1
KRSP_GIVEUP NUMBER 2
KRSP_NONE NUMBER 1
Data Types s_handle sbt_catalog.handle%TYPE; -- backdoor to supply handle
Dependencies
AMAU$ DBMS_RA_INT PLANNED_SPACE_OK
AMCONT$ DBMS_RA_MISC PROT
AMGRP$ DBMS_RA_POOL RAI_JS_LOCKS
AM$CONTAINER_GROUP DBMS_RCVCAT RAI_OLDEST_BACKUP
BDF DBMS_RA_SCHEDULER RAI_PURGE_QUEUE
BLOCKS DBMS_SQL SBT_CATALOG
BP DBMS_SYS_ERROR SBT_USAGE
BP_USAGE DBSL SBT_TASK
BRL DF SL
BS DFSEQ SL_SIZING
CAL_MAX_RETENTION_WINDOW ERROR_LOG STORAGE_DESTS
CHUNKS KBRSI_ICD TASK
CONFIG LOCAL_TIME TASK_CHUNK_CACHE
CONTAINED_FNAMES METADATA_FNAMES TASKS_USAGE
DB MISSING_METADATA_FNAMES UNREG_DATABASE
DBINC NODE USER_TAB_PARTITIONS
DBMS_ASSERT ODB VBDF
DBMS_LOCK ODB_USAGE V$_$ASM_DISKGROUP
DBMS_RA    
Documented No
First Available Not known
Security Model Owned by SYS with no privileges granted
Source {ORACLE_HOME}/rdbms/admin/recover.bsq
-- The SQL for this package was extracted from recover.bsq and executed independently
-- from a SQL*Plus prompt. Not having an Oracle Recovery Appliance handy some a small
-- amount of the source was commented out to obtain a successful compilation.


SQL> sho err
Errors for PACKAGE DBMS_RA_STORAGE:

LINE/COL ERROR
-------- -----------------------------------------------------------------
1/1 PLW-05018: unit DBMS_RA_STORAGE omitted optional AUTHID clause;
default value DEFINER used

44/25 PLW-07203: parameter 'P_HANDLE' may benefit from use of the NOCOPY compiler hint
Subprograms
 
ALLOCATE_BACKUP_PIECE
Undocumented dbms_ra_storage.allocate_backup_piece(
p_db_key    IN  NUMBER,
p_piecename IN  VARCHAR2,
p_fincarn   IN  VARCHAR2,
p_filesize  IN  NUMBER,
p_ct_key    OUT NUMBER);
TBD
 
ALLOCATE_BACKUP_PIECE_NAME
Undocumented dbms_ra_storage.allocate_backup_piece_name(
p_db_key    IN NUMBER,
p_piecename IN VARCHAR2,
p_fincarn   IN VARCHAR2);
TBD
 
ALLOCATE_BLOCK_POOL_CHUNK
Undocumented dbms_ra_storage.allocate_block_pool_chunk(
p_db_key    IN  NUMBER,
p_dbinc_key IN  NUMBER,
p_df_key    IN  NUMBER,
p_vb_key    IN  NUMBER,
p_chunkno   OUT NUMBER);
TBD
 
BACKUPARCH
Undocumented dbms_ra_storage.backuparch(
p_ct_key    IN NUMBER,
p_complete  IN NUMBER,
p_savepoint IN NUMBER);
TBD
 
CHECK_CONT_FILESIZE
Undocumented dbms_ra_storage.check_cont_filesize(
p_ct_key IN NUMBER,
p_unit   IN VARCHAR2);
TBD
 
CHECK_FILES
Undocumented dbms_ra_storage.check_files(
p_execute_time IN TIMESTAMP WITH TIME ZONE,
p_savepoint    IN NUMBER,
p_repair       IN BOOLEAN);
TBD
 
COPY_PIECE
Undocumented dbms_ra_storage.copy_piece(
p_fname  IN VARCHAR2,
p_db_key IN NUMBER,
p_action IN NUMBER DEFAULT 0,
p_bp_key IN NUMBER DEFAULT NULL);
TBD
 
CREATE_CONTAINERS
Undocumented dbms_ra_storage.create_containers(
p_slkey    IN NUMBER,
p_create   IN BOOLEAN,
p_reformat IN BOOLEAN DEFAULT FALSE);
-- demo code from recover.bsq
exec dbms_ra_storage.create_containers(l_sl_key, TRUE, TRUE);
 
FINISH_BACKUP_PIECE
Undocumented dbms_ra_storage.finish_backup_piece(
p_db_key   IN NUMBER,
p_handle   IN VARCHAR2,
p_pieceinc IN VARCHAR2,
p_ct_key   IN NUMBER);
TBD
 
FINISH_BLOCK_POOL_CHUNK
Undocumented dbms_ra_storage.finish_block_pool_chunk(p_db_key IN NUMBER);
TBD
 
FINISH_FILE
Undocumented dbms_ra_storage.finish_file(
p_db_key IN NUMBER,
p_newfname IN VARCHAR2,
p_filesize IN NUMBER,
p_handle OUT VARCHAR2,
p_move_bp OUT NUMBER);
TBD
 
FREESPACE
Undocumented dbms_ra_storage.freespace(p_sl_key IN NUMBER) RETURN NUMBER;
-- demo code from recover.bsq
l_freespace := dbms_ra_storage.freespace(s.sl_key);
l_freespace := dbms_ra_storage.freespace(sl.sl_key) + s_purging_reserve;
 
FREE_BACKUP_PIECE
Undocumented dbms_ra_storage.free_backup_piece(
p_db_key     IN NUMBER,
p_piecename  IN VARCHAR2,
p_ftype      IN NUMBER DEFAULT NULL,
p_fincarn    IN VARCHAR2 DEFAULT NULL,
p_can_defer  IN BOOLEAN DEFAULT FALSE,
p_check_prot IN BOOLEAN DEFAULT FALSE);
TBD
 
FREE_BACKUP_PIECE_OPT
Undocumented dbms_ra_storage.free_backup_piece_opt(
p_db_key    IN NUMBER,
p_piecename IN VARCHAR2,
p_db_slkey  IN NUMBER,
p_dbid      IN NUMBER,
p_currinc   IN NUMBER,
p_bpkey     IN NUMBER,
p_ftype     IN NUMBER DEFAULT NULL,
p_fincarn   IN VARCHAR2 DEFAULT NULL,
p_libkey    IN NUMBER DEFAULT NULL,
p_spawn_job IN BOOLEAN DEFAULT TRUE,
p_notasks   IN BOOLEAN DEFAULT FALSE,
p_noplans   IN BOOLEAN DEFAULT FALSE);
TBD
 
FREE_BLOCK_POOL_CHUNK
Undocumented dbms_ra_storage.free_block_pool_chunk(
p_db_key    IN NUMBER,
p_dbinc_key IN NUMBER,
p_df_key    IN NUMBER,
p_chunkno   IN NUMBER);
TBD
 
FREE_BLOCK_POOL_CHUNKS
Undocumented dbms_ra_storage.free_block_pool_chunks(
p_sl_key IN NUMBER,
p_db_key IN NUMBER,
p_df_key IN NUMBER,
p_chunks IN dbms_sql.number_table);
TBD
 
FREE_TASK_STORAGE
Undocumented dbms_ra_storage.free_task_storage(p_task_id NUMBER DEFAULT NULL);
-- demo code from recover.bsq
IF s_cached_storage THEN
  dbms_ra_storage.free_task_storage;
END IF;

exec dbms_ra_storage.free_task_storage(p_task_id);
 
GET_CHUNKNO
Undocumented dbms_ra_storage.get_chunkno(
p_df_key IN NUMBER,
p_count  IN NUMBER DEFAULT 1)
RETURN NUMBER;
TBD
 
GET_KEEP_SPACE
Undocumented dbms_ra_storage.get_keep_space(p_db_key IN NUMBER) RETURN NUMBER;
-- demo code from recover.bsq
exec dbms_ra_storage.get_keep_space(db_key)/(1024*1024*1024) keep_space
 
INVALIDATE_PLANNED_SPACE
Undocumented dbms_ra_storage.invalidate_planned_space(p_db_key IN NUMBER);
-- demo code from recover.bsq
exec dbms_ra_storage.invalidate_planned_space(p.db_key);
 
LOCK_DB
Undocumented dbms_ra_storage.lock_db(p_db_key IN NUMBER);
-- demo code from recover.bsq
IF d.wait_space IS NOT NULL THEN
  BEGIN
    dbms_ra_storage.lock_db(d.db_key);

    UPDATE odb SET wait_space = NULL WHERE db_key = d.db_key;
    COMMIT;

    dbms_ra_storage.unlock_db(d.db_key);
  EXCEPTION
    WHEN OTHERS THEN
      save_error;
      dbms_ra_storage.unlock_db(d.db_key);
      RAISE;
  END;
END IF;
 
LOCK_SL
Undocumented dbms_ra_storage.lock_sl(p_sl_key IN NUMBER);
TBD
 
MOVE_ALL_DB
Undocumented dbms_ra_storage.move_all_db;
-- demo code from recover.bsq
exec dbms_ra_storage.move_all_db;
 
MOVE_DATABASE_METADATA
Undocumented dbms_ra_storage.move_database_metadata(
p_db_key     IN NUMBER,
p_old_sl_key IN NUMBER,
p_sl_key     IN NUMBER);
-- demo code from recover.bsq
exec dbms_ra_storage.move_database_metadata(o.db_key, o.sl_key, o.future_sl_key);
 
NAME_BACKUP_PIECE
Undocumented dbms_ra_storage.name_backup_piece(
p_ct_key   IN NUMBER,
p_filename IN VARCHAR2);
TBD
 
PREALLOCATE_CHUNKS
Undocumented dbms_ra_storage.preallocate_chunks(
p_db_key   IN NUMBER,
p_count    IN NUMBER,
p_required IN BOOLEAN DEFAULT FALSE);
TBD
 
PURGE_DATABASE
Undocumented dbms_ra_storage.purge_database(
p_db_key  IN NUMBER,
p_sl_key  IN NUMBER DEFAULT NULL,
p_purpose IN NUMBER, /* see purgeDB */
p_inline  IN BOOLEAN DEFAULT FALSE);
TBD
 
PURGE_STORAGE_LOCATION
Undocumented dbms_ra_storage.purge_storage_location(
p_sl_key    IN NUMBER,
p_db_key    IN NUMBER,
p_spaceneed IN NUMBER,
p_immediate IN BOOLEAN);
TBD
 
REFRESH_PLANNED_SPACE
Undocumented dbms_ra_storage.refresh_planned_space(p_sl_key IN NUMBER);
TBD
 
REMOVEARCH
Undocumented dbms_ra_storage.removearch(
p_db_key      IN NUMBER,
p_ct_key      IN NUMBER,
p_complete    IN NUMBER,
p_krsp_action IN NUMBER);
TBD
 
RESERVE_BLOCK_POOL_SPACE
Undocumented dbms_ra_storage.reserve_block_pool_space(
p_db_key    IN  NUMBER,
p_chunks    IN  NUMBER,
p_maxchunks OUT NUMBER)
RETURN NUMBER;
TBD
 
SETTRACING
Undocumented dbms_ra_storage.settracing(
p_trc_on    IN NUMBER,
p_perf_on   IN NUMBER DEFAULT 0,
p_stall_on  IN NUMBER DEFAULT 0,
p_safe_mode IN NUMBER DEFAULT 0);
TBD
 
SWAP_BACKUP_PIECE
Undocumented dbms_ra_storage.swap_backup_piece(p_bpkey IN NUMBER);
TBD
 
TRIM_DATABASE_AS_JOB
Undocumented dbms_ra_storage.trim_database_as_job(
p_db_key     IN NUMBER,
p_sl_key     IN NUMBER,
p_allocation IN NUMBER);
TBD
 
TRIM_DATABASE_FOR_MOVE
Undocumented dbms_ra_storage.trim_database_for_move(
p_db_key IN NUMBER,
p_alloc  IN NUMBER);
TBD
 
UNLOCK_DB
Undocumented dbms_ra_storage.unlock_db(p_db_key IN NUMBER);
TBD
 
UNLOCK_SL
Undocumented dbms_ra_storage.unlock_sl(p_sl_key IN NUMBER);
TBD

Related Topics
Built-in Functions
Built-in Packages
Database Security
DBMS_RA
DBMS_RA_DUMP
DBMS_RA_INT
DBMS_RA_MISC
DBMS_RA_POOL
DBMS_RA_SBT
DBMS_RA_SCHEDULER
KBRSI_ICD
What's New In 21c
What's New In 26ai

Morgan's Library Page Footer
This site is maintained by Daniel Morgan. Last Updated: This site is protected by copyright and trademark laws under U.S. and International law. © 1998-2026 Daniel A. Morgan All Rights Reserved