What is Global Data Services??

Oracle 12c Database provides a powerful workload management feature called database services. Database services are named representations of one or more database instances. Database services allow you to group database workloads, ensure that client requests are routed to the optimal instance that offers a service, and provide high availability by transparently failing client connections over to surviving instances when a planned or unplanned instance outage occurs

Oracle Global Data Services (GDS) implements the Oracle Database service model across a set of replicated databases known as a Global Data Services configuration. The GDS is the replacement for the Oracle Grid Infrastructure for 11g database high availability. The GDC works perfectly with Oracle 12c CDB or PDB’s.

Client Connectivity in GDS

  • Clients connect to GSM listener instead of to the database listener, GDS forwards the connection to the local listener (bypassing the SCAN listeners).
  • Client will load balance among local GSMs, local database listeners and use the remote GSMs if all the local GSMs are unavailable.
  • Clients specify global service name and which region they want to connect (region is not required in some organisations).
  • All current FAN events (instance, service, net, node – up/down) are supported.

Global Service Manager (GSM) Installation

A global service manager is the central software component of Global Data Services, providing service-level load balancing, failover, and centralized management of services in the GDS configuration. Global Data Service clients use a global service manager to perform all GDS configuration operations.

The Global Service Manager (GSM) software can be download and install to deploy Global Data Services (GDS). Click here to download “linuxamd64_12c_gsm.zip”. The installation procedure is very simple and straight forward.


I set up the GDS with two GSM’s in two data centres and GDS catalog database replicated from One data centre to other via oracle data Guard. Here is some brief explanation of each component outlined in diagram.

GDS Region

A GDS Region typically corresponds to a data center and clients that are in the geographical proximity to the data center. Examples of a GDS Regions are North region or South region etc.

Global Service Manger (GSM)

GSM is the “brain” of the GDS technology and is the central component of the GDS configuration. At a minimum, there must be one GSM per GDS Region.

GDS Catalog

A GDS Catalog is a repository that keeps track of the configuration data and the run-time status of a given GDS configuration. The GDS catalog should be 12c database and the catalog is directly siting at CDB level (may be in future release it may go on PDB). Maintain all the connectivity details on GDS “tnsnmes.ora” to communicate with catalog.

GDS Pool

A GDS Pool is a set of databases containing replicated data in the GDS configuration that provide unique Global Data Services and are administered by different administrator.A database can belong to only one GDS pool. All databases in a GDS pool need not provide the same global service, but all databases that provide the same global service must belong to the same GDS pool.

GDSCTL Utility

Its command line utility to stop/start/modify global services and here is the complete reference of GDSCTL commands.

GDS ONS Network

Oracle 12c FAN clients use the Oracle Notification System to receive FAN events. ONS runs outside the database and across the system with no database dependencies. When a database is stopped or fails, FAN posts the status change events immediately, and ONS delivers them immediately. Starting from Oracle Database 12.1, FAN is posted by Global Data Services (GDS) for spanning data centers. GDS takes into account the service placement attributes, automatically performs an inter-database service failover to another available database for planned maintenance that involves a data center change, and if unplanned outages occur, notifies failures of an entire database.The Oracle clients and connection pools are interrupted on failure events and notified when a global service has been newly started. Each GSM instance contains an Oracle Notification Service (ONS) server. The ONS server is used to publish FAN HA events and RLB metrics, subscribed by the clients.

Client Connectivity in GDS

In a GDS enabled environment, the clients connect to the GSM listeners instead of the database listeners. GSM forwards the connection to the local listener. The TNS entry on the client side includes the specification of the endpoints of the GSM listeners.

Recommended GDS configuration

  • GDS catalog database in a Data Guard configuration for HA/DR (MAA best practice)
  • 3 GSMs per Region (GDS binaries installed on each GSM node)


Create GDS Catalog

As explained earlier, GDS installation part is very easy.  Now next step, we need to create a catalog as every GDS configuration requires a catalog to keep the GDS configurations. Create a gsm_admin user but since the catalog can only reside in a root container and not at pdb level, we need to create it as a common user.

Run the GDSCTL utility from GDS home to create the catalog.

Add GSM to GDS Catalog

To add a global services manager to the GDS catalog we must unlock the default user gsmcatuser. This user is automatically created during 12c database installation.

Create GSM listener

This is the GSM listener on port 1522 which accepts/cross check client/application connections and directs to database.

Add GDS Region

At least one region is require per data center or per group if databases. In my case, I have just one region.

Add GDS Pool

Once the above configuration is in place, this point onwards it goes with application level. At least one pool is required per application.

Add DB/DG broker configuration to GDS Pool

This wraps up the introductory blog post on Oracle Database 12c GDS. In the next blog, we will review some of the key capabilities of GDS and its business benefits.


  1. thanks Mandy for this Blog,just Have one question ,
    If I have Active data guard enabled in DR site so By GDS will route (Update,insert statements) to the primary and Queries for Standby database .is it possible .

    1. Hi Joseph, Yes if active data Guard is enabled in DR side you can send the traffic to Primary(R/W) and DR(read only) side based on GDS services. Make sure Primary and DR consumers are configured with correct services.

  2. Hi mandeep
    Your article is fantastic.
    In my setup I am struggling since 7 days.

    GDSCTL> delete catalog;
    GDSCTL> create catalog -database -user gsm_admin/gsmadmin
    Catalog is created
    GDSCTL> add gsm -gsm GSM1 -listener 1521 -catalog caddb -pwd gsmcatuser <<<<<<<<<< start gsm -gsm GSM1
    GSM-45054: GSM error
    GSM-40012: GSM instance is already running
    GDSCTL> stop gsm -gsm GSM1
    GSM-45075: No response from GSM

    Sir any clue on how to resolve it?

Leave a Reply