Oracle DBMS_GSM_DBADMIN
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 Global Service Manager Administration.

There is a lot of fascinating new capability hinted at in this package. Take a close look at the constants and the dependencies.
AUTHID DEFINER
Constants
Name Data Type Value
RAC Status Values
GWM_NORAC (not RAC) PLS_INTEGER 0
GWM_RAC_ADMIN
(admin managed RAC)
PLS_INTEGER 1
GWM_RAC_POLICY
(policy managed RAC)
PLS_INTEGER 2
GWM_RAC_UNKNOWN
(unknown RAC status)
PLS_INTEGER 3
GWM_RAC_SIHA (RAC SIHA) PLS_INTEGER 4
Data Types TYPE target IS RECORD (db_name VARCHAR2(dbms_gsm_common.max_ident),
conn_id VARCHAR2(512),
role    VARCHAR2(30),
dblink  VARCHAR2(256),
jobid   NUMBER);

TYPE target_set IS TABLE OF target;

TYPE chunk_list_t IS TABLE OF NUMBER index by PLS_INTEGER;
Dependencies
ALL_CHUNKS DBMS_GSM_COMMON KU$_STATUS
ALL_OBJECTS DBMS_GSM_DBADMIN_LIB MESSAGE_PARAM_LIST
ALL_SERVICES DBMS_GSM_FIXED OBJ$
ALL_TAB_PARTITIONS DBMS_GSM_UTILITY PARTCOL$
ALL_USERS DBMS_LOCK PLITBLM
CDB_SERVICES DBMS_OUTPUT REGION
CHUNKDATA_TMP DBMS_SERVICE REGION_LIST_T
CHUNKRANGE_LIST_T DBMS_SERVICE_PRVT REGION_T
CHUNKRANGE_T DBMS_SQL SERVICE_DSC_LIST_T
CHUNKS DBMS_SYS_ERROR SERVICE_DSC_T
CLOUD DBMS_UTILITY SERVICE_LIST_T
COL$ DDLID$ SERVICE_T
DATABASE_DSC_T DUAL SHARDKEY_COLUMNS
DATABASE_POOL EXCHANGE SHARD_SPACE
DBA_CONSTRAINTS EXECASUSER SHARD_TS_
DBA_INDEXES EXECUTEDDL TABLESPACE_SET
DBA_IND_PARTITIONS GLOBAL_TABLE TABLE_FAMILY
DBA_IND_SUBPARTITIONS GSM_INFO TS_SET_TABLE
DBA_LOB_PARTITIONS GSM_LIST_T USER_DB_LINKS
DBA_LOB_SUBPARTITIONS GSM_T UTL_INADDR
DBA_PART_TABLES GV$ACTIVE_SERVICES UTL_LMS
DBA_SERVICES GV_$INSTANCE UTL_RAW
DBA_TABLESPACES INSTANCE_LIST_T V$DATABASE
DBA_TAB_PARTITIONS INSTANCE_T V$RESTORE_POINT
DBA_TAB_SUBPARTITIONS KU$_JOBDESC V_$PARAMETER2
DBMS_ASSERT KU$_JOBSTATUS WARNING_LIST_T
DBMS_DATAPUMP KU$_LOGENTRY WARNING_T
DBMS_GSM_CLOUDADMIN KU$_LOGLINE1010  
Documented No
First Available 12.1
Security Model Owned by GSMADMIN_INTERNAL with EXECUTE granted to GGSYS, GSMROOTUSER_ROLE, and GSMUSER_ROLE
Source {ORACLE_HOME}/rdbms/admin/dbmsgwmdb.sql
Subprograms
 
ADDDATABASE
Adds a database to the GDS (Cloud) framework

Overload 1
dbms_gsm_dbadmin.addDatabase(
cloud_name             IN VARCHAR2,
dbpool_name            IN VARCHAR2,
region_name            IN VARCHAR2,
db_number              IN NUMBER,
num_instances_reserved IN NUMBER DEFAULT dbms_gsm_common.max_inst_default,
force                  IN NUMBER DEFAULT dbms_gsm_common.isFalse,
cpu_thresh             IN NUMBER DEFAULT NULL,
srlat_thresh           IN NUMBER DEFAULT NULL,
inShard                IN NUMBER DEFAULT dbms_gsm_common.isFalse,
chunks                 IN NUMBER DEFAULT 0);
TBD
Overload 2 dbms_gsm_dbadmin.addDatabase(dsc IN database_dsc_t);
TBD
 
ADDGSM
Informs the database of a new GSM added to the catalog dbms_gsm_dbadmin.addGSM(
gsm_alias   IN VARCHAR2,
endpoint    IN VARCHAR2,
region_name IN VARCHAR2,
ons_port    IN NUMBER);
TBD
 
ADDREGION
Inform the database of a new region in the catalog dbms_gsm_dbadmin.addRegion(
region_name  IN VARCHAR2,
buddy_region IN VARCHAR2 DEFAULT NULL);
TBD
 
ADDSERVICE
Creates a new global service in the database and CRS dbms_gsm_dbadmin.addService(
service_name              IN  VARCHAR2,
network_name              IN  VARCHAR2,
rlb_goal                  IN  NUMBER   DEFAULT NULL,
clb_goal                  IN  NUMBER   DEFAULT NULL,
distr_trans               IN  NUMBER   DEFAULT NULL,
aq_notifications          IN  NUMBER   DEFAULT NULL,
aq_ha_notifications       IN  NUMBER   DEFAULT NULL,
lag_property              IN  NUMBER   DEFAULT NULL,
max_lag_value             IN  NUMBER   DEFAULT NULL,
failover_method           IN  VARCHAR2 DEFAULT NULL,
failover_type             IN  VARCHAR2 DEFAULT NULL,
failover_retries          IN  NUMBER   DEFAULT NULL,
failover_delay            IN  NUMBER   DEFAULT NULL,
edition                   IN  VARCHAR2 DEFAULT NULL,
pdb                       IN  VARCHAR2 DEFAULT NULL,
commit_outcome            IN  NUMBER   DEFAULT NULL,
retention_timeout         IN  NUMBER   DEFAULT NULL,
replay_initiation_timeout IN  NUMBER   DEFAULT NULL,
session_state_consistency IN  VARCHAR2 DEFAULT NULL,
sql_translation_profile   IN  VARCHAR2 DEFAULT NULL,
locality                  IN  NUMBER   DEFAULT NULL,
region_failover           IN  NUMBER   DEFAULT NULL,
role                      IN  NUMBER   DEFAULT NULL,
proxy_db                  IN  NUMBER   DEFAULT 0,
primary_db                OUT NUMBER);
DECLARE
 serv_name VARCHAR2(30) := 'MLIBSERV';
 netw_name VARCHAR2(30) := 'MLIBNET';
 rlb_goal  NUMBER := dbms_service.goal_service_time;
 clb_goal  NUMBER := dbms_service.clb_goal_short;
 dist_trx  NUMBER := 0;
 aq_notif  NUMBER;
 aq_ha     NUMBER := 1;
 lag_prop  NUMBER;
 max_lagv  NUMBER;
 fail_meth VARCHAR2(6) := dbms_service.failover_method_basic;
 fail_type VARCHAR2(30) := 'TRANSACTION';
 fail_retr NUMBER := 3;
 faildelay NUMBER := 5;
 ed_name   VARCHAR2(30) := 'ORA$BASE';
 pdb       VARCHAR2(30) := NULL;
 commit_oc NUMBER := 1;
 retent_to NUMBER := 86400;
 replay_it NUMBER := 900;
 ses_state VARCHAR2(30);
 sql_trans VARCHAR2(30);
 locality  NUMBER;
 reg_fail  NUMBER;
 role_num  NUMBER;
 proxy_db  NUMBER := 0;
 prim_db   NUMBER;
BEGIN
  gsmadmin_internal.dbms_gsm_dbadmin.addService(serv_name, netw_name, rlb_goal,
  clb_goal, dist_trx, aq_notif, aq_ha, lag_prop, max_lagv, fail_meth, fail_type,
  fail_retr, faildelay, ed_name, pdb, commit_oc, retent_to, replay_it, ses_state,
  sql_trans, locality, reg_fail, role_num, proxy_db, prim_db);
END;
/
addService
process_service_attributes

PL/SQL procedure successfully completed.


col network_name format a20
SELECT name, network_name, creation_date
FROM dba_services
ORDER BY 3;

NAME              NETWORK_NAME  CREATION_DATE
----------------- ------------- --------------------
SYS$BACKGROUND                  08-MAR-2017 15:58:08
SYS$USERS                       08-MAR-2017 15:58:08
orabase2          orabase2      21-JUN-2017 21:02:11
orabase2XDB       orabase2XDB   21-JUN-2017 21:02:11
MLIBSERV          MLIBNET       27-DEC-2017 08:12:59
 
ALTERALLREFFRAGMENTSUNITTEST
Unit test for various alter table ... partition ... statements dbms_gsm_dbadmin.afterAllRefFragmentsUnitTest(
a_owner IN VARCHAR2,
a_name  IN VARCHAR2);
TBD
 
CONFIGOGGREPLICATION
Configures Oracle GoldenGate replications dbms_gsm_dbadmin.configOGGReplication;
exec gsmadmin_internal.dbms_gsm_dbadmin.configOGGReplication;
BEGIN gsmadmin_internal.dbms_gsm_dbadmin.configOGGReplication; END;
*
ERROR at line 1:
ORA-45568: database link to catalog is invalid
ORA-06512: at "SYS.DBMS_SYS_ERROR", line 79
ORA-06512: at "GSMADMIN_INTERNAL.DBMS_GSM_DBADMIN", line 3959
ORA-06512: at "GSMADMIN_INTERNAL.DBMS_GSM_DBADMIN", line 5728
ORA-06512: at line 1

10046 trace was run during the test shown here and revealed the following (reformatted for clarity)

ALTER SESSION SET GLOBAL_NAMES=FALSE
Queries of access$, aud_object_opt$, codeauth$, dependency$, idl_char$, idl_sb4$, idl_ub1$, idl_ub2$, obj$, codeauth$, type$, and view$
A query of v_$Pparameter2 WHERE NAME='_cloud_name'
 
CONTROLCHUNK
According to Oracle "For testing purposes. Not public." dbms_gsm_dbadmin.controlChunk(
chunkid IN BINARY_INTEGER,
op      IN BINARY_INTEGER,
p1      IN BINARY_INTEGER);
TBD
 
CREATERATABLEFAMILY
Enable RAC affinity for sharded table dbms_gsm_dbadmin.createRATableFamily(
shard_owner IN VARCHAR2,
shard_table IN VARCHAR2);
TBD
 
DROPRATABLEFAMILY
Disable RAC affinity dbms_gsm_dbadmin.dropRATableFamily;
exec gsmadmin_internal.dbms_gsm_dbadmin.dropRATableFamily;
 
ENSUREDBLINK
  dbms_gsm_dbadmin.ensureDBLink(
db_name  IN VARCHAR2,
conn_str  IN VARCHAR2,
gsmusrpwd IN VARCHAR2 DEFAULT NULL);
TBD
 
EXECUTEDDLCALLBACK
Executex a DDL statement callback dbms_gsm_dbadmin.executeDDLCallBack;
exec gsmadmin_internal.dbms_gsm_dbadmin.executeDDLCallBack;
 
EXECUTEDDLPRVT
Execute DDL statement dbms_gsm_dbadmin.executeDDLPrvt(
ddlid          IN OUT NUMBER,
schema_name    IN     VARCHAR2,
ddl_text       IN     CLOB     DEFAULT NULL,
operation_type IN     CHAR,
params         IN     VARCHAR2 DEFAULT NULL,
ddlaction      IN     NUMBER   DEFAULT dbms_gsm_common.execddl_default,
runddl            OUT BOOLEAN);
DECLARE
 idVal  NUMBER := 42;
 ddlAct NUMBER := gsmadmin_internal.dbms_gsm_common.execddl_default;
 tfVal  BOOLEAN;
BEGIN
  gsmadmin_internal.dbms_gsm_dbadmin.executeDDLPrvt(idVal, 'SYS\', 'CREATE USER c##zzyzx', 'C', NULL, ddlAct, tfVal);
  IF tfVal THEN
    dbms_output.put_line('T');
  ELSE
    dbms_output.put_line('F');
  END IF;
END;
/
F

PL/SQL procedure successfully completed.

SELECT username FROM dba_users WHERE username LIKE 'C%' ORDER BY 1;

USERNAME
-------------------------
C##ABC
C##OOUG
C##SEC_ADMIN
C##ZZYZX
CTXSYS


-- I tried to grant DBA to the new user and was unable to but that may be the result
-- of using the wrong OPERATION_TYPE parameter rather than this proc being unable to
-- be a major security exploit. Until proven otherwise we recommend grants of execute
-- not be made without first opening an SR.
 
EXECUTEGENERICPROCEDURE
Undocumented dbms_gsm_dbadmin.executeGenericProcedure(
payload       IN  VARCHAR2,
change_type   IN  NUMBER,
response_code OUT NUMBER,
response_info OUT VARCHAR2);
TBD
 
EXPORTMETADATA
Undocumented dbms_gsm_dbadmin.expotMetadata(chunk_id IN NUMBER);
TBD
 
FINISHMOVE
Undocumented dbms_gsm_dbadmin.finishMove(
chunk_id IN BINARY_INTEGER,
db_role  IN BINARY_INTEGER DEFAULT dbms_gsm_common.movechunk_source,
status   IN BINARY_INTEGER DEFAULT dbms_gsm_common.movechunk_success,
timeout  IN BINARY_INTEGER DEFAULT 0);
TBD
 
GETCRSINFO
Returns CRS information dbms_gsm_dbadmin.getCRSInfo(
ons_port   OUT VARCHAR2,
scan_name  OUT VARCHAR2,
rac_status OUT PLS_INTEGER);
DECLARE
 ons_out  VARCHAR2(30);
 scan_out VARCHAR2(30);
 rac_stat PLS_INTEGER;
BEGIN
  gsmadmin_internal.dbms_gsm_dbadmin.getCRSInfo(ons_out, scan_out, rac_stat);
  dbms_output.put_line('ONS:  ' || ons_out);
  dbms_output.put_line('SCAN: ' || scan_out);
  dbms_output.put_line('RAC:  ' || TO_CHAR(rac_stat));
END;
/
 
GETDBNUMBERRANGE
  dbms_gsm_dbadmin.getDBNUMBERRange(
cur_NUMBER IN     NUMBER,
range_min  IN OUT NUMBER,
range_max  IN OUT NUMBER);
DECLARE
 cnum NUMBER := 1;
 rmin NUMBER := 1;
 rmax NUMBER := 6;
BEGIN
  gsmadmin_internal.dbms_gsm_dbadmin.getDBNUMBERRange(cnum, rmin, rmax);
  dbms_output.put_line(TO_CHAR(cnum));
  dbms_output.put_line(TO_CHAR(rmin));
  dbms_output.put_line(TO_CHAR(rmax));
END;
/
 
GETGSMINFO
Returns information about the database for GSM dbms_gsm_dbadmin.getGSMInfo RETURN gsmadmin_internal.gsmInfo;
DECLARE
 retVal gsmadmin_internal.gsm_Info;
BEGIN
  retVal := gsmadmin_internal.dbms_gsm_dbadmin.getGSMInfo;
  dbms_output.put_line('Cloud:      ' || retVal.cloud_name);
  dbms_output.put_line('DB Pool     ' || retVal.dbpool_name);
  dbms_output.put_line('Region      ' || retVal.region_name);
  dbms_output.put_line('DB NUMBER:  ' || TO_CHAR(retVal.database_num));
  dbms_output.put_line('Scan Name   ' || retVal.scan_name);
  dbms_output.put_line('DB NUMBER:  ' || TO_CHAR(retVal.dbrole));
  dbms_output.put_line('CPU Thresh: ' || TO_CHAR(retVal.cpu_threshold));
  dbms_output.put_line('DB NUMBER:  ' || TO_CHAR(retVal.reptype));
  dbms_output.put_line('Filv Conv:  ' || retVal.file_convert);
  dbms_output.put_line('File Dest:  ' || retVal.file_dest);
END;
/

-- this demo does not output all values returned by getGSMInfo
 
GETHOSTINFO
Returns information about connected host for GSM

Overload 1
dbms_gsm_dbadmin.getHostInfo(
ons_port  OUT VARCHAR2,
scan_name OUT VARCHAR2,
hostname  OUT VARCHAR2);
DECLARE
 ons_out VARCHAR2(60);
 scan_out VARCHAR2(60);
 host_out VARCHAR2(60);
BEGIN
  gsmadmin_internal.dbms_gsm_dbadmin.getHostInfo(ons_out, scan_out, host_out);
  dbms_output.put_line('ONS: '  || ons_out);
  dbms_output.put_line('Scan: ' || scan_out);
  dbms_output.put_line('Host: ' || host_out);
END;
/
ONS:
Scan:
Host: PERRITO5

PL/SQL procedure successfully completed.
Overload 2 dbms_gsm_dbadmin.getHostInfo(
ons_port  OUT VARCHAR2,
scan_name OUT VARCHAR2,
hostname  OUT VARCHAR2,
db_type   OUT CHAR);
DECLARE
 ons_out VARCHAR2(60);
 scan_out VARCHAR2(60);
 host_out VARCHAR2(60);
 dbt_out VARCHAR2(60);
BEGIN
  gsmadmin_internal.dbms_gsm_dbadmin.getHostInfo(ons_out, scan_out, host_out);
  dbms_output.put_line('ONS: '     || ons_out);
  dbms_output.put_line('Scan: '    || scan_out);
  dbms_output.put_line('Host: '    || host_out);
  dbms_output.put_line('DB Type: ' || dbt_out);
END;
/
ONS:
Scan:
Host: PERRITO5
DB Type:

PL/SQL procedure successfully completed.
 
GRABCHUNKSFROMCATALOG
Gets chunks from the catalog database dbms_gsm_dbadmin.grabChunksFromCatalog;
exec gsmadmin_internal.dbms_gsm_dbadmin.grabChunksFromCatalog;
 
IMPORTDATA
Undocumented dbms_gsm_dbadmin.importData(md_fname IN VARCHAR2);
TBD
 
IMPORTDATA2
Undocumented dbms_gsm_dbadmin.importData2(chunk_id IN NUMBER);
TBD
 
MODIFYDATABASE
Changes the database's region dbms_gsm_dbadmin.modifyDatabase(
region_name  IN VARCHAR2,
cpu_thresh   IN NUMBER DEFAULT NULL,
srlat_thresh IN NUMBER DEFAULT NULL);
TBD
 
MODIFYGSM
Informs the database of GSM attribute changes dbms_gsm_dbadmin.modifyGSM(
gsm_alias   IN VARCHAR2,
endpoint    IN VARCHAR2 DEFAULT NULL,
region_name IN VARCHAR2 DEFAULT NULL,
ons_port    IN NUMBER   DEFAULT NULL);
TBD
 
MODIFYREGION
Inform the database of region attribute modifications dbms_gsm_dbadmin.modifyRegion(
region_name  IN VARCHAR2,
buddy_region IN VARCHAR2 DEFAULT NULL);
TBD
 
MODIFYSERVICE
Modifies all attributes of a global service dbms_gsm_dbadmin.modifyService(
service_name              IN  VARCHAR2,
rlb_goal                  IN  NUMBER   DEFAULT NULL,
clb_goal                  IN  NUMBER   DEFAULT NULL,
distr_trans               IN  NUMBER   DEFAULT NULL,
aq_notifications          IN  NUMBER   DEFAULT NULL,
aq_ha_notifications       IN  NUMBER   DEFAULT NULL,
lag_property              IN  NUMBER   DEFAULT NULL,
max_lag_value             IN  NUMBER   DEFAULT NULL,
failover_method           IN  VARCHAR2 DEFAULT NULL,
failover_type             IN  VARCHAR2 DEFAULT NULL,
failover_retries          IN  NUMBER   DEFAULT NULL,
failover_delay            IN  NUMBER   DEFAULT NULL,
edition                   IN  VARCHAR2 DEFAULT NULL,
pdb                       IN  VARCHAR2 DEFAULT NULL,
commit_outcome            IN  NUMBER   DEFAULT NULL,
retention_timeout         IN  NUMBER   DEFAULT NULL,
replay_initiation_timeout IN  NUMBER   DEFAULT NULL,
session_state_consistency IN  VARCHAR2 DEFAULT NULL,
sql_translation_profile   IN  VARCHAR2 DEFAULT NULL,
locality                  IN  NUMBER   DEFAULT NULL,
region_failover           IN  NUMBER   DEFAULT NULL,
role                      IN  NUMBER   DEFAULT NULL,
network_number            IN  NUMBER   DEFAULT NULL,
server_pool               IN  VARCHAR2 DEFAULT NULL,
cardinality               IN  VARCHAR2 DEFAULT NULL,
proxy_db                  IN  NUMBER   DEFAULT 0,
primary_db                OUT NUMBER,
instances                 IN  VARCHAR2 DEFAULT NULL,
force                     IN  NUMBER   DEFAULT dbms_gsm_common.isFalse);
DECLARE
 primDB VARCHAR2(30);
BEGIN
  gsmadmin_internal.dbms_gsm_dbadmin.getHost('MLIBSERV', clb_goal=>dbms_service.clb_goal_short, primDB);
  dbms_output.put_line(primDB);
END;
/
 
MODIFYSERVICEGLOBALPARAMETERS
Modifies all global attributes of a global service

Overload 1
dbms_gsm_dbadmin.modifyServiceGlobalParameters(
service_name              IN  VARCHAR2,
rlb_goal                  IN  NUMBER,
clb_goal                  IN  NUMBER,
distr_trans               IN  NUMBER,
aq_notifications          IN  NUMBER,
aq_ha_notifications       IN  NUMBER,
lag_property              IN  NUMBER,
max_lag_value             IN  NUMBER,
failover_method           IN  VARCHAR2,
failover_type             IN  VARCHAR2,
failover_retries          IN  NUMBER,
failover_delay            IN  NUMBER,
edition                   IN  VARCHAR2,
pdb                       IN  VARCHAR2,
commit_outcome            IN  NUMBER,
retention_timeout         IN  NUMBER,
replay_initiation_timeout IN  NUMBER,
session_state_consistency IN  VARCHAR2,
sql_translation_profile   IN  VARCHAR2,
locality                  IN  NUMBER,
region_failover           IN  NUMBER,
role                      IN  NUMBER,
proxy_db                  IN  NUMBER,
primary_db                OUT NUMBER,
force                     IN  NUMBER DEFAULT dbms_gsm_common.isFalse);
TBD
Overload 2 dbms_gsm_dbadmin.modifyServiceGlobalParameters(
p_service  IN  service_dsc_t,
primary_db OUT NUMBER,
force      IN  NUMBER DEFAULT dbms_gsm_common.isFalse);
TBD
 
MODIFYSERVICELOCALPARAMETERS
Modifies all local attributes of a global service dbms_gsm_dbadmin.modifyServiceLocalParameters(
service_name   IN VARCHAR2,
network_number IN NUMBER,
server_pool    IN VARCHAR2,
cardinality    IN VARCHAR2,
instances      IN VARCHAR2 DEFAULT NULL,
force          IN NUMBER   DEFAULT dbms_gsm_common.isFalse);
TBD
 
MOVECHUNK
Move Chunk information dbms_gsm_dbadmin.moveChunk(
chunk_id  IN BINARY_INTEGER,
conn_str  IN VARCHAR2,
timeout   IN BINARY_INTEGER,
move_mode IN BINARY_INTEGER,
gsmusrpwd IN VARCHAR2,
gdsctl_id IN BINARY_INTEGER DEFAULT 0);
TBD
 
PREPAREMETADATALOCAL
Undocumented dbms_gsm_dbadmin.prepareMetadataLocal(chunk_id IN NUMBER);
TBD
 
PREPAREMETADATAREMOTE
Undocumented dbms_gsm_dbadmin.prepareMetadataRemote(
chunk_id   IN NUMBER,
tab_filter IN VARCHAR2 DEFAULT NULL);
TBD
 
RECOVERCHUNKS
Recovers Chunk information after an unsuccessful move or split dbms_gsm_dbadmin.recoverChunks;
exec gsmadmin_internal.dbms_gsm_dbadmin.recoverChunks;
 
REMOVEALLSERVICES
Stops and deletes all the global services. dbms_gsm_dbadmin.removeAllServices;
exec gsmadmin_internal.dbms_gsm_dbadmin.removeAllServices;
 
REMOVEDATABASE
Remove a database from the GDS framework (cloud) dbms_gsm_dbadmin.removeDatabase(db_only IN BOOLEAN DEFAULT FALSE);
exec gsmadmin_internal.dbms_gsm_dbadmin.removeDatabase(TRUE);
 
REMOVEGSM
Informs the database of GSM removal dbms_gsm_dbadmin.removeGSM(gsm_alias IN VARCHAR2);
SQL> exec gsmadmin_internal.dbms_gsm_dbadmin.removeGSM('UWGSM');
removeGSM

PL/SQL procedure successfully completed.
 
REMOVEREGION
Inform the database of a region removal dbms_gsm_dbadmin.removeRegion(region_name IN VARCHAR2);
TBD
 
REMOVESERVICE
Removes a service from CRS and/or the database dbms_gsm_dbadmin.removeService(
service_name   IN  VARCHAR2,
proxy_db       IN  NUMBER DEFAULT 0,
delete_to_move IN  NUMBER DEFAULT 0,
primary_db     OUT NUMBER);
TBD
 
RESTORECHUNK
Restores chunk partitions reassigning their tablespaces and recreating them if needed dbms_gsm_dbadmin.restoreChunk(
a_chunk_id      IN BINARY_INTEGER,
a_shardspace_id IN BINARY_INTEGER,
do_remove       IN BINARY_INTEGER default 0);
TBD
 
SEND_GDSCTL_MSG
Undocumented dbms_gsm_dbadmin.send_gdsctl_msg(
message      IN VARCHAR2,
gdsctl_sid   IN NUMBER,
message_type IN NUMBER DEFAULT dbms_gsm_utility.msg_message);
TBD
 
SETCATALOGLINK
Creates a database link from shard to catalog dbms_gsm_dbadmin.setCatalogLink(
gsmusrpwd    IN VARCHAR2,
gsm_endpoint IN VARCHAR2,
no_check     IN NUMBER DEFAULT dbms_gsm_common.isFalse);
TBD
 
SETCHUNKS
Initial chunk assignment to database dbms_gsm_dbadmin.setChunks(chunk_list IN chunk_list_t);
TBD
 
SETDDLTIMEOUT
Set ddl_lock_timeout value to the maximum of (old_value, new_value) dbms_gsm_dbadmin.setDDLTimeOut(new_value IN BINARY_INTEGER);

Return Values:
GWM_NORAC       constant pls_integer := 0; -- database not on RAC
GWM_RAC_ADMIN   constant pls_integer := 1; -- database on admin managed RAC
GWM_RAC_POLICY  constant pls_integer := 2; -- database on policy managed RAC
GWM_RAC_UNKNOWN constant pls_integer := 3; -- unknown RAC status
GWM_RAC_SIHA    constant pls_integer := 4; -- database on SIHA
GWM_RAC_ONE     constant pls_integer := 5; -- database is RAC One Node
TBD
 
SETRATABLEFAMILY
Enable RAC affinity for a table dbms_gsm_dbadmin.setRATableFamily(
table_name   IN     VARCHAR2,
chunks          OUT NUMBER,
dobj         IN OUT NUMBER,
service_name IN     VARCHAR2,
svc_id       IN OUT NUMBER);
TBD
 
SETUPMETADATACURSOR
Undocumented dbms_gsm_dbadmin.setupMetadataCursor(
pin     IN BOOLEAN DEFAULT TRUE,
cleanup IN BOOLEAN DEFAULT TRUE );
exec dbms_gsm_dbadmin.setupMetadataCursor(TRUE, FALSE);
 
SETUPSESSIONCONTEXT
Undocumented dbms_gsm_dbadmin.setupSessionContext;
exec dbms_gsm_dbadmin.setupSessionContext;
 
SPLITCHUNK
Undocumented dbms_gsm_dbadmin.splitChunk(
a_chunk_id      IN BINARY_INTEGER,
target_chunk_id IN BINARY_INTEGER,
a_shardspace_id IN BINARY_INTEGER);
TBD
 
STARTSERVICE
Start a database service dbms_gsm_dbadmin.startService(
service_name IN VARCHAR2,
inst_list    IN VARCHAR2 DEFAULT NULL);
exec gsmadmin_internal.dbms_gsm_dbadmin.startService('MLIBSERV', '1');
 
STOPSERVICE
Stop a database service dbms_gsm_dbadmin.stopService(
service_name IN VARCHAR2,
force        IN NUMBER   DEFAULT dbms_gsm_common.isFalse,
options      IN VARCHAR2 DEFAULT NULL);
exec gsmadmin_internal.dbms_gsm_dbadmin.stopService('MLIBSERV');
 
SYNC
Execute database side modifications dbms_gsm_dbadmin.sync(
dsc      IN OUT database_dsc_t,
warnings    OUT warning_list_t);
TBD
 
SYNCDDLPARAMETER
Undocumented dbms_gsm_dbadmin.syncDDLParameter;
exec gsmadmin_internal.dbms_gsm_dbadmin.syncDDLParameter;
 
VALIDATEDATABASE
Validate database existence and return local DB info

Overload 1
dbms_gsm_dbadmin.validateDatabase(
dbpool         IN  VARCHAR2,
db_unique_name OUT VARCHAR2,
instances      OUT NUMBER,
cloud_name     IN  VARCHAR2 DEFAULT NULL);
TBD
Overload 2 dbms_gsm_dbadmin.validateDatabase(
dbpool         IN  VARCHAR2,
db_unique_name OUT VARCHAR2);
TBD

Related Topics
Built-in Functions
Built-in Packages
DBMS_GSM_ALERTS
DBMS_GSM_CLOUDADMIN
DBMS_GSM_COMMON
DBMS_GSM_DDL
DBMS_GSM_FIX
DBMS_GSM_FIXED
DBMS_GSM_NOPRIV
DBMS_GSM_POOLADMIN
DBMS_GSM_SEC
DBMS_GSM_UTILITY
DBMS_GSM_XDB
DBMS_SERVICE
EXCHANGE
What's New In 21c
What's New In 23c