Re: Data movement logic in data guard

  • From: Lok P <loknath.73@xxxxxxxxx>
  • To: Oracle L <oracle-l@xxxxxxxxxxxxx>
  • Date: Fri, 18 Dec 2020 16:27:36 +0530

Actually in golden gate setup with multiple parallel replication threads ,
we have encountered scenarios where two transactions generated from source
can reach target in different order thus causing the data pickup from
target to miss some rows.



On Fri, Dec 18, 2020 at 9:30 AM Lok P <loknath.73@xxxxxxxxx> wrote:

Its version 11.2.0.4 of oracle exadata. We have a requirement in which we
need to move the data to another system and for that we want to utilize the
DR database(which is a physical standby with data guard configured) rather
than Primary, as we want to not to affect the key applications which are
running on primary. And we are almost saturating the DB resources on the
primary during peak hours.

For copying/moving data without miss in each ~15minutes interval
frequency, we are relying on "date_created" column as reference column of
the transaction table , so in case we have some additional lag from primary
to DR, is it possible that a record created on primary and DR as below
sequence, such that the row-3 created on DR before Row-2? In that case we
may miss that row when we take MAX(date_created) from our transaction table
to move the data.

In such a scenario , how should we make our logic full proof  to pick the
max(date_created) on source so that we won't miss any data? Or should we some
way utilize the column last_time of v$standby_log to make our logic full
proof?

Aso i am wondering if by any way we can handle UPDATE/DELETE of the
records in source?

On Primary:-

Row-1 created at 18th DEC 10:00AM with date_created as 18th DEC 10:00AM

Row-2 created at 18th DEC 10:05 AM with date_created as 18th DEC 10:05 AM

Row-3 created at 18th DEC 10:06 AM with date_created as 18th DEC 10:06 AM

On DR when we have lag of say ~5minutes:-

Row-1 created at 18th DEC 10:05AM with date_created as 18th DEC 10:00AM

Row-3 created at 18th DEC 10:11:01 AM with date_created as 18th DEC 10:06AM

Row-2 created at 18th DEC 10:11:02 AM with date_created as 18th DEC 10:05AM






Other related posts: