We are looking into the possibility of using GoldenGate to reduce/eliminate down time when we have monthly release changes to our applications. The idea is to allow activity to continue on database 1 version A (current production) while goldengate replicates the data to database 2 version B (soon to be production). If the new version (B) of the application requires changes to the schemas, transformation rules would be used to convert the version A to version B format. When version B was ready to become production, all traffic would switch to database 2 version B, there would NOT be 2 versions active at the same time. Once database 2 version B has gone active we would reverse the replication so the flow was from 2-B to 1-A, once again transformation rules would be applied to data as needed until version 1-A had been upgraded to match version B, then we would switch back to the original database 1 that was now updated to version B.
Anyone doing this? While this sounds like GG's wheelhouse, I see issues.
Doing a switch of traffic from version A to B would be difficult. With data guard switching traffic is relatively easy, even if that means crashing site A, data guard would route traffic to B (if set up properly). Golden Gate has no such facility as it is a replication engine not a DR/availability engine. Thus traffic routing must be done at another level (F5, etc.) so switching from 'side to side' is complex?
When creating database 2 for the upgrade process, what needs to be included? Do we build a full copy of database 1 and replicate EVERYTHING from 1 to 2?, or do we just replicate the data used by the application from 1 to 2? This matters because 'everything' implies integrated capture mode (due to compression, XA transactions, etc.), which I have heard is 'streams behind the scenes' and should be avoided if possible? Doing selective replication rather than full might allow us to use 'classic' capture mode.
So, I guess I am looking for folks who are using GG for this application upgrade scenario. Integrated capture or classic?