Standardizing the Oracle GoldenGate Home Path (OGG_HOME)

Posted in: Oracle, Technical Track

I don’t work with Oracle GoldenGate extensively but when I do I find it somewhat remarkable that there aren’t more standards with something as simple as the Oracle GoldenGate software home path (OGG_HOME).

With the Oracle Database, in recent years (decades) the nomenclature has become relatively standardized as:

${ORACLE_BASE}/product/<major version>/dbhome_<n>

For example.



But for Oracle GoldenGate it seems much less standard.  I see homes such as:


All sorts of permutations!


What I want to is install “Oracle GoldenGate 12.3.0 for Oracle Database 11g“.  

But I need to consider:

  • What if I want to also use OGG against a 12c database on the same server?
  • What if we upgrade the version of the database?
  • What if I have multiple databases of the same server to replicate to/from?
  • What if I have multiple databases of mixed versions?
  • Are we going to upgrade OGG in place or out of place?
  • What if we want to try the Microservices Architecture?
  • What if we’re using RAC?


This brings up some interesting discussions even among more seasoned Oracle GoldenGate experts.  Even the question of whether to use just “gg” or “ogg” in the path is up for discussion?

And of course we may likely want to move the trail files to a different location/filesystem using the standard approaches to accomplish that.


Personally, my preference for this requirement would be:


Or if installing the new GoldenGate Microservices Architecture:



I like that as it’s descriptive:

  • Shows that this home has the 12.3.0 version of Oracle GoldenGate
  • Shows that it’s for Oracle Database 11g
  • It’s under the Oracle Software tree (under ${ORACLE_BASE}/product)
  • Provides the option for multiple GoldenGate installs under the “gg” sub-directory (if ever necessary)
  • Allows for out-of-place upgrades (at some time in the future) into a similar and parallel path


Another valid suggestion is to maintain the order of <version>/<product name> which would make a path such as:


I think that’s pretty reasonable as well.


If you see an issue with those suggestions or have a better idea, please post a reply below.  Share your thoughts including reasons why an alternative may be a better standard.


Interested in working with Simon? Schedule a tech call.

About the Author

Simon describes himself as a technology enthusiast who is passionate about collecting and sharing interesting database tips. If you want to see his eyes light up, let him teach you something new. Based out of Calgary, Alberta, Simon is known for his contributions to various online Oracle communities, and being very thorough in his work. A self-proclaimed stereotypical Canadian, Simon can be found watching hockey with his family in his spare time.

No comments

Leave a Reply

Your email address will not be published. Required fields are marked *