Oracle DBMS_DRS
Version 26ai

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

Oracle Database 26ai will be available on generic Linux platforms in January and soon on AIX and Windows
Purpose This package contains procedures used in the DR Server (Hot Standby). There are two forms of each major function; one is a blocking procedure, which does not return until the command is completed. The other is a non-blocking function which returns with a request identifier which may be used to return the result of the command.
AUTHID DEFINER
Constants
Name Data Type Value
 Pre-Defined Wait Events
WAIT_START_DMON PLS_INTEGER 1
WAIT_STOP_DMON PLS_INTEGER 2
WAIT_BOOT PLS_INTEGER 3
WAIT_BOOT_ENABLED PLS_INTEGER 4
WAIT_PREDEFINED_MAX PLS_INTEGER 4
 Flag Based Wait Events
WAIT_RFMP_FLAGS PLS_INTEGER 100
WAIT_BROKER_STATE_FLAGS PLS_INTEGER 101
 Wait For Flags To Be Set Or Cleared
WAIT_FLAGS_CLR PLS_INTEGER 0
WAIT_FLAGS_SET PLS_INTEGER 1
 Status Values Returned By DBMS_DRS.WAIT
RFC_DRSF_STATUS_TOUT NUMBER 16509
RFC_DRSF_STATUS_NODRC NUMBER 16532
RFC_DRSF_STATUS_BADARG NUMBER 16540
RFC_DRSF_STATUS_ILLPRMYOP NUMBER 16585
RFC_DRSF_STATUS_NOTMEMBER NUMBER 16596
Dependencies
DBMS_DG DBMS_GSM_FIXED  
Documented No
Exceptions
Error Code Reason
ORA-16508 bad_request
First Available 9.0
Security Model Owned by SYS with EXECUTE granted to SYSDG, SYSRAC and the OEM_MONITOR role
Source {ORACLE_HOME}/rdbms/admin/dbmsdrs.sql
Subprograms
ADD_CONFIGURATION DUMP_BROKER REMOVE_FAR_SYNC
ADD_DATABASE DUMP_META REMOVE_FAR_SYNC2
ADD_FAR_SYNC DUMP_OBSERVER REMOVE_INSTANCE
ADD_RECOVERY_APPLIANCE EDIT_TAG REPLACE_MEMBER_NAME_IN_PROPS
CANCEL_REQUEST ENABLE RESET_CONFIGURATION_PROPERTY
CHECK_CONNECT ENABLE_CONFIGURATION RESET_DATABASE_PROPERTY
CHECK_CONNECT_NETADDR ENABLE_DATABASE RESET_FAR_SYNC_PROPERTY
CONTROL_CONFIGURATION ENABLE_FAR_SYNC RESET_PROPERTY
CONVERT_TO_PHYSICAL ENABLE_FS_FAILOVER SET_CONFIGURATION_PROPERTY
CONVERT_TO_SNAPSHOT ENABLE_FS_FAILOVER_CONDITION SET_CONFIGURATION_PROPERTY_RAW
CREATE_CONFIGURATION FAILOVER SET_CONFIGURATION_SOURCE
CREATE_CONFIGURATION_RAW FS_FAILOVER_FOR_HC_COND SET_DATABASE_PROPERTY
DELETE_REQUEST GET_CONFIGURATION_PROPERTY SET_DGPDB_STATE
DBPDB_ADD GET_CONN_DESC SET_FAR_SYNC_PROPERTY
DGPDB_FAILOVER GET_ENV SET_PROPERTY
DGPDB_REINSTATE GET_PROPERTY SET_PROPERTY_RAW
DGPDB_REMOVE GET_PROPERTY2 SET_PROTECTION_MODE
DGPDB_SHOW GET_PROPERTY_OBJ SET_STATE_APPLY_OFF
DGPDB_SWITCHOVER GET_RESPONSE SET_STATE_APPLY_ON
DGPDB_VALIDATE GET_RESPONSE_RAW SET_STATE_TRANSPORT_OFF
DG_BROKER_INFO HEALTH_CHECK SET_STATE_TRANSPORT_ON
DISABLE INITIATE_FS_FAILOVER SHOW_TAG
DISABLE_CONFIGURATION METADATA_FILE SLEEP
DISABLE_DATABASE PING STARTUP_FOR_RELOCATE
DISABLE_FAR_SYNC READYTOFAILOVER STATECHANGERECORDED
DISABLE_FS_FAILOVER REINSTATE STOP_OBSERVER
DISABLE_FS_FAILOVER2 REMOVE SWITCHOVER
DISABLE_FS_FAILOVER_CONDITION REMOVE2 TRANSLATE_CI
DO_CONTROL REMOVE_CONFIGURATION WAIT
DO_CONTROL_RAW REMOVE_CONFIGURATION2 WAIT_SYNC
DO_CONTROL_RAW_NORID REMOVE_DATABASE WRITE_SERVER_LOG
DO_OBSERVE REMOVE_DATABASE2 Demos
 
ADD_CONFIGURATION
Adds a remote configuration to the metadata dbms_drs.add_configuration(
ci        IN VARCHAR2,
name      IN VARCHAR2,
dest_type IN VARCHAR2)
RETURN BINARY_INTEGER;
TBD
 
ADD_DATABASE (new 23ai overloads)
Adds a standby database to a Broker configuration. database_ci is the connection identifier

Overload 1
dbms_drs.add_database(
database_name IN VARCHAR2,
database_ci   IN VARCHAR2)
RETURN BINARY_INTEGER;
TBD
Adds a standby database to a broker configuration

Severity is either ORA-0, ORA-16501, or ORA-16502

Overload 2
dbms_drs.add_database(
database_name IN  VARCHAR2,
database_ci v IN  VARCHAR2,
severity      OUT BINARY_INTEGER)
RETURN BINARY_INTEGER;
TBD
Overload 3 dbms_drs.add_database(
database_name   IN VARCHAR2,
database_ci      IN VARCHAR2,
host_name        IN VARCHAR2,
sid_name         IN VARCHAR2,
role             IN VARCHAR2,
explicit_disable IN BINARY_INTEGER DEFAULT 1)
RETURN BINARY_INTEGER;
TBD
 
ADD_FAR_SYNC
Add a far sync instance to a Broker configuration. far_sync_ci is the connection identifier dbms_drs.add_far_sync(
far_sync_name IN VARCHAR2,
far_sync_ci   IN VARCHAR2)
RETURN BINARY_INTEGER;
TBD
 
ADD_RECOVERY_APPLIANCE (new 23ai overload)
Adds a recovery appliance to a Broker configuration

Overload 1
dbms_drs.add_recovery_appliance(
ra_name IN VARCHAR2,
ra_ci   IN VARCHAR2 DEFAULT NULL)
RETURN BINARY_INTEGER;
TBD
Severity is either ORA-0, ORA-16501, or ORA-16502

Overload 2
dbms_drs.add_recovery_appliance(
ra_name  IN  VARCHAR2,
ra_ci    IN  VARCHAR2 DEFAULT NULL,
severity OUT BINARY_INTEGER)
RETURN BINARY_INTEGER;
TBD
 
CANCEL_REQUEST
Cancel Request (blocking) dbms_drs.cancel_request(rid IN INTEGER);
See Demos At Page Bottom
 
CHECK_CONNECT
Check network connectivity to the specified member dbms_drs.check_connect(
member_name   IN VARCHAR2,
instance_name IN VARCHAR2,
config_name   IN VARCHAR2 DEFAULT NULL);
exec dbms_drs.check_connect('ORABASE_DR', 'ORABASE1');

PL/SQL procedure successfully completed.
 
CHECK_CONNECT_NETADDR (new 23ai)
Validates the network connectivity to the specified member dbms_drs.check_connect_netaddr(
netaddr IN  VARCHAR2,
outdoc  OUT VARCHAR2);
TBD
 
CONTROL_CONFIGURATION
Forwards an operation to one or all configurations dbms_drs.control_configuration(
op_code        IN VARCHAR2,
config_name    IN VARCHAR2,
all_config     IN BOOLEAN DEFAULT FALSE,
property_name  IN VARCHAR2,
property_value IN VARCHAR2)
RETURN BINARY_INTEGER;
TBD
 
CONVERT_TO_PHYSICAL (new 23ai overloads)
Converts a snapshot standby database to a physical standby database

Overload 1
dbms_drs.convert_to_physical(db_name IN VARCHAR2) RETURN BINARY_INTEGER;
SELECT dbms_drs.convert_to_physical('TEST23DB');
Severity is either ORA-0, ORA-16501, or ORA-16502

Overload 2
dbms_drs.convert_to_physical(
db_name  IN  VARCHAR2,
severity OUT BINARY_INTEGER)
RETURN BINARY_INTEGER;
TBD
client operation table with instructions for actions required before the convert operation can be completed

Overload 3
dbms_drs.convert_to_physical(
db_name  IN  VARCHAR2,
op_table OUT VARCHAR2)
RETURN BINARY_INTEGER;
TBD
 
CONVERT_TO_SNAPSHOT (new 23ai overload)
Converts a physical standby database to a snapshot standby database dbms_drs.convert_to_snapshot(db_name IN VARCHAR2) RETURN BINARY_INTEGER;
SELECT dbms_drs.convert_to_snapshot('TEST23DB');
Severity is either ORA-0, ORA-16501, or ORA-16502

Overload 2
dbms_drs.convert_to_snapshot(
db_name  IN  VARCHAR2,
severity OUT BINARY_INTEGER)
RETURN BINARY_INTEGER;
TBD
 
CREATE_CONFIGURATION (new 23ai overload)
Creates a Broker configuration. The primary database will be automatically added to the configuration by this procedure. Must be called on a primary database.

Overload 1
dbms_drs.create_configuration(
config_name IN VARCHAR2,
primary_ci  IN VARCHAR2)
RETURN BINARY_INTEGER;
TBD
Severity is either ORA-0, ORA-16501, or ORA-16502

Overload 2
dbms_drs.create_configuration(
config_name IN  VARCHAR2,
primary_ci  IN  VARCHAR2,
severity    OUT BINARY_INTEGER)
RETURN BINARY_INTEGER;
TBD
 
CREATE_CONFIGURATION_RAW (new 23ai)
Creates a Broker configuration with a RAW data type configuration name. dbms_drs.create_configuration_raw(
config_name IN  RAW,
primary_ci  IN  VARCHAR2,
severity    OUT BINARY_INTEGER)
RETURN BINARY_INTEGER;
TBD
 
DELETE_REQUEST
Delete Request (blocking) dbms_drs.delete_request(rid IN INTEGER);
See Demos At Page Bottom
 
DGPDB_ADD (new 23ai)
Adds a Data Guard PDB dbms_drs.dgpdb_add(
target_pdb_name       IN  VARCHAR2,
target_cdb_name       IN  VARCHAR2,
source_pdb_name       IN  VARCHAR2,
source_cdb_name       IN  VARCHAR2,
pdb_file_name_convert IN  VARCHAR2,
create_pdb_options    IN  VARCHAR2 DEFAULT NULL,
severity              OUT BINARY_INTEGER)
RETURN BINARY_INTEGER;
???
 
DGPDB_FAILOVER
Used to failover to a DGPDB dbms_drs.dgpdb_failover(
pdb_name  IN VARCHAR2,
cdb_name  IN VARCHAR2,
fo_option IN BINARY_INTEGER DEFAULT 0)
RETURN BINARY_INTEGER;
SELECT dbms_drs.dgpdb_failover('PDBPROD', 'TEST23DB', 0);
 
DGPDB_REINSTATE (new 23ai)
Reinstates a DGPDB dbms_drs.dgpdb_reinstate(
pdb_name      IN VARCHAR2,
cdb_name      IN VARCHAR2,
reinst_option IN BINARY_INTEGER DEFAULT 0)
RETURN BINARY_INTEGER;
SELECT dbms_drs.dgpdb_reinstate('PDBPROD', 'TEST23DB', 0)
 
DGPDB_REMOVE
Used to remove a DGPDB dbms_drs.dgpdb_remove(
pdb_name  IN  VARCHAR2,
cdb_name  IN  VARCHAR2,
rm_option IN  BINARY_INTEGER DEFAULT 0,
severity  OUT BINARY_INTEGER)
RETURN BINARY_INTEGER;
DECLARE
 outVal BINARY_INTEGER;
BEGIN
  dbms_drs.dgpdb_failover('PDBPROD', 'TEST23DB', 0, outVal);
  dbms_output.put_line(outVal);
END;
/
 
DGPDB_SHOW (new 23ai)
Show Data Guard protection details for either a specified pluggable database or all pluggable databases dbms_drs.dgpdb_show(
pdb_name IN  VARCHAR2,
cdb_name IN  VARCHAR2,
options  IN  VARCHAR2,
outdoc   OUT VARCHAR2)
RETURN BINARY_INTEGER;
TBD
 
DGPDB_SWITCHOVER
Used to switchover to a DGPDB dbms_drs.dgpdb_switchover(
pdb_name IN VARCHAR2,
cdb_name IN VARCHAR2)
RETURN BINARY_INTEGER;
SELECT dbms_drs.dgpdb_switchover('PDBPROD', 'TEST23DB');
 
DGPDB_VALIDATE (new 23ai)
Validates a DG PDB dbms_drs.dgpdb_validate(
pdb_name    IN VARCHAR2,
cdb_name    IN VARCHAR2,
vldt_option IN BINARY_INTEGER DEFAULT 0)
RETURN BINARY_INTEGER;
TBD
 
DG_BROKER_INFO
Returns Data Guard Broker Information dbms_drs.dg_broker_info(info_name IN VARCHAR2) RETURN VARCHAR2;
SELECT dbms_drs.dg_broker_info('DMONREADY');

SELECT dbms_drs.dg_broker_info('VERSION');
 
DISABLE (new 23ai overload)
From the primary DB disables Broker management of a member within the Broker configuration

Overload 1
dbms_drs.disable(member_name IN VARCHAR2) RETURN BINARY_INTEGER;
TBD
Overload 2 dbms_drs.disable(
member_name IN  VARCHAR2,
severity    OUT BINARY_INTEGER)
RETURN BINARY_INTEGER;
TBD
 
DISABLE_CONFIGURATION (new 23ai overload)
Disables Broker management of the current configuration dbms_drs.disable_configuration RETURN BINARY_INTEGER;
SELECT dbms_drs.disable_configuration;
Overload 2 dbms_drs.disable_configuration(severity OUT BINARY_INTEGER) RETURN BINARY_INTEGER;
TBD
 
DISABLE_DATABASE (new 23ai overload)
From the primary DB disables Broker management of a database within the Broker configuration dbms_drs.disable_database(database_name IN VARCHAR2) RETURN BINARY_INTEGER;
SELECT dbms_drs.disable_database('TEST23DB');

PL/SQL procedure successfully completed.
Overload 2 dbms_drs.disable_database(
database_name IN VARCHAR2,
severity OUT BINARY_INTEGER)
RETURN BINARY_INTEGER;
TBD
 
DISABLE_FAR_SYNC (new 23ai overload)
From the primary DB disables Broker management of a far sync instance within the Broker configuration dbms_drs.disable_far_sync(far_sync_name IN VARCHAR2) RETURN BINARY_INTEGER;
TBD
Overload 2 dbms_drs.disable_far_sync(
far_sync_name IN  VARCHAR2,
severity      OUT BINARY_INTEGER)
RETURN BINARY_INTEGER;
TBD
 
DISABLE_FS_FAILOVER (new 23ai overload)
Disables Fast Start Failover dbms_drs.disable_fs_failover(force IN BOOLEAN DEFAULT FALSE) RETURN BINARY_INTEGER;
SELECT dbms_drs.disable_fs_failover(TRUE);
Overload 2 dbms_drs.disable_fs_failover(
force    IN  BOOLEAN DEFAULT FALSE,
severity OUT BINARY_INTEGER)
RETURN BINARY_INTEGER;
TBD
 
DISABLE_FS_FAILOVER2
Used to disable fast-start failover dbms_drs.disable_fs_failover2(force IN BINARY_INTEGER DEFAULT 0) RETURN BINARY_INTEGER;
SELECT dbms_drs.disable_fs_failover2;
 
DISABLE_FS_FAILOVER_CONDITION (new 23ai overload)
Used to disable a fast-start failover condition dbms_drs.disable_fs_failover_condition(condition IN VARCHAR2) RETURN BINARY_INTEGER;
TBD
Overload 2 dbms_drs.disable_fs_failover_condition(
condition IN  VARCHAR2,
severity  OUT BINARY_INTEGER)
RETURN BINARY_INTEGER;
TBD
 
DO_CONTROL
Control blocking API
Obsolete: Use DO_CONTROL_RAW

Overload 1
dbms_drs.do_control(
indoc      IN     VARCHAR2,
outdoc        OUT VARCHAR2,
request_id IN OUT INTEGER,
piece      IN     INTEGER,
context    IN     VARCHAR2 DEFAULT NULL);
See Demos At Page Bottom
Obsolete: For test use only
Overload 2
dbms_drs.do_control(indoc IN VARCHAR2) RETURN INTEGER;
See Demos At Page Bottom
 
DO_CONTROL_RAW
Control blocking API designed for solving NLS problems. Is a blocking call that sends a DG Broker control request.

Overload 1
dbms_drs.do_control_raw(
indoc      IN     RAW,
outdoc        OUT RAW,
request_id IN OUT INTEGER,
piece      IN     INTEGER,
context    IN     VARCHAR2 DEFAULT NULL,
client_id  IN     INTEGER  DEFAULT 0);
TBD
Overload 2 dbms_drs.do_control_raw(indoc IN RAW) RETURN INTEGER;
TBD
 
DO_CONTROL_RAW_NORID
Called by a Broker client (DGMGRL or EM) to submit a non-blocking request that's NLS compliant to the Broker dbms_drs.do_control_raw_norid(indoc IN RAW);
TBD
 
DO_OBSERVE
Observer operation API - observer's operation to control FSFO since 12.2. (replaces Ping, ReadyToFailover, and StateChangeRecorded) dbms_drs.do_observe (
indoc  IN  RAW,
outdoc OUT RAW);
TBD
 
DUMP_BROKER
Dumps critical internal data of the Broker process to a file dbms_drs.dump_broker(
dump_type IN  BINARY_INTEGER,
oStatus   OUT VARCHAR2);
DECLARE
 outVal VARCHAR2(60);
BEGIN
  dbms_drs.dump_broker('RFRDM_DO_CURRENT', outVal);
  dbms_output.put_line(outVal);
END;
/
DUMP_META
DUMP data guard Broker metadata file content into a readable text file dbms_drs.dump_meta(
options  IN INTEGER,
metafile IN VARCHAR2,
dumpfile IN VARCHAR2);
DECLARE
 outVal VARCHAR2(120);
BEGIN
  dbms_drs.dump_meta(1, NULL, '/home/oracle/dump_meta.log');
END;
/

PL/SQL procedure successfully completed.
 
DUMP_OBSERVER
Dumps critical internal data of client-side observer process to a file dbms_drs.dump_observer(
all_ob  IN  BOOLEAN,
ob_name IN  VARCHAR2,
oStatus OUT VARCHAR2);
DECLARE
 outVal VARCHAR2(60);
BEGIN
  dbms_drs.dump_observer(TRUE, 'ORABASE_OBS1', outVal);
  dbms_output.put_line(outVal);
END;
/

PL/SQL procedure successfully completed.
 
EDIT_TAG (new 23ai overload)
Edit the tag key-value of a member dbms_drs.edit_tag(
opcode   IN  VARCHAR2,
config   IN  VARCHAR2,
member   IN  VARCHAR2,
tag_name IN  VARCHAR2,
value    IN  VARCHAR2,
severity OUT BINARY_INTEGER)
RETURN BINARY_INTEGER;
TBD
 
ENABLE
Used, from the primary db, to enable Broker management of a member within the Broker configuration dbms_drs.enable(member_name IN VARCHAR2) RETURN BINARY_INTEGER;
TBD
Overload 2 dbms_drs.edit(
member_name IN  VARCHAR2,
severity    OUT BINARY_INTEGER)
RETURN BINARY_INTEGER;
TBD
 
ENABLE_CONFIGURATION (new 23ai overload)
Enables Broker management of a Data Guard configuration. It must be called on the primary database. Return 0 means enable was successful, otherwise returns an error number.

Overload 1
dbms_drs.enable_configuration RETURN BINARY_INTEGER;
SELECT dbms_drs.enable_configuration;
Overload 2 dbms_drs.enable_configuration(severity OUT BINARY_INTEGER) RETURN BINARY_INTEGER;
TBD
 
ENABLE_DATABASE (new 23ai overload)
Used to enable Broker management of a database within the Broker configuration. It must be called on the primary database.

Overload 1
dbms_drs.enable_database(database_name in VARCHAR2) RETURN BINARY_INTEGER;
SELECT dbms_drs.enable_database('ORABASE');
Overload 2 dbms_drs.enable_database(
database_name IN  VARCHAR2,
severity      OUT BINARY_INTEGER)
RETURN BINARY_INTEGER;
TBD
 
ENABLE_FAR_SYNC (new 23ai overload)
Enable Broker management of a far sync instance within the Broker configuration. It must be called on the primary database.

Overload 1
dbms_drs.enable_far_sync(far_sync_name in VARCHAR2) RETURN BINARY_INTEGER;
SELECT dbms_drs.enable_database('ORABASE_FS');
Overload 2 dbms_drs.enable_database(
far_sync_name IN  VARCHAR2,
severity      OUT BINARY_INTEGER)
RETURN BINARY_INTEGER;
TBD
 
ENABLE_FS_FAILOVER (new 23ai overloads)
Used to enable fast-start failover

Overload 1
dbms_drs.enable_fs_failover RETURN BINARY_INTEGER;
SELECT dbms_drs.enable_fs_failover;
Overload 2 dbms_drs.enable_fs_failover(observe_only IN BINARY_INTEGER) RETURN BINARY_INTEGER;
TBD
Overload 3 dbms_drs.enable_fs_failover(
observe_only IN  BINARY_INTEGER,
severity     OUT BINARY_INTEGER)
RETURN BINARY_INTEGER;
TBD
 
ENABLE_FS_FAILOVER_CONDITION (new 23ai overload)
Enables a fast-start failover condition

Overload 1
dbms_drs.enable_fs_failover_condition(condition IN VARCHAR2) RETURN BINARY_INTEGER;
TBD
Overload 2 dbms_drs.enable_fs_failover_condition(
condition IN  VARCHAR2,
severity  OUT BINARY_INTEGER)
RETURN BINARY_INTEGER;
TBD
 
FAILOVER (new 23ai overload)
Performs a database failover operation dbms_drs.failover(
db_name       IN VARCHAR2,
failover_type IN VARCHAR2 DEFAULT NULL) -- COMPLETE or IMMEDIATE
RETURN BINARY_INTEGER;
SELECT dbms_drs.failover('TEST23DB', 'COMPLETE');
Overload 2 dbms_drs.failover(
db_name       IN  VARCHAR2,
failover_type IN  VARCHAR2 DEFAULT NULL,
severity      OUT BINARY_INTEGER)
RETURN BINARY_INTEGER;
TBD
 
FS_FAILOVER_FOR_HC_COND
Undocumented
Overload 1
dbms_drs.fs_failover_for_hc_cond(
hc_cond IN  BINARY_INTEGER,
status  OUT BINARY_INTEGER);
TBD
Overload 2 dbms_drs.fs_failover_for_hc_cond(hc_cond IN BINARY_INTEGER) RETURN BOOLEAN;
TBD
 
GET_CONFIGURATION_PROPERTY (new 23ai overload)
Called by a Broker client to fetch a configuration-level property dbms_drs.get_configuration_property(
property_name IN  VARCHAR2,
value         OUT VARCHAR2)
RETURN BINARY_INTEGER;
TBD
Overload 2 dbms_drs.get_configuration_property(
property_name IN  VARCHAR2,
value         OUT VARCHAR2,
severity      OUT BINARY_INTEGER)
RETURN BINARY_INTEGER;
TBD
 
GET_CONN_DESC (new 23ai)
Returns a connect descriptor that NSVs use when connecting a remote member or instance dbms_drs.get_conn_desc(
member_name   IN VARCHAR2,
instance_name IN VARCHAR2 DEFAULT NULL)
RETURN VARCHAR2;
TBD
 
GET_ENV (new 23ai)
Evaluate an environment variable for use in MOUNT mode when dbms_system.get_env() doesn't work dbms_drs.get_env(env_name IN VARCHAR2) RETURN VARCHAR2;
TBD
 
GET_PROPERTY
Get a named property. This function is equivalent to using getid to return the object id, followed by a <do_monitor><property> request. dbms_drs.get_property(
site_name     IN VARCHAR2,
resource_name IN VARCHAR2,
property_name IN VARCHAR2)
RETURN VARCHAR2;
TBD
 
GET_PROPERTY2 (new 23ai overload)
Called by a Broker client to fetch a property value by specifying a member name dbms_drs.get_property2(
member_name   IN  VARCHAR2,
property_name IN  VARCHAR2,
value         OUT VARCHAR2)
RETURN BINARY_INTEGER;
TBD
Overload 2 dbms_drs.get_property2(
member_name   IN  VARCHAR2,
property_name IN  VARCHAR2,
value         OUT VARCHAR2,
severity      OUT BINARY_INTEGER)
RETURN BINARY_INTEGER;
TBD
 
GET_PROPERTY_OBJ
Get a named property. Equivalent to a <DO_MONITOR><PROPERTY> request and parsing the resulting string. dbms_drs.get_property_obj(
object_id     IN INTEGER,
property_name IN VARCHAR2)
RETURN VARCHAR2;
TBD
 
GET_RESPONSE
Get Result (non-blocking) - OBSOLETE, for test use only dbms_drs.get_response(
rid   IN INTEGER,
piece IN INTEGER)
RETURN VARCHAR2;
See Demos At Page Bottom
 
GET_RESPONSE_RAW
Returns the result of a non-blocking command. If the command hasn't finished or the piece is beyond the end of the document returns NULL. dbms_drs.get_response_raw(
rid   IN INTEGER,
piece IN INTEGER)
RETURN RAW;
TBD
 
HEALTH_CHECK
Performs a Broker health check dbms_drs.health_check RETURN BINARY_INTEGER;
SELECT dbms_drs.health_check;

HEALTH_CHECK
------------
       16525
 
INITIATE_FS_FAILOVER (new 23ai overload)
Initiate Fast Start Failover

Overload 1
dbms_drs.initiate_fs_failover(condstr IN VARCHAR2) RETURN BINARY_INTEGER;
TBD
Overload 2 dbms_drs.initiate_fs_failover(
condstr IN  VARCHAR2,
status  OUT BINARY_INTEGER);
TBD
 
METADATA_FILE
This function is used to export/import metadata to/from a file dbms_drs.metadata_file(
type      IN BINARY_INTEGER, -- RFRDM_DO_EXPORT_META or RFRDM_DO_IMPORT_META
file_name IN VARCHAR2)
RETURN BINARY_INTEGER;
DECLARE
 retVal BINARY_INTEGER;
BEGIN
  retVal := dbms_drs.metadata_file('RFRDM_DO_EXPORT_META', 'uw_metadata_file.dmp');
  dbms_output.put_line(TO_CHAR(retVal));
END;
/
 
PING
The old ping procedure that was used in 12.1.0.1 and prior to 11.2.0.4

Overload 1
dbms_drs.ping(
iObid    IN  BINARY_INTEGER,
iVersion IN  BINARY_INTEGER,
iFlags   IN  BINARY_INTEGER,
iMiv     IN  BINARY_INTEGER,
oVersion OUT BINARY_INTEGER,
oFlags   OUT BINARY_INTEGER,
oFoCond  OUT VARCHAR2,
oStatus  OUT BINARY_INTEGER);
TBD
Ping procedure since 12.1.0.2 (and 11.2.0.4) and now obsolete as of 12.2

Overload 2k
dbms_drs.ping(
iObid     IN  BINARY_INTEGER,
iVersion  IN  BINARY_INTEGER,
iFlags    IN  BINARY_INTEGER,
iMiv      IN  BINARY_INTEGER,
iWaitStat IN  BINARY_INTEGER,
oVersion  OUT BINARY_INTEGER,
oFlags    OUT BINARY_INTEGER,
oFoCond   OUT VARCHAR2,
oStatus   OUT BINARY_INTEGER);
TBD
 
READYTOFAILOVER
Undocumented dbms_drs.ReadyToFailover(
iObid    IN  BINARY_INTEGER,
iVersion IN  BINARY_INTEGER,
iFlags   IN  BINARY_INTEGER,
iMiv     IN  BINARY_INTEGER,
iFoCond  IN  VARCHAR2,
oStatus  OUT BINARY_INTEGER);
TBD
 
REINSTATE (new 23ai overloads)
Reinstate a database in the Broker configuration dbms_drs.reinstate(db_name IN VARCHAR2) RETURN BINARY_INTEGER;
SELECT dbms_drs.reinstate('TEST23DB');
Overload 2 dbms_drs.reinstate(
db_name  IN  VARCHAR2,
severity OUT BINARY_INTEGER)
RETURN BINARY_INTEGER;
TBD
Overload 3 dbms_drs.reinstate(op_table OUT VARCHAR2) RETURN BINARY_INTEGER;
TBD
 
REMOVE (new 23ai overload)
From the primary DB removes a member from the Broker configuration

Overload 1
dbms_drs.remove(
member_name          IN VARCHAR2,
preserve_destination IN BOOLEAN DEFAULT FALSE)
RETURN BINARY_INTEGER;
TBD
Overload 2 dbms_drs.remove(
member_name          IN  VARCHAR2,
preserve_destination IN  BOOLEAN DEFAULT FALSE,
severity             OUT BINARY_INTEGER)
RETURN BINARY_INTEGER;
TBD
 
REMOVE2
From the primary DB removes a member from the Broker configuration dbms_drs.remove2(
member_name          IN VARCHAR2,
preserve_destination IN BINARY_INTEGER DEFAULT 0)
RETURN BINARY_INTEGER;
TBD
 
REMOVE_CONFIGURATION (new 23ai overloads)
From the primary DB removes a Broker configuration

Overload 1
dbms_drs.remove_configuration(preserve_destinations IN BOOLEAN DEFAULT FALSE)
RETURN BINARY_INTEGER;
DECLARE
 retVal BINARY_INTEGER;
BEGIN
  retVal := dbms_drs.remove_configuration(FALSE);
  dbms_output.put_line(retVal);
END;
/
Overload 2 dbms_drs.remove_configuration(
preserve_destinations IN  BOOLEAN DEFAULT FALSE,
severity              OUT BINARY_INTEGER)
RETURN BINARY_INTEGER;
TBD
Overload 3 dbms_drs.remove_configuration(name IN VARCHAR2) RETURN BINARY_INTEGER;
TBD
 
REMOVE_CONFIGURATION2
From the primary DB removes a Broker configuration dbms_drs.remove_configuration2(preserve_destinations IN BINARY_INTEGER DEFAULT 0)
RETURN BINARY_INTEGER;
DECLARE
 retVal BINARY_INTEGER;
BEGIN
  retVal := dbms_drs.remove_configuration(1);
  dbms_output.put_line(retVal);
END;
/
 
REMOVE_DATABASE
Removes a database from the Broker configuration. It must be called on the primary database dbms_drs.emove_database(
database_name        IN VARCHAR2,
preserve_destination IN BOOLEAN DEFAULT FALSE)
RETURN BINARY_INTEGER;
SELECT dbms_drs.remove_database('ORABASE2', TRUE);
 
REMOVE_DATABASE2
Removes a database from the Broker configuration. It must be called on the primary database dbms_drs.remove_database2(
database_name        IN VARCHAR2,
preserve_destination IN BINARY_INTEGER DEFAULT 0)
RETURN BINARY_INTEGER;
SELECT dbms_drs.remove_database2('TEST23DB', 0);
 
REMOVE_FAR_SYNC
Removes a far sync instance from the Broker configuration. It must be called on the primary database. dbms_drs.remove_far_sync(
far_sync_name        IN VARCHAR2,
preserve_destination IN BOOLEAN DEFAULT FALSE)
RETURN BINARY_INTEGER;
SELECT dbms_drs.remove_far_sync('ORADATA_FS', FALSE);
 
REMOVE_FAR_SYNC2
Called from the primary DB removes a far sync instance from the Broker configuration dbms_drs.remove_far_sync2(
far_sync_name        IN VARCHAR2,
preserve_destination IN BINARY_INTEGER DEFAULT 0)
RETURN BINARY_INTEGER;
TBD
 
REMOVE_INSTANCE (new 23ai overload)
Removes an instance from a member of the Broker configuration

Overload 1
dbms_drs.remove_instance(
member_name   IN VARCHAR2,
instance_name IN VARCHAR2)
RETURN BINARY_INTEGER;
TBD
Overload 2 dbms_drs.remove_instance(
member_name   IN  VARCHAR2,
instance_name IN  VARCHAR2,
severity      OUT BINARY_INTEGER)
RETURN BINARY_INTEGER;
TBD
 
REPLACE_MEMBER_NAME_IN_PROPS
Replaces a member name with another member name in all Broker properties dbms_drs.replace_member_name_in_props(
old_member_name IN VARCHAR2,
new_member_name IN VARCHAR2)
RETURN BINARY_INTEGER;
SELECT dbms_drs.remove_far_sync('ORCL', 'ORABASE');
 
RESET_CONFIGURATION_PROPERTY (new 23ai overload)
Resets configuration-level property, not database or far sync instance property, to its default value dbms_drs.reset_configuration_property(property_name IN VARCHAR2) RETURN BINARY_INTEGER;
TBD
Overload 2 dbms_drs.reset_configuration_property(
property_name IN  VARCHAR2,
severity      OUT BINARY_INTEGER)
RETURN BINARY_INTEGER;
TBD
 
RESET_DATABASE_PROPERTY (new 23ai overload)
Resets a database configurable property to its default value

Overload 1
dbms_drs.reset_database_property(
database_name IN VARCHAR2,
property_name IN VARCHAR2)
RETURN BINARY_INTEGER;
TBD
Overload 2 dbms_drs.reset_database_property(
database_name IN  VARCHAR2,
property_name IN  VARCHAR2,
severity      OUT VARCHAR2)
RETURN BINARY_INTEGER;
TBD
 
RESET_FAR_SYNC_PROPERTY (new 23ai overload)
Resets a far sync instance configurable property to its default value

Overload 1
dbms_drs.reset_far_sync_property(
far_sync_name IN VARCHAR2,
property_name IN VARCHAR2)
RETURN BINARY_INTEGER;
TBD
Overload 2 dbms_drs.reset_far_sync_property(
far_sync_name IN  VARCHAR2,
property_name IN  VARCHAR2,
severity      OUT BINARY_INTEGER)
RETURN BINARY_INTEGER;
TBD
 
RESET_PROPERTY (new 23ai overload)
Resets a member configurable property to its default value

Overload 1
dbms_drs.reset_property(
member_name   IN VARCHAR2,
property_name IN VARCHAR2)
RETURN BINARY_INTEGER;
TBD
Overload 2 dbms_drs.reset_property(
member_name   IN  VARCHAR2,
property_name IN  VARCHAR2,
severity      OUT VARCHAR2)
RETURN BINARY_INTEGER;
TBD
 
SET_CONFIGURATION_PROPERTY (new 23ai overload)
Sets a configuration-level property (not a database or far sync property). Can be used to set both integer and character string properties.

Overload 1
dbms_drs.set_configuration_property(
property_name IN VARCHAR2,
value         IN VARCHAR2)
RETURN BINARY_INTEGER;
TBD
Overload 2 dbms_drs.set_configuration_property(
property_name IN  VARCHAR2,
value         IN  VARCHAR2,
severity      OUT BINARY_INTEGER)
RETURN BINARY_INTEGER;
TBD
 
SET_CONFIGURATION_PROPERTY_RAW (new 23ai overload)
Sets a configuration-level property (i.e. not a property of a database or far sync instance. Can be used to set both integer and character string properties. dbms_drs.set_configuration_property_raw(
property_name IN  VARCHAR2,
value         IN  RAW,
severity      OUT BINARY_INTEGER)
RETURN BINARY_INTEGER;
TBD
 
SET_CONFIGURATION_SOURCE
Set redo transport to a target configuration dbms_drs.set_configuration_source(
src_name    IN VARCHAR2,
target_name IN VARCHAR2,
clear       IN BOOLEAN)
RETURN BINARY_INTEGER;
TBD
 
SET_DATABASE_PROPERTY (new 23ai overload)
Used to set a database configurable property. Can be used to set both integer and character string properties. dbms_drs.set_database_property(
database_name IN VARCHAR2,
property_name IN VARCHAR2,
value         IN VARCHAR2)
RETURN BINARY_INTEGER;
TBD
Overload 2 dbms_drs.set_database_property(
database_name IN  VARCHAR2,
property_name IN  VARCHAR2,
value         IN  VARCHAR2,
severity      OUT BINARY_INTEGER)
RETURN BINARY_INTEGER;
TBD
 
SET_DGPDB_STATE
Sets the state of a DGPDB dbms_drs.set_dgpdb_state(
pdb_name   IN VARCHAR2,
cdb_name   IN VARCHAR2,
state_name IN VARCHAR2)
RETURN BINARY_INTEGER;
TBD
 
SET_FAR_SYNC_PROPERTY (new 23ai overload)
Used to set a far sync instance's configurable property. Can be used to set both integer and character string properties.

Overload 1
dbms_drs.set_far_sync_property(
far_sync_name IN VARCHAR2,
property_name IN VARCHAR2,
value         IN VARCHAR2)
RETURN BINARY_INTEGER;
TBD
Overload 2 dbms_drs.set_far_sync_property(
far_sync_name IN  VARCHAR2,
property_name IN  VARCHAR2,
value         IN  VARCHAR2,
severity      OUT BINARY_INTEGER)
RETURN BINARY_INTEGER;
TBD
 
SET_PROPERTY (new 23ai overload)
Sets a member configurable property.

Overload 1
dbms_drs.set_property(
member_name   IN VARCHAR2,
property_name IN VARCHAR2,
value         IN VARCHAR2)
RETURN BINARY_INTEGER;
TBD
Overload 2 dbms_drs.set_property(
member_name   IN  VARCHAR2,
property_name IN  VARCHAR2,
value         IN  VARCHAR2,
severity      OUT BINARY_INTEGER)
RETURN BINARY_INTEGER;
TBD
 
SET_PROPERTY_RAW (new 23ai)
Use to set a member configurable property with a RAW value dbms_drs.set_property_raw(
member_name   IN  VARCHAR2,
property_name IN  VARCHAR2,
value         IN  RAW,
severity      OUT BINARY_INTEGER)
RETURN BINARY_INTEGER;
TBD
 
SET_PROTECTION_MODE (new 23ai overload)
Changes the protection mode to the mode specified. To prevent including database restart logic this procedure does not support the promotion of the protection mode from maximum performance to maximum protection.

Overload 1
dbms_drs.set_protection_mode(protection_mode IN VARCHAR2) RETURN BINARY_INTEGER;
SELECT dbms_drs.set_protection_mode('MaxPerformance');

SELECT dbms_drs.set_protection_mode('MaxAvailability');

SELECT dbms_drs.set_protection_mode('MaxProtection');
Overload 2 dbms_drs.set_protection_mode(
protection_mode IN  VARCHAR2,
severity        OUT BINARY_INTEGER)
RETURN BINARY_INTEGER;
TBD
 
SET_STATE_APPLY_OFF (new 23ai overload)
changes the member's state to APPLY-OFF

Overload 1
dbms_drs.set_state_apply_off(member_name IN VARCHAR2) RETURN BINARY_INTEGER;
TBD
Overload 2 dbms_drs.set_state_apply_off(
member_name IN  VARCHAR2,
severity    OUT BINARY_INTEGER)
RETURN BINARY_INTEGER;
TBD
 
SET_STATE_APPLY_ON (new 23ai overload)
changes the member's state to APPLY-ON

Overload 1
dbms_drs.set_state_apply_on(
member_name    IN VARCHAR2,
apply_instance IN VARCHAR2 DEFAULT NULL)
RETURN BINARY_INTEGER;
TBD
Overload 2 dbms_drs.set_state_apply_on(
member_name    IN  VARCHAR2,
apply_instance IN  VARCHAR2 DEFAULT NULL,
severity       OUT BINARY_INTEGER)
RETURN BINARY_INTEGER;
TBD
 
SET_STATE_TRANSPORT_OFF (new 23ai overload)
changes the member's state to TRANSPORT-OFF

Overload 1
dbms_drs.set_state_transport_off(member_name IN VARCHAR2) RETURN BINARY_INTEGER;
TBD
Overload 2 dbms_drs.set_state_transport_off(
member_name IN  VARCHAR2,
severity    OUT BINARY_INTEGER)
RETURN BINARY_INTEGER;
TBD
 
SET_STATE_TRANSPORT_ON (new 23ai overload)
changes the member's state to TRANSPORT-ON

Overload 1
dbms_drs.set_state_transport_on(member_name IN VARCHAR2) RETURN BINARY_INTEGER;
TBD
Overload 2 dbms_drs.set_state_transport_on(
member_name IN  VARCHAR2,
severity    OUT BINARY_INTEGER)
RETURN BINARY_INTEGER;
TBD
 
SHOW_TAG (new 23ai)
Returns a tag value dbms_drs.show_tag(
opcode   IN  VARCHAR2,
config   IN  VARCHAR2,
member   IN  VARCHAR2,
tag_name IN  VARCHAR2,
value    OUT VARCHAR2,
severity OUT BINARY_INTEGER)
RETURN BINARY_INTEGER;
TBD
 
SLEEP
Suspends the session for a given period of time. Appears identical to DBMS_LOCK.SLEEP. dbms_drs.sleep(seconds IN INTEGER);
exec dbms_drs.sleep(10);

PL/SQL procedure successfully completed.
 
STARTUP_FOR_RELOCATE
Call when an instance is started by a relocate operation. The other instance will be stopped in short order. If this is a standby database, it gracefully relocates the apply services to the instance being started. If this is a standby supporting Maximum Protection mode, it deregisters the other instance as the critical instance and register this instance so the shutdown can proceed smoothly while ensuring the primary continues to be protected. dbms_drs.startup_for_relocate;
exec dbms_drs.startup_for_relocate;

PL/SQL procedure successfully completed.
 
STATECHANGERECORDED
Obsolete as of 12.2: Called by the observer to indicate that it has locally persisted a state change. The database is free to persist dbms_drs.statechangerecorded(
iObid    IN BINARY_INTEGER,
iVersion IN BINARY_INTEGER);
TBD
 
STOP_OBSERVER (new 23ai overload)
Stops the fast-start failover observers in a DG Broker configuration

Overload 1
dbms_drs.stop_observer(ob_name IN VARCHAR2) RETURN BINARY_INTEGER;
SELECT dbms_drs.stop_observer('UWObserver');
Overload 2 dbms_drs.stop_observer(
ob_name  IN  VARCHAR2,
severity OUT BINARY_INTEGER)
RETURN BINARY_INTEGER;
TBD
 
SWITCHOVER (new 23ai overload)
Performs a database switchover operation

Overload 1
dbms_drs.switchover(
db_name   IN VARCHAR2,
wait      IN BINARY_INTEGER DEFAULT 0,
wait_time IN BINARY_INTEGER DEFAULT -1)
RETURN BINARY_INTEGER;
SELECT dbms_drs.switchover('TEST23DB', 1, -1);
Overload 2

New overload
dbms_drs.switchover(
db_name   IN  VARCHAR2,
wait      IN  BINARY_INTEGER DEFAULT 0,
wait_time IN  BINARY_INTEGER DEFAULT -1,
severity  OUT BINARY_INTEGER)
RETURN BINARY_INTEGER;
TBD
Overload 3

Repositioned from overload 2
dbms_drs.switchover(
db_name   IN  VARCHAR2,
op_table  OUT VARCHAR2,
wait      IN  BINARY_INTEGER DEFAULT 0,
wait_time IN  BINARY_INTEGER DEFAULT -1)
RETURN BINARY_INTEGER;
TBD
 
TRANSLATE_CI (new 23ai)
Translates a connect identifier to a network address dbms_drs.translate_ci(ci IN VARCHAR2) RETURN VARCHAR2;
TBD
 
WAIT
Waits up to the number of seconds specified by the max_wait_time argument for the event specified by the event_type parameter to prevail

Overload 1
dbms_drs.wait(
event_type    IN BINARY_INTEGER,
max_wait_time IN BINARY_INTEGER)
RETURN BINARY_INTEGER;
TBD
Overload 2 dbms_drs.wait(
event_type    IN BINARY_INTEGER,
max_wait_time IN BINARY_INTEGER,
flags         IN BINARY_INTEGER,
set_or_clear  IN BINARY_INTEGER)
RETURN BINARY_INTEGER;
TBD
Overload 3 dbms_drs.wait(
event_type    IN BINARY_INTEGER,
max_wait_time IN BINARY_INTEGER);
TBD
Overload 4 dbms_drs.wait(
event_type    IN BINARY_INTEGER,
max_wait_time IN BINARY_INTEGER,
flags         IN BINARY_INTEGER,
set_or_clear  IN BINARY_INTEGER);
TBD
 
WAIT_SYNC
Used to wait for the specified member to be synchronized. If the keyword ANY is specified, this routine will wait for any destination to be synchronized. This function calls the rfs_wait_sync() ICD to perform the work.

Overload 1
dbms_drs.wait_sync(
member_name   IN VARCHAR2,
affirm        IN BOOLEAN,
max_wait_time IN BINARY_INTEGER)
RETURN BINARY_INTEGER;
TBD
Overload 2 dbms_drs.wait_sync(
member_name   IN VARCHAR2,
affirm        IN BOOLEAN,
max_wait_time IN BINARY_INTEGER);
TBD
 
WRITE_SERVER_LOG (new 23ai)
Writes the provided message to DRC log or foreground process trace file dbms_drs.write_server_log(
message    IN VARCHAR2,
dest       IN BINARY_INTEGER,
trace_mode IN BINARY_INTEGER);
TBD
 
Demos
Non-Blocking Demo set serveroutput on

DECLARE
 rid    INTEGER;
 indoc  VARCHAR2(4000);
 outdoc VARCHAR2(4000);
 p      INTEGER;
BEGIN
  indoc:='<dummy>foo</dummy>';
  rid := dbms_drs.do_control(indoc);
  dbms_output.put_line('Request_id = '|| rid);

  outdoc := NULL;
  p := 1;
  WHILE (outdoc is null) LOOP
    dbms_drs.sleep(0.2);

    outdoc := dbms_drs.get_response(rid, p);
  END LOOP;

  dbms_output.put_line(outdoc);

  BEGIN
    WHILE (outdoc IS NOT NULL)  LOOP
      p := p+1;
      outdoc := dbms_drs.get_response(rid,p);

      dbms_output.put_line(outdoc);
    END LOOP;
  EXCEPTION
    WHEN NO_DATA_FOUND THEN
      NULL;
  END;
  dbms_drs.delete_cancel(rid);
  dbms_drs.delete_request(rid);
END;
/
Blocking Demo set serveroutput on

DECLARE
 rid    INTEGER;
 indoc  VARCHAR2(4000);
 outdoc VARCHAR2(4000);
 p      INTEGER;
BEGIN
  p:=1;
  indoc:='<dummy>foo</dummy>';
  dbms_drs.do_control(indoc, outdoc, rid, p);
  dbms_output.put_line(outdoc);

  p := 2;
  WHILE (rid IS NOT NULL) LOOP
    dbms_drs.do_control(indoc, outdoc, rid, p);
    dbms_output.put_line(outdoc);
    p := p+1;
  END LOOP;
END;
/

Related Topics
Built-in Functions
Built-in Packages
Database Security
Data Guard
DBMS_DG
DGMGRL
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