GDS Components
GDS consists of several key components that work together to provide efficient workload management and high availability for replicated databases.
Global service managers (GSMs) act as listeners in different regions and are known as global listeners. They can understand the current workload of the system in real time. Their main tasks are to balance the load of services, handle failures, and manage the system in a centralized manner. GSMs collect performance information from the databases in the GDS setup and also measure the time it takes for data to travel between regions. Based on this information, GSMs create a guidance system for load balancing while the system is running and share it with the client connection pools. If a database fails, it is the responsibility of the GSMs to inform the clients about the issue.
A GSM must be associated with one GDS setup, and it is important to have at least one GSM in each region. To enhance system performance and availability, it is recommended to have three GSMs.
The GDS catalog is a database that stores important information about the GDS configuration. It includes details about hosts, regions, GSMs, global services, databases, and more. The size of the GDS catalog database is typically small and usually doesn’t exceed 100GB.
Each catalog is linked to a single GDS configuration. To enhance system availability, it is highly recommended to utilize technologies such as Oracle Real Application Cluster (RAC), Oracle Data Guard, and Oracle Clusterware. These technologies help improve the availability of the system.
A GDS region consists of a collection of databases and clients that are connected to each other on a nearby network. The databases within the same region have faster network connections and lower latency compared to databases in different regions.
Typically, a region corresponds to a local area network (LAN) or a metropolitan area network (MAN).
To ensure uninterrupted access to the GDS configuration, it is advisable to designate a buddy region for each GDS region. This buddy region should have GSMs that can take over and continue providing the necessary services if the GSM in the primary region goes offline or becomes unavailable.
A GDS pool is a group of replicated databases that fall under a specific administrative domain. Dividing the GDS configuration databases into multiple pools offers enhanced security and simplifies administration by allowing each pool to be managed by a different administrator.
There are certain limitations when placing databases into the same pool.
–– A database can belong to only one GDS pool.
–– While databases within a pool don’t necessarily need to have the same set of global services, if some of them do provide the same global service, then those databases must be part of the same pool.
The global service is a database service that is provided by multiple replicated databases. In earlier versions of Oracle databases, only local services were available. However, starting from Oracle Database 12c and later versions, global services can be provided.
The GSM acts as a mediator between the databases and the clients. When a client wants to connect to a global service, they connect to the regional GSM without specifying a specific database or instance. The GSM then forwards the client’s request to the most suitable instance based on real-time statistics.
The status of global services is stored not only in the GDS catalog but also in each member database’s system dictionary tables or the Oracle Clusterware Registry (OCR). When a new member database joins the configuration or an existing database
restarts, the GSM compares the metadata information between the GDS catalog and the database. If any inconsistencies are found, the GSM is responsible for synchronizing the member database’s metadata with the catalog.
If a database instance fails, all GSMs are notified about the failure, and they stop directing client requests to the failed instance until it is recovered. If the failed instance was the only running instance for the configuration, the GSM can automatically start the service on another database in the GDS pool (if configured), or the administrator can manually perform the same action.
To manage and control Global Data Services, the Global Data Services Control command-line utility (GDSCTL) should be used.
GDS clients use the Oracle Notification Service (ONS) to receive real-time load balancing advice and high-availability (HA) events from GDS. The ONS server is located with the GSM.