Primary and secondary extract on the source, replicat on the target is the way to go. You don't want to go straight from source to target because that introduces network failure as a single point of failure for synchronization and availability.
If the server on A goes down, you have other problems anyway, but GoldenGate will pick up from the last checkpoint and carry on. The HA part is that when A does go down, B is ready to go for a failover. You want to keep lag low/minimized so that what's on B is closely matched to what's on A.
Stevencellan thanks for the reply
Actually we don't want a lag because
Suppose there is lag going on pump and mean while database or server gets down or crash then the lag data will not be replicate on Server B.
And when Server B is ready to go for a failover then that time server B is not sync properly.
So i want every time both Servers should be Sync (no lag required)
thanks and Regards
Are you running a Linux environment ? Have you considered using Oracle Clusterware and the XAG bundled agents for GoldenGate. I have recently setup exactly what you have. A 2 node cluster where Node1 - Source, Node2 - Target. Both databases using Oracle ASM that is included with Clusterware. Also, $GG_HOME is on ACFS, which ensures trail files, prm files , etc. are available all the time to both servers.
Also, this is NOT RAC. I have both databases configured for Single Instance failover. So, if node1 goes down, Goldengate and the source database are sent over to nodeB. You would have to create 2 GG_HOME, on their own ACFS file systems w/in the cluster..but that's not that big of a deal. Please note I am running Oracle 188.8.131.52.6; and GG 184.108.40.206.9 .
check out MOS note 1527310.1 - I followed this , and I have both Source and Target GG instances failing over to either node...and bringining the database with it. Failover, including instance transfer is less than 2 minutes..
Just another idea to maybe consider.