Visualizing OCI GoldenGate

Data Voyage by Jigar Doshi
Oracle Developers
Published in
3 min readFeb 17, 2024

A good picture lets me speak less — Jigar Doshi

Very often I find myself whiteboarding Oracle GoldenGate(OGG) replication architecture scenarios to customers or documenting them as part of my consulting engagements. If I had dollar for every diagram I created on zoom whiteboards/draw.io , I would have few hundred dollars. That’s not much, but it gives you an idea how frequently I find myself creating these diagrams.

Someone wise said “if you have to do any task more than once, automate it.”

This was the source of inspiration the sent me down the world of Python, Flask applications ,network graphing packages and CSS stylesheets. The combination of this I present to you as OGG Topology Viewer alpha release 0.2.

This application ingests JSON output from OCI CLI command and generates a simple and easy to understand OCI GG deployment topology. Given below is a sample diagram from own deployment. You can clearly see that its poorly managed or not managed at all :-) . The diagram shows relationship between

Deployment → EXTRACT → Trail Files → REPLICAT.

Trail files with no associated EXTRACT or from remote deployments are labelled accordingly.

This is very helpful to quickly identify issue of disconnected trails. i.e. trail files not produced by current EXTRACT and used by any of the REPLICAT. In the diagram below Trails e1,e2,e3 and qt have no associated EXTRACT or REPLICAT’s. Most likely they are relics of the past.

OGG Deployment Topology

Clicking on the trail nodes displays information about number of trail files and space consumed by the trails.

Trail Information is displayed on click

Last but not least you can save the chart to your local filesystem.

Saving Topology Diagram

How to use OCI GG Topology Visualizer?

Just follow the GIF.

Using the OCI GG Topology Visualizer

You can stop reading here if you want. Rest of the article talks about the technical requirements and how it does what it does. Application can be accessed via my repo linked at the end of this article.

What does this application do?

  1. Generate Topology diagram for OCI GoldenGate for Oracle DB deployments.
  2. It’s a locally hosted Flask application on user defined port. No internet connection is required, except for the first time setup of required Python Modules and libraries.
  3. Ability to save the diagrams to local file system in JPEG format.

What does it need?

  1. Python 3.8 and above
  2. Python dash, dash_cytoscape, numpy, json, os and io module
  3. Output of OCI CLI command for ingestion. Replace [Set deployment_ocid here] with actual OCID of your deployment
oci goldengate trail-file-summary list-trail-files --deployment-id [Set deployment_ocid here] > outputfile.json

4) Local browser to view the topology diagram.

What does it not do?

  1. Illustrate relationships between deployments
  2. Generate topology diagram for non-Oracle DB deployments. This is not tested at time of writing. But you are free to test it out. Do report the results to me 😊
  3. Does not show Information about connection and related endpoints. Simply because we are generating entire chart based on trail file information.
  4. Dynamically fetch deployment trail information from OCI instead of manual CLI output.

All these and many more are planned for later releases. For now, it’s a simple offline application to generate topology diagram for single Oracle DB OGG deployment.

Application code can be downloaded from my repo.

Please share your thoughts/comments/bug feedback/feature requests via comments. Thank you for reading.

--

--

Data Voyage by Jigar Doshi
Oracle Developers

Master Principal Cloud Architect @ Oracle Singapore. Data enthusiast. Sharing my adventures in world of data