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.
/u01/app/oracle/product/12.2.0/dbhome_1
But for Oracle GoldenGate it seems much less standard. I see homes such as:
/u01/oracle/ggs /u01/app/GoldenGate /u01/app/ggate /u01/app/oracle/product/gg /u01/app/oracle/product/gg/12.3.0 /u01/app/oracle/11.2.0/gg /u01/app/gg12.2 /u01/gg/12.2.1 /u01/app/oracle/<db_name>/ogg
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:
/u01/app/oracle/product/gg/12.3.0_ora11g
Or if installing the new GoldenGate Microservices Architecture:
/u01/app/oracle/product/gg/12.3.0_ma_ora11g
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:
/u01/app/oracle/product/12.3.0/gg_ora11g
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.
No comments