Oracle DBMS_RA_STORAGE
Version 21c

General Information
Library Note Morgan's Library Page Header
ACE Director Alum Daniel Morgan, founder of Morgan's Library, is scheduling complimentary technical Workshops on Database Security for the first 30 Oracle Database customers located anywhere in North America, EMEA, LATAM, or APAC that send an email to asra_us@oracle.com. Request a Workshop for your organization today.
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 23c

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