Oracle Golden Gate
Oracle Goldengate can be used as a replication tool, ETL, and even as a DR solution.
Oracle
Goldengate (GG) is probably the best replication software and it is
very easy to configure and deploy it in large scale environment. Here
are some of the things you need to be aware of:
1)
All GG configuration files are ascii text based files. Very easy to
make changes but it is prone to human errors in an environment having
many DBA's working on it.
2) In order to use
parallel apply threads, GG breaks down the database transaction into
multiple transactions based on the hashing key defined for range split
of the data. So, transactional consistency will not be guaranteed during
real time but there won't be any data loss, but make sure that your
application can tolerate this.
3) If there is
no primary key or unique index exists on any table, GG will use all the
columns as supplemental logging key pair for both extracts and
replicats. But if you define key columns in the GG extract parameter
file and if you don't have the supplemental logging enabled on that key
columns combination, then GG will assume missing key columns record data
as "NULL", which is a huge deal, and this will introduce logical data
corruption on the target.
4) GG started
supporting bulk data loads with their 11.1 release but any NOLOGGING
data changes will be silently ignored without any warning.
5) GG doesn't support compression on the source database.
6)
GG does support DDL replication but it is not easy to do selective DDL
replication, it replicates every DDL that happens on the source database
which is not desirable for some customers.
7) Tables being replicated to on the target can also be written to by any other application or DBA's.
8)
GG supports ignoring data conflicts for updates after the first
instantiation of the target database until it catches up. But it is very
easy to forget turning off that parameter and any updates being lost
will not be alerted by GG.
9) GG still works
by reverse engineering the Oracle redolog. This may not be totally true
with GG 11, but I expect GG to interpret Oracle redo more directly in
later versions of 11 or 12.
10) GG dynamically
decides to change the key columns that form the supplemental logging
based on the state of primary key (i.e. in VALIDATED or NONVALIDATED
state), which can introduce data corruptions on the target databases as
the expected key columns data is missing in the trail files and they
will be set to NULL. They now have the patch available for this, you can
set "_USEALLKEYCOLUMNS and ALLOWNONVALIDATEDKEYS" parameters in GLOBALS
file to get around this problem.
Use cases:
I
think Oracle is not promoting logical standby as much as they should
have. Oracle logical standby guarantees data consistency, data
integrity, maintains order of transactions, and doesn't let target
database tables to be modified by others which by itself offer great
confidence in data quality.
Oracle Xstreams
offers greatest flexibility and superior performance in extracting data
from the source database and applying the same to the target database.
For
Oracle database upgrades or having a logical DR standby it is better to
use Oracle logical standby, use Xstreams if you want more flexibility
and high performance in moving data across databases, and use GG for
keeping the downstream database up to date for reporting, ETL purposes,
or to move data across hybrid databases.
No comments:
Post a Comment