Re: Oracle High Availability Question(s)

From: Bobby Curtis <curtisbl_at_gmail.com>
Date: Fri, 16 Feb 2018 10:46:52 -0500
Message-Id: <E70E5180-CC2A-4CFB-857C-D8C298B3D06F_at_gmail.com>



I’ve been watching this topic come in for a day or two. I’m surprised by the frustration of GoldenGate, but I also think there is some confusion on definitions. The subject line is talking about Oracle High Availability options; so here is my 2 cents for people to digest.

High Availability is the approach of ensuring that you keep a system up and running as long as possible in the event of a failure, hardware, etc…

Now there are a couple of ways to achieve this.

  1. In a local data center/office, Oracle Real Application Clusters provide a localized HA for a single database between nodes that are connected. Normally within the same rack. Oracle RAC is a good technology, but can have its challenges when trying to first learn the technology. People in the community have banded together and produced the Oracle RAC SIG (http://www.oracleracsig.org/ <http://www.oracleracsig.org/>) which produced RACAttack and provided a flexible way to learning how RAC works.
  2. Data Guard (non-active/active), provide a physical failover between two database (non-RAC or RAC). This is a good approach to disaster recovery not high availability.
  3. GoldenGate, provides a logical failover between two or more databases. Additionally, GoldenGate is a great tool/knowledge to have in your toolbox for many different architectures and migrations. Yet it is not 100% valid for high availability alone.

If you combine all three technologies, you get the approach that Oracle recommends for Maximum Availability Architecture (MAA - http://www.oracle.com/technetwork/database/features/availability/oracle-database-maa-best-practices-155386.html <http://www.oracle.com/technetwork/database/features/availability/oracle-database-maa-best-practices-155386.html>).

To address the GoldenGate concerns that people at saying about Primary Keys and sequences. Oracle GoldenGate uses PKs to identify the records to update/delete when those SQL operations are read from the trail file. If you see an issue with sequences, depending on the architecture you either need to run the sequence.sql file in the $OGG_HOME (classic architecture) or ensure that you are doing either even/odd (active/active) or site numbers (multi-master). This ensure that the sequences do not conflict or have any issues with PK, if used for that purpose.

Looking at bug 26553124, this appears to be related to Integrated Replicat (IR) on release 12.2.0.1.0. The bug has nothing to do with sequences, but PKs when using IR. The workaround for this bug, is to either use the “same” PK column for source and target table or switch to Classic Replicat (CR). As I mentioned in the previous paragraph, the PK has to match on both sides of the replication environment. If you are replicating tables with no PKs, then you need to define a key using KEYCOLS. Although this bug appears to be valid, I would have to ask how did you setup your environments if you were having problems with updates and deletes during replication?

Thanks

BC

> On Feb 16, 2018, at 9:57 AM, Reen, Elizabeth (Redacted sender "elizabeth.reen" for DMARC) <dmarc-noreply_at_freelists.org> wrote:
>
> GG requires that you understand the app. It also requires that you make the changes in both DBs. It’s not unpredictable, you just need to stay on top of it and the changes. We ran into all sorts of sequence issues. It turns out that the app was not using sequences but reading the max and adding 1. GG will find all of the weaknesses in your code.
>
> Liz
>
>
> From: oracle-l-bounce_at_freelists.org [mailto:oracle-l-bounce_at_freelists.org] On Behalf Of Ls Cheng
> Sent: Thursday, February 15, 2018 5:50 PM
> To: Chris Taylor
> Cc: Tim Gorman; Scott Canaan; fuzzy.graybeard_at_gmail.com; oracle-l_at_freelists.org
> Subject: Re: Oracle High Availability Question(s)
>
> Hi
>
> Just some warning with GoldenGate.
>
> Recently we had a big issue with GoldenGate in the most critical database in one of or customers. GoldenGate ignored all updates in target because the target and source had different PK (target had same table structure as source but partitioned so PK had an additional column, the partitioning key), just because of different PK even we knew that and specified KEYCOLS in the target the updates was ignored until 1 month later a data analyst noticed some data divergence and adviced our support team. We had to restore 4 backups (each 4TB) to recover the data. It turns out bug 26553124 and there werent even a Alert in MOS explaining such behaviour.
>
> Lesson learnt. GoldenGate is unpredictable, this is the second time in 2 years I see such data divergence due to GoldenGate bug and the impact is huge, huge and huge because data divergence is soooo difficult to detect.
>
> So for DR stick with Data Guard (Physical Standby). I consider RAC as HA because you have several nodes available for a single copy of data (I consider DR more than one copy of data) and the death of one node still makes the application available, only 100%/number of nodes is impacted and the recovery is fast.
>
> Thanks
>
>
> On Thu, Feb 15, 2018 at 8:47 PM, Chris Taylor <christopherdtaylor1994_at_gmail.com <mailto:christopherdtaylor1994_at_gmail.com>> wrote:
> What about GoldenGate Tim??
>
> (Since I find myself trying to support this with no training/prior experience and learning in the deep end of the pool.... :)
>
> Chris
>
>
> On Wed, Feb 14, 2018 at 3:23 PM, Tim Gorman <tim.evdbt_at_gmail.com <mailto:tim.evdbt_at_gmail.com>> wrote:
> Going into Data Guard without training is uncomfortable, but going into RAC without training is untenable. You can try it, but it is going to hurt a lot, and you'll end up with something you'll regret.
>
> ---
>

--
http://www.freelists.org/webpage/oracle-l
Received on Fri Feb 16 2018 - 16:46:52 CET

Original text of this message