GDS Configuration Example
Follow this example to see how to implement Oracle Global Data Services using the GDSCTL utility, administrator users, and service configuration.
Deployment options:
Administrator-managed deployment means that you configure database services to run on specific instances belonging to a particular database using a preferred and available designation.
Policy-managed deployment means that the deployment is based on server pools, where database services run within a server pool as singletons, or run uniformly across all of the servers in the server pool. Databases are deployed in one or more server pools. The size of the server pools determines the number of database instances in the deployment.
Steps:
- Create and prepare a GDS catalog database.
GDS uses a catalog database to store metadata about the layout and status of the GDS configuration. For maximum availability, Oracle recommends that the GDS catalog database be deployed independently and that Oracle's high-availability features, such as Oracle Real Application Clusters (Oracle RAC) and Oracle Data Guard, be used to protect the catalog database against outages.
Create the
GSM_ADMINuser and assign that user theGSMADMIN_ROLE.Note:
By default, the passwords for GSM_ADMIN, GSMUSER, and GSMCATUSER expires after 180 days.
SQL> create user gsm_admin identified by password; User created. SQL> grant gsmadmin_role to gsm_admin; Grant succeeded. SQL> exitUsing the environment configured for the global service manager home, run GDSCTL to create the GDS catalog database with Auto VNCR disabled (Auto VNCR can cause problems with Oracle RAC deployments).
GDSCTL> create gdscatalog -database "(DESCRIPTION=(CONNECT_TIMEOUT=90)(RETRY_COUNT=50) (RETRY_DELAY=3)(TRANSPORT_CONNECT_TIMEOUT=3)(ADDRESS_LIST=(LOAD_BALANCE=ON) (ADDRESS=(PROTOCOL=TCP)(HOST=catalog.example.com)(PORT=1521))) (CONNECT_DATA=(SERVICE_NAME=CAT1PDB)))" -user gsmcatuser/ -region region1 -configname gds01 -autovncr offConnect to the catalog database, unlock the
GSMCATUSERuser, and set the password.SQL> alter user gsmcatuser account unlock; User altered. SQL> alter user gsmcatuser identified by password; User altered.With the environment configured for the global service manager
home, use GDSCTL to connect to, create, and start the global service manager
listeners.As a best practice, place global service manager listeners on hardware separate from the servers hosting the Oracle databases in the GDS configuration. Because resource requirements for global service manager listeners are low, you can use virtual machines to host them.
GDSCTL> add gsm -gsm gsm1 -catalog "(DESCRIPTION=(CONNECT_TIMEOUT=90)(RETRY_COUNT=50) (RETRY_DELAY=3)(TRANSPORT_CONNECT_TIMEOUT=3)(ADDRESS_LIST=(LOAD_BALANCE=ON) (ADDRESS=(PROTOCOL=TCP)(HOST=catalog.example.com)(PORT=1521))) (CONNECT_DATA=(SERVICE_NAME=CAT1PDB)))" -region region1 -pwd GDSCTL>start gsm -gsm gsm1 GSM is started successfullyAfter starting a GSM, verify that it is running and connected to the catalog:
GDSCTL> statusReview the output to verify that it is started and connected, that services are listed and ready, and that the correct database, region and role are displayed. For example, for GDS catalog Y::
Alias GSM1 Version 23.0.0.0.0 Start Date 13-APR-2025 09:40:59 Trace Level off Listener Log File /u01/app/oracle/diag/gsm/hostname/gsm1/alert/log.xml Listener Trace File /u01/app/oracle/diag/gsm/hostname/gsm1/trace/ora_64863_139739749930432.trc Endpoint summary (ADDRESS=(HOST=hostname.example.com)(PORT=1522)(PROTOCOL=tcp)) GSMOCI Version 4.0.191114 Mastership Y Connected to GDS catalog Y Process Id 64883 Number of reconnections 0 Pending tasks. Total 0 Tasks in process. Total 0 Regional Mastership TRUE Total messages published 0 Time Zone -04:00 Orphaned Buddy Regions: None GDS region region01With the environment configured for the global service manager home, use GDSCTL to create a default GDS pool and default region.
GDSCTL> add gdspool -gdspool dbpoolora GDSCTL> add region -region region1 GDSCTL> add region -region scaWith Auto VNCR disabled during GDS catalog creation to avoid issues, use GDSCTL to add hosts using the
add invitednodecommand, using the host name or IP address appropriately.GDSCTL> add invitednode 10.0.20.103 GDSCTL> add invitednode 10.0.20.104Unlock the
GSMUSERaccount.Before adding a database to a pool, the database administrator should unlock the
GSMUSERaccount and give the password to the GDS pool administrator, as shown in the following example.SQL> alter user gsmuser account unlock; User altered. SQL> alter user gsmuser identified by password; User altered.- Add databases to the GDS pool.
To be part of a GDS pool, a database must use a server parameter file (SPFILE). An Oracle RAC database should also have SCAN set up.
To add a database, connect to the GDS catalog using the GDS pool or GDS administrator credentials. For example, without Data Guard, the following add database command can be used.
Note:
When using Oracle Active Data Guard with GDS on Oracle AI Database 26ai and later releases, use
add databaseinstead ofadd brokerconfigto add the primary and standby databases. For more information, see add brokerconfig). The syntax for these commands is similar to the following:GDSCTL> add database -connect 10.0.20.103:1521/PORCLCDB -region region1 -gdspool dbpoolora -pwd Oracle_26ai -savename GDSCTL> add database -connect 10.0.20.104:1521/SORCLCDB -region region1 -gdspool dbpoolora -pwd Oracle_26ai -savenameDatabase instance registration with a global service manager succeeds only when the request originates from a valid node. If a host on which a database resides contains multiple network interfaces, then auto-configuration can register incorrect IP addresses, causing database registration requests to be rejected.
- Correct any rejected registration and properly discover all database instances.
If a firewall exists between the global service managers and databases and the ports are not opened, then the registration fails. If this happens, then the global service
manageralertlog records entries similar to the following:Listener(VNCR option 1) rejected Registration request from destination 10.0.20.103 Listener(VNCR option 1) rejected Registration request from destination 10.0.20.104To correct the rejected registration and properly discover all database instances, run
add invitednodeusing the rejected IP address listed in the global service manager alert log. - If there is a firewall between the global service managers and the database, then once the ports have been opened and verified using
tnsping, issue theadd invitenodecommand as shown here. Create and start Global Services.
The GDSCTL
add servicecommand creates a Read-Write service for the Primary Database.GDSCTL> add service -gdspool dbpoolora -service gds01_rw_srvc_1 -preferred_all -role primary -pdbname ORCLPDB1Start the Read-Write Service:
GDSCTL> start service -service gds01_rw_srvc_1Create and start a Read-Only Service for the Standby Database:
GDSCTL> add service -gdspool dbpoolora -service gds01_ro_srvc_1 -preferred_all -role physical_standby -pdbname ORCLPDB1 GDSCTL> start service -service gds01_ro_srvc_1Verify that the Global Services are running.
GDSCTL> services Service "gds01_ro_srvc_1.dbpoolora.gds01" has 1 instance(s). Affinity ANYWHERE , Instance "gdspoolora%11", Name: "SORCLCDB", db: "SORCLCDB", region: "region1", status: ready. Service "gds01_rw_srvc_1.dbpoolora.gds01" has 1 instance(s). Affinity ANYWHERE , Instance "gdspoolora%1", Name: "PORCLCDB", db: "PORCLCDB", region: "region1", status: ready.
Parent topic: Global Data Services Configuration