Skip to Main Content

Breadcrumb

Question and Answer

Connor McDonald

Thanks for the question, Shaun.

Asked: November 16, 2015 - 10:06 am UTC

Last updated: August 08, 2019 - 3:28 am UTC

Version: 11g

Viewed 50K+ times! This question is

You Asked

Hi,

Please could i get some answers for the following:

What is the difference between DG and ADG ?

What are the benefits of DG ?

What are the benefits of ADG ?

What are the risks / constraints of using a DR environment for near real time production reporting using either DG or ADG ?

Thank you for the input.

and Connor said...

From the docs:

Oracle Data Guard ensures high availability, data protection, and disaster recovery for enterprise data. Oracle Data Guard provides a comprehensive set of services that create, maintain, manage, and monitor one or more standby databases to enable production Oracle databases to survive disasters and data corruptions. Oracle Data Guard maintains these standby databases as copies of the production database. Then, if the production database becomes unavailable because of a planned or an unplanned outage, Oracle Data Guard can switch any standby database to the production role, minimizing the downtime associated with the outage. Oracle Data Guard can be used with traditional backup, restoration, and cluster techniques to provide a high level of data protection and data availability.

So both DG and ADG provide those additional copies of the database. Early DG versions provided that facility solely for disaster recovery. Nowadays, there are many other things you can use DG for, eg, you could backup the DG copy rather than the production database to ease resource consumption etc.

Where ADG offers more is that you can have the database open for read-only (eg reports) whilst it is still being kept in sync with your primary database. With normal DG, if you want it open read-only, you must pause the sync process.

Hope this helps.

Rating

  (7 ratings)

Is this answer out of date? If it is, please let us know via a Comment

Comments

ADG vs OGG

Shaun Pappas, November 17, 2015 - 8:47 am UTC

Thanks.

Next question:

What is the difference between ADG and GoldenGate ?

When would i use each of them ? What is best practise ?

I have a reporting requirement.
Connor McDonald
November 18, 2015 - 6:27 am UTC

ADG maintains a physical copy of your primary database (that can be read by queries). You are 100% positive that it and the primary are the same.

Goldengate replicates *changes* from your primary database to a secondary but quite separate copy of your database. This second copy might be a subset, or superset, or simply be divergent from your primary. The advantage is that this secondary database can be read-write...its really a *different* database into which changes are being pushed.

prod DB vs standby DB

Shaun Pappas, November 18, 2015 - 1:38 pm UTC

next question please: what are the risks of running OGG off the standby DB vs the risks of running it off the prod db ?

What the risks of both ?

What is best practise ?

Thank you
Connor McDonald
November 19, 2015 - 1:56 am UTC

(To my knowledge) you cannot run Goldengate from a source which is a physical standby (in that I've seen no reference to such a model in the documentation)

Some good info (albeit a little out of date) about GG restrictions here:

http://www.juliandyke.com/Research/GoldenGate/GoldenGateRestrictions.php

Golden Gate limitatons

khal, March 02, 2017 - 4:03 am UTC

Goldengate replicates *changes* from your primary database to a secondary

Yes with a huge limitation .

see 1.6.10 Non-Supported Oracle Data Types

https://docs.oracle.com/goldengate/1212/gg-winux/GIORA/system_requirements.htm#GIORA110

GG does not fully replicated all to target database and this is why is not supported for example EBS and SAP or any major application and you can use a reporting tool on target and not active active database.


===========Supported And Unsupported Oracle Datatype====
1280584.1 Where To Find The List Of Supported And Unsupported Oracle Data Types for GoldenGate ?

Oracle GoldenGate database Schema Profile check script for Oracle DB (Doc ID 1296168.1) Supported datatype inGG
For Golden Gate 11.1

Manual : Oracle GoldenGate Oracle Installation and Setup Guide 11g Release 1 (11.1.1)
Page 10 -> Section "Supported data types"
Page 14 -> Section "Non-supported data types"



GG UNSUPPORTED DDL
====================


alter audit policy
alter database
alter disk group
alter flashback archive
Alter Pluggable Database
alter rollback segment

create audit policy
create bitmapfile
create control file
create database
create disk group
create flashback archive
create pfile
Create Pluggable Database
create restore point
create rollback segment
create schema
create spfile

drop audit policy
drop bitmapfile
drop database
drop disk group
drop flashback archive
Drop Pluggable Database
drop restore point
drop rollback segment

flashback database
flashback table
Connor McDonald
March 03, 2017 - 2:12 am UTC

Alex, December 06, 2017 - 8:46 pm UTC

Hi all,

We are trying to improve our failover time between data centers. We have a large number of application containers that need to be restarted in order to get them to reconnect to the standby (new primary). The approach we tried to take is to have them already up and connected to the standby so that we could just fail data guard over and be ready to go. We found that it took Oracle quite a while to bring the standby up with connections already in the database. I suppose it's like trying to shutdown immediate a regular database with stuff going on? I was wondering if you had any suggestions to speed this up or a better alternative altogether. Thanks.
Connor McDonald
December 07, 2017 - 9:48 am UTC

The MAA team has done a fair bit of testing in this area.

They documented their findings and recommendations here

http://www.oracle.com/technetwork/database/availability/maa-roletransitionbp-2621582.pdf

Difference between DG and ADG

Milind, December 07, 2017 - 2:34 pm UTC

Also as I understand data Guard doesn't require an extra license, however for Active Data Guard additional license is required.


Connor McDonald
December 08, 2017 - 6:32 am UTC

Correct.

Whats the difference between Logical Standby and Active Data guard

Manish, August 02, 2019 - 11:20 am UTC

Although both Logical Standby and Active Data guard serve the same purpose. Both are used for reporting.

Only difference i could see Logical is opened in READ/WRITE Mode and Dataguard in Read only with Apply. Synch is performed on both of them.

ADG got licencing cost. So what are the other difference that give preference to ADG
Connor McDonald
August 05, 2019 - 10:47 am UTC

Although both Logical Standby and Active Data guard serve the same purpose


Not really. And it not a one-versus-the-other discussion.

Logical Standy gives you a production replica that can diverge from the source. The implies some limitations on what you are allowed to have on the source (in terms of data types and options etc) for the benefit of having that divergence. That divergence also has implications in terms of that database being a strict disaster recovery option.

Active Data Guard keeps that sync with the primary much tighter, which puts it closer to a true DR solution, but you sacrifice that divergence that logical standby gives you.

To Connor

J. Laurindo Chiappa, August 06, 2019 - 2:32 pm UTC

Connor, maybe you could comment about Performance in Logical Standby Databases for very active databases: if the primary db run some heavy/complex/slow DML that takes a lot of time AND generates a mountain of undo/redo, the very same DML WILL be executed in the logical standby database, doing so many I/Os, generating redo and undo, consuming resources and taking time there in general...
In the other way, a dataguard done via Physical Standby don´t have this issue, only the redo will be sent and applied and that´s it....

Regards,

Chiappa
Connor McDonald
August 08, 2019 - 3:28 am UTC

Good point. I should have noted a key difference:

Physical DataGuard

- redo generated on primary, applied directly to standby

Logical DataGuard

- redo generated on primary
- converted to SQL statements
- SQL statements applied to standby