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
RMAN repository catalog maintenance. This package is not installed by default but is created when CREATE CATALOG is executed in RMAN.
TYPE resyncActionObjects_t IS VARRAY(5) OF VARCHAR2(16);
TYPE guidTab_t IS TABLE OF RAW(16) INDEX BY BINARY_INTEGER;
TYPE numberTab_t IS TABLE OF NUMBER INDEX BY BINARY_INTEGER;
TYPE varchar2Tab_t IS TABLE OF VARCHAR2(4000) INDEX BY BINARY_INTEGER;
TYPE varchar2sTab_t IS TABLE OF VARCHAR2(256) INDEX BY BINARY_INTEGER;
TYPE dateTab_t IS TABLE OF DATE INDEX BY BINARY_INTEGER;
TYPE booleanTab_t IS TABLE OF BOOLEAN INDEX BY BINARY_INTEGER;
TYPE pls_intTab_t IS TABLE OF PLS_INTEGER INDEX BY BINARY_INTEGER;
Dependencies
AL
RCI_BACKUP_PIECE
USER_TAB_PARTITIONS
ALL_OBJECTS
RCI_BACKUP_SET
USER_USERS
ALL_SYNONYMS
RCI_BACKUP_SPFILE
USER_VIEWS
ALL_USERS
RCI_DATAFILE
UTL_HTTP
BCB
RCI_PDBINC_THIS_DBINC
UTL_RAW
BCF
RCI_PDBS
VPC_DATABASES
BCR
RCI_RA_UPSTREAM_DATABASE
VPC_USERS
BDF
RCI_SITE
WATERMARKS
BP
RCI_SITE_DFATT
XAL
BRL
RCI_SITE_TFATT
XCF
BS
RCI_TEMPFILE
XDF
BSF
RCI_TSATT
XMLSTORE
CCB
RCVER
XMLTYPE
CCF
RC_BACKUP_REDOLOG
_RS_DF_
CDF
RC_CHECKPOINT
_RS_FB_
CKP
RC_DATABASE
_RS_PDBINC_
CONF
RC_DATABASE_INCARNATION
_RS_PDB_
CONFIG
RC_DELETED_OBJECT
_RS_PDB_INC_
DB
RC_OFFLINE_RANGE
_RS_RCI_BACKUP_CONTROLFILE_
DBINC
RC_PLUGGABLE_DATABASE_INC
_RS_RCI_BACKUP_DATAFILE_
DBMS_ASSERT
RC_RANGERECSETIMPL_T
_RS_RCI_BACKUP_PIECE_
DBMS_CATOWNER
RC_RCVER
_RS_RCI_BACKUP_SET_
DBMS_DB_VERSION
RC_REDO_LOG
_RS_RCI_BACKUP_SPFILE_
DBMS_LOB
RC_REDO_THREAD
_RS_RCI_DATAFILE_
DBMS_OUTPUT
RC_SITE
_RS_RCI_GRSP_
DBMS_RANDOM
RC_TABLESPACE
_RS_RCI_NRSP_
DBMS_RCVMAN
RC_TENANT
_RS_RCI_PDBS_
DBMS_RCVVPC
RC_WATERMARKS
_RS_RCI_RA_UPSTREAM_DATABASE_
DBMS_SESSION
RLH
_RS_RCI_SITE_DFATT_
DBMS_SQL
RMAN_SEQ
_RS_RCI_SITE_TFATT_
DBMS_STANDARD
ROUT
_RS_RCI_TEMPFILE_
DBMS_UTILITY
RSR
_RS_RCI_TSATT_
DBMS_XMLGEN
RT
_RS_RC_BACKUP_REDOLOG_
DELETED_OBJECT
SBT_TEMPLATE_DB
_RS_RC_CHECKPOINT_
DF
SCR
_RS_RC_DATABASE_INCARNATION_
DO_SEQ
SCRL
_RS_RC_DELETED_OBJECT_
DUAL
SERVER
_RS_RC_GET_OBJECT_LIST_
FB
SITE_DFATT
_RS_RC_OFFLINE_RANGE_
GRSP
SITE_TFATT
_RS_RC_PLUGGABLE_DATABASE_INC_
NODE
TEMPRES
_RS_RC_RCVER_
NRSP
TENANT
_RS_RC_REDO_LOG_
OFFR
TF
_RS_RC_REDO_THREAD_
ORL
TS
_RS_RC_SITE_
PDB
TSATT
_RS_RC_TABLESPACE_
PDBINC
UNREG_DATABASE
_RS_RC_TENANT_
PDB_DBINC
USER_DB_LINKS
_RS_RC_WATERMARKS_
PDB_NODE
USER_OBJECTS
_RS_TF_
PLITBLM
USER_POLICY_CONTEXTS
_RS_TSATT_
RASCHEMAVER
USER_TABLES
_TS_TS_ - 22
RCFILE
USER_TAB_COLUMNS
-
Documented
No
Exceptions
Error Code
Reason
ORA-20525
Catalog schema is not multitenant enabled
ORA-20999
Invalid tenant csi or prefix no data found (get_tenant_key)
ORA-20999
Not a valid VPC user
First Available
Not known
Security Model
Owned by SYS with EXECUTE granted to PUBLIC
Source
{$ORACLE_HOME}/rdbms/admin/recover.bsq
CREATE USER c##rmandadmin
IDENTIFIED BY ...
DEFAULT TABLESPACE uwdata
TEMPORARY TABLESPACE temp
QUOTA UNLIMITED ON uwdata;
The demo failure is likely indicative of this being run on a stand-alone laptop without a connection to Oracle Support whereby the CSI could be confirmed
dbms_rcvcat.add_db(
db_unique_name IN VARCHAR2,
csi IN NUMBER);
conn rmanadmin/pdbdev
Password:
col status format a6
SELECT tenant_key, csi, name, status FROM tenant;
TENANT_KEY CSI NAME STATUS
---------- ---------- ------------------------------ ------
0 0 DEFAULT_TENANT E
1 1 REP_TENANT E
show parameter unique
NAME TYPE VALUE
------------------------------------ ----------- -----------
db_unique_name string FREE
exec rmanadmin.dbms_rcvcat.add_db('FREE', 22358645);
*
ERROR at line 1:
ORA-20999: Invalid tenant csi or prefix no data found (get_tenant_key)
ORA-06512: at "RMANADMIN.DBMS_RCVCAT", line 3478
ORA-06512: at "RMANADMIN.DBMS_RCVCAT", line 3990
ORA-06512: at line 1
dbms_rcvcat.assert_tenant_user(
p_user IN VARCHAR2,
p_csi IN NUMBER DEFAULT 0,
p_err_on_nouser IN BOOLEAN DEFAULT TRUE);
exec rmanadmin.dbms_rcvcat.assert_tenant_user(USER);
BEGIN dbms_rcvcat.assert_tenant_user(USER); END;
*
ERROR at line 1:
ORA-20999: Not a valid VPC user
ORA-06512: at "RMANADMIN.DBMS_RCVCAT", line 3371
ORA-06512: at line 1
dbms_rcvcat.beginCkpt(
ckp_scn IN NUMBER,
ckp_cf_seq IN NUMBER,
cf_version IN DATE,
ckp_time IN DATE,
ckp_type IN VARCHAR2,
ckp_db_status IN VARCHAR2,
high_df_recid IN NUMBER,
cf_type IN VARCHAR2);
dbms_rcvcat.checkBlockCorruption(
bcr_recid IN NUMBER,
bcr_stamp IN NUMBER,
file# IN NUMBER,
create_scn IN NUMBER,
create_time IN DATE,
block# IN NUMBER,
blocks IN NUMBER,
corrupt_scn IN NUMBER,
corruption_type IN VARCHAR2);
dbms_rcvcat.checkRMANOutput(
recid IN NUMBER,
stamp IN NUNBER,
session_recid IN NUMBER,
session_stamp IN NUMBER,
rman_status_recid IN NUMBER,
rman_status_stamp IN NUMBER,
output IN VARCHAR2);
dbms_rcvcat.checkRMANStatus(
recid IN NUMBER,
stamp IN NUMBER,
parent_recid IN NUMBER,
parent_stamp IN NUMBER,
row_level IN NUMBER,
row_type IN VARCHAR2,
command_id IN VARCHAR2,
operation IN VARCHAR2,
status IN VARCHAR2,
mbytes_processed IN NUMBER,
start_time IN DATE,
end_time IN DATE,
ibytes IN NUMBER,
obytes IN NUMBER,
optimized IN VARCHAR2,
otype IN VARCHAR2,
session_recid IN NUMBER,
session_stamp IN NUMBER,
odevtype IN VARCHAR2,
osb_allocated IN VARCHAR2);
dbms_rcvcat.createXMLFile(
name IN VARCHAR2,
name_tag IN VARCHAR2,
xmldoc IN CLOB,
doctype IN VARCHAR2,
xml_comment IN VARCHAR2,
schema_ver IN VARCHAR2);
dbms_rcvcat.deb(
line IN VARCHAR2,
level IN NUMBER DEFAULT RCVCAT_LEVEL_DEFAULT,
prefix_msg1 IN VARCHAR2 DEFAULT 'RCVCAT: ',
prefix_msg2 IN VARCHAR2 DEFAULT 'DBGRCVCAT: ');
exec dbms_rcvcat.deb('catalog schema is multitenant enabled');
dbms_rcvcat.delete_db(
db_unique_name IN VARCHAR2,
csi IN NUMBER);
exec dbms_rcvcat.delete_db('FREE', 22358645);
*
ERROR at line 1:
ORA-20999: Invalid tenant csi or prefix no data found (get_tenant_key)
ORA-06512: at "RMANADMIN.DBMS_RCVCAT", line 3478
ORA-06512: at "RMANADMIN.DBMS_RCVCAT", line 4029
ORA-06512: at line 1
SELECT rmanadmin.dbms_rcvcat.getLogHistoryLowSCN;
*
ERROR at line 1:
ORA-20031: Resync not started
ORA-06512: at "C##RMANADMIN.DBMS_RCVCAT", line 1037
ORA-06512: at "C##RMANADMIN.DBMS_RCVCAT", line 5201
dbms_rcvcat.getScriptNames(
dbname OUT VARCHAR2,
scnm OUT VARCHAR2,
sccom OUT VARCHAR2);
exec dbms_rcvcat.listScriptNames(1, 1);
DECLARE
a VARCHAR2(30);
b VARCHAR2(30);
c VARCHAR2(30);
BEGIN
dbms_rcvcat.getScriptNames(a, b, c);
dbms_output.put_line(a);
dbms_output.put_line(b);
dbms_output.put_line(c);
END;
/
*
ERROR at line 1:
ORA-01403: no data found
ORA-06512: at "C##RMANADMIN.DBMS_RCVCAT", line 10635
ORA-06512: at line 6
dbms_rcvcat.grant_catalog(
userid IN VARCHAR2,
db_name IN VARCHAR2);
exec dbms_rcvcat.grant_catalog('RMANADMIN', 'FREE');
*
ERROR at line 1:
ORA-20153: recovery catalog does not have VPD support enabled!
ORA-06512: at "RMANADMIN.DBMS_RCVCAT", line 19706
ORA-06512: at "RMANADMIN.DBMS_RCVCAT", line 19813
ORA-06512: at "RMANADMIN.DBMS_RCVCAT", line 19795
ORA-06512: at line 1
exec dbms_rcvcat.revoke_catalog('RMANADMIN', 'FREE');
*
ERROR at line 1:
ORA-20153: recovery catalog does not have VPD support enabled!
ORA-06512: at "RMANADMIN.DBMS_RCVCAT", line 19962
ORA-06512: at "RMANADMIN.DBMS_RCVCAT", line 19944
ORA-06512: at line 1
Overload 2
dbms_rcvcat.grant_catalog(
userid IN VARCHAR2,
dbid IN NUMBER,
reg_db_unique_name IN VARCHAR2);
exec rmanadmin.dbms_rcvcat.grant_register('ZZYZX');
*
ERROR at line 1:
ORA-20022: user ZZYZX not found
ORA-06512: at "C##RMANADMIN.DBMS_RCVCAT", line 12455
ORA-06512: at "C##RMANADMIN.DBMS_RCVCAT", line 12505
ORA-06512: at line 1
dbms_rcvcat.log_diag_mesg(
input_msg IN VARCHAR2,
param_char IN VARCHAR2 DEFAULT NULL,
p_diag_param_char IN VARCHAR2 DEFAULT NULL);
exec rmanadmin.dbms_rcvcat.log_diag_mesg('Test Diagnostic Msg');
*
ERROR at line 1:
ORA-06550: line 5, column 25:
PLS-00201: identifier 'DBMS_RA_SCHEDULER.SEVERITY_DIAG_RECONCILE' must be declared
ORA-06550: line 1, column 8:
PL/SQL: Statement ignored
ORA-06512: at "RMANADMIN.DBMS_RCVCAT", line 20666
ORA-06512: at line 1
The recovery catalog can store information about many target databases. A target database must be registered before any information about it can be recorded in the recovery catalog.
dbms_rcvcat.registerDatabase(
db_id IN NUMBER
db_name IN VARCHAR2
reset_scn IN NUMBER
reseet_time IN DATE
db_unique_name IN VARCHAR2
con_id IN NUMBER
guid IN RAW);
Change set control file attributes of remote db_unique_name site
Overload 1
dbms_rcvcat.setDatabase(
db_name IN VARCHAR2,
reset_scn IN NUMBER,
reset_time IN DATE,
db_id IN NUMBER,
db_unique_name IN VARCHAR2,
dummy_instance IN BOOLEAN,
cf_type IN NUMBER,
site_aware IN BOOLEAN,
ors_instance IN BOOLEAN);
dbms_rcvcat.set_tenant_key(
csi IN NUMBER,
tkey OUT NUMBER,
cname OUT VARCHAR2);
DECLARE
keyVal NUMBER;
namVal dbms_id;
BEGIN
dbms_rcvcat.set_tenant_key(22358645, keyVal, namVal);
dbms_output.put_line(TO_CHAR(keyVal));
dbms_output.put_line(namVal);
END;
/
DECLARE
*
ERROR at line 1:
ORA-20525: catalog schema is not multitenant enabled
ORA-06512: at "RMANADMIN.DBMS_RCVCAT", line 26120
ORA-06512: at "RMANADMIN.DBMS_RCVCAT", line 3458
ORA-06512: at line 5
dbms_rcvcat.update_tenant(
csi IN NUMBER,
cname IN VARCHAR2,
status IN VARCHAR2, -- valid values D, E, N, R, S, T
group_vpc IN VARCHAR2 DEFAULT NULL);
exec dbms_rcvcat.update_tenant(22358645, 'FREE', 'E');
*
ERROR at line 1:
ORA-20525: catalog schema is not multitenant enabled
ORA-06512: at "RMANADMIN.DBMS_RCVCAT", line 26120
ORA-06512: at "RMANADMIN.DBMS_RCVCAT", line 3650
ORA-06512: at line 1