Microservices Architecture is a method or approach to developing applications where an application is deployed as a suite of independently deployed small modular services.
Each module supports a specific business goal and uses a simple, light weight and well-defined interface to communicate with other sets of services.
Oracle GoldenGate Microservices Architecture (MA) is a similar architecture based on REST APIs which enable us to configure, monitor, and manage Oracle GoldenGate services using a web-based user interface.
So now in Oracle GoldenGate 12.3, we have two architectures available for deploying GoldenGate – the (original) Classic Architecture and the new Microservices Architecture.
The Microservices Architecture in Oracle GoldenGate is comprised of five main components:
- Service Manager
- Administration Server
- Distribution Server
- Receiver Server
- Performance Metrics Server
Service Manager: Enables us to administer, monitor and manage other services available with Microservices Architecture. Through Service Manager, we can manage one or multiple Oracle GoldenGate deployments on a local host.
Administration Server: It is the central and main entity for managing the various components of a GoldenGate deployment. Administration Server can create and manage local Extract and Replicat processes even without access to the server where Oracle GoldenGate is installed. Tasks like creating or altering extract and replicat processes, creating credentials for GoldenGate security, viewing report files, adding supplemental log data, creating checkpoint and heartbeat tables etc can all be performed from web browser as well as from the command line Admin Client.
Distribution Server: It is a high performance application which functions as a networked data distribution agent. The Distribution Server distributes one or more trails to one or more destinations and also performs some filtering operations if configured to do so. It supports a number of different communication protocols including the classic Oracle GoldenGate protocol for communication between the Distribution Server and the Collector , WebSockets for SSL secured HTTPS-based streaming and Proxy support for cloud-based environments.
The Distribution Server is used to set up a Path between the source and target deployments.
Receiver Server: It provides the central services to handle all incoming trail files and communicates with the Distribution Server over the network.
Performance Metrics Server: It collects and stores performance data related to a GoldenGate deployment. Enables us to monitor performance metrics using a web application and use the data to tune deployments for maximizing performance.
Let us look at an example of GoldenGate 12c Release 3 Microservices Architecture (MA) at work!
Demo environment setup
We will be using a single Oracle 12c Release 2 database for this demo with two schemas – SOURCE and TARGET.
We will create the MYOBJECTS table in both schemas and perform some DML activity on the source table and note how replication is performed and managed using GoldenGate Microservices.
SQL> alter database force logging; Database altered. SQL> alter database add supplemental log data; Database altered. SQL> alter system set enable_goldengate_replication=true; System altered. SQL> create user oggadmin identified by oracle; User created. SQL> grant dba to oggadmin; Grant succeeded. SQL> exec dbms_goldengate_auth.grant_admin_privilege('OGGADMIN'); PL/SQL procedure successfully completed. SQL> create user source identified by oracle default tablespace users temporary tablespace temp; User created. SQL> create user target identified by oracle default tablespace users temporary tablespace temp; User created. SQL> grant connect,resource,create table to source,target; Grant succeeded. SQL> alter user source quota unlimited on users; User altered. SQL> alter user target quota unlimited on users; User altered. SQL> conn source/oracle Connected. SQL> create table myobjects as select * from all_objects where 1=2; Table created. SQL> conn target/oracle Connected. SQL> / Table created. SQL> conn source/oracle Connected. SQL> alter table myobjects add constraint pk_myobjects primary key (object_id); Table altered. SQL> conn target/oracle Connected. SQL> / Table altered.
Download the MA software (Oracle GoldenGate 184.108.40.206.0 Microservices for Oracle) from OTN.
Install Oracle GoldenGate 220.127.116.11.0 Microservices
Create a deployment using Oracle GoldenGate Configuration Assistant
Launch the Configuration Assistant via the
oggca.sh script located in the $OGG_HOME/bin directory. Through the Configuration Assistant we can create the Service Manager as well as configure the deployment.
A single Service Manager can support a number of deployments.
[oracle@linux01 Disk1]$ export TNS_ADMIN=/u02/app/oracle/product/12.2.0/dbhome_1/network/admin [oracle@linux01 Disk1]$ export OGG_HOME=/u04/app/oracle/ogg_ma [oracle@linux01 Disk1]$ cd $OGG_HOME/bin [oracle@linux01 bin]$ ./oggca.sh
Note: in this example we are not configuring any wallets or certificates required for SSL security.
Allocate the ports – enter 9001 for the Administration Server port and the other ports are assigned automatically by clicking in the port number fields.
[root@linux01 etc]# /u04/app/oracle/ogg_sm/bin/registerServiceManager.sh ---------------------------------------------------- Oracle GoldenGate Install As Service Script ---------------------------------------------------- OGG_HOME=/u04/app/oracle/ogg_ma OGG_CONF_HOME=/u04/app/oracle/ogg_sm/etc/conf OGG_USER=oracle Running OracleGoldenGateInstall.sh...
Connect to Oracle GoldenGate Service Manager
Connect to Oracle GoldenGate Administration Server
Create the Credentials for the OGGADMIN user
Add Supplemental Logging for the SOURCE schema
Create the CHECKPOINT Table
Create the Classic Extract EXT1
Edit the parameter file and add the TABLE parameter
View details of the EXT1 Classic Extract
Connect to the Distribution Server
Click on the Distribution Server link in the Service column.
Create the Path
View details of the distribution path PUMP1
Connect to the Administration Server and create the Replicat process
Edit the parameter file and change the MAP and TARGET parameters
Perform DML on the source table
On the SOURCE schema MYOBJECTS table, we will now run an INSERT statement.
SQL> conn source/oracle Connected. SQL> insert into myobjects select * from all_objects; 56332 rows created. SQL> commit; Commit complete.
View details of the replicat process REP1 and note the number of rows which have been processed.
Connect to the Distribution Server and note the statistics of PUMP1 process
Connect to the Receiver Server and note the statistics related to the Network and I/O due to the last transaction which was processed.
Click on the Action drop-down ….
Connect to the Performance Metrics Server and note the performance metrics related to extract EXT1
Click on EXT1