RE: question on 10.2.0.2.0 Data Guard -- transmit redo data

From: Mathias Zarick <Mathias.Zarick_at_trivadis.com>
Date: Tue, 20 Jan 2009 09:45:05 +0100
Message-ID: <370BF313301A024C962B057686863683017CEBE9_at_MSXVS04.trivadis.com>



Hi Guang, Alex,

you can query "select archiver from v$archive_dest where dest_id= ... " to get to now which
process is sending the redo to the standby database.

Actually for Log Shipping there 4 modes.

1.) ARCH without Standby Redo Logs on Standby
2.) ARCH with Standby Redo Logs on Standby
3.) LGWR with Standby Redo Logs on Standby / asynchronous mode
4.) LGWR with Standby Redo Logs on Standby / synchronous mode

1.)
you configure ARCH in log_archive_dest_n or in DGMGRL property LogXptMode
this is the default anyway
2.)
same way to configure.
Oracle automatically uses SRLs if available and so can start a recovery on standby from SRLs even if the log is not yet completetly
transfered.
3.) you need SRLs.
you configure LGWR ASYNC in log_archive_dest_n or ASYNC in DGMGRL property LogXptMode
LGWR writes to local online redo logs, local LNS process reads from there and asynchronously
writes to standby sites RFS, RFS writes to SRL, and oracle starts recovery directly
from SRL (real time appyly).
4.) you need SRLs.
you configure LGWR SYNC in log_archive_dest_n or SYNC in DGMGRL property LogXptMode
LGWR writes to online redo logs files and to the LNS process, LNS writes to standby
RFS and this one to standby redo log. Everything synchronously. A commit on prim is
finished if written in local log and in remote standby log (performance impact).

Protection level are another dimension in this game. MaxAvailability and MaxProtection
need both the synchronous flavor of log shipping.

HTH Mathias

-----Original Message-----
From: oracle-l-bounce_at_freelists.org
[mailto:oracle-l-bounce_at_freelists.org] On Behalf Of Guang Mei Sent: Monday, January 19, 2009 4:41 PM
To: Alex Fatkulin
Cc: oracle-l
Subject: Re: question on 10.2.0.2.0 Data Guard -- transmit redo data

Alex,
Thanks for your help. Yes, querying protection_mode gave me MAXIMUM PERFORMANCE. But I was also hoping that somehow I could run a query and it would tell me it is LGWR or ARCH process in that mode. I can indirectly confirm that ARCH process is running (to propagate changes) by dropping all standby redo logs on the standby, and then "alter system switch logfile", to see if changes have been propagated (they were).

BTW, from standby's alert_log, I got:

Mon Jan 19 10:23:17 2009
Completed: alter database recover managed standby database disconnect from session Mon Jan 19 10:23:59 2009 idle dispatcher 'D000' terminated, pid = (13, 5) Mon Jan 19 10:25:37 2009
RFS[1]: No standby redo logfiles created RFS[1]: Archived Log: '/d10/oradata/ES_PROD/ARCH/1_18_673284179.arc' Mon Jan 19 10:25:42 2009
Media Recovery Log /d10/oradata/ES_PROD/ARCH/1_18_673284179.arc

So I assume that confirms RFS is using ARCH.

Guang

  • Original Message ----- From: "Alex Fatkulin" <afatkulin_at_gmail.com> To: <gmei_at_prospectiv.com> Cc: "oracle-l" <oracle-l_at_freelists.org> Sent: Saturday, January 17, 2009 2:43 AM Subject: Re: question on 10.2.0.2.0 Data Guard -- transmit redo data

> Guang,
>
> first of all, the protection level is being set by alter database set
> stanbdy database to... statement
>
> different combination of log shipping options are necessarily to
> support given level of protection
>
> query protection_mode from v$database to find out the current settings
> (though noaffirm is supported by maximum protection only)
>
> default is arch, alert log can confirm this (set log_archive_trace to
> 1 and take a look)
>
> On Fri, Jan 16, 2009 at 2:21 PM, Guang Mei <gmei_at_prospectiv.com>
wrote:
>> I have an oracle 10.2.0.2.0 Data Guard setup now (physical standby)
on
>> two
>> linux boxes that I use for learning. And I would like to know if the
db
>> is
>> using "standby redo logs" or "archived logs" to apply the change .
>>
>> on Primary DB, I have:
>>
>> SQL> select dest_id,target,log_sequence,AFFIRM,TRANSMIT_MODE from
>> V$ARCHIVE_DEST;
>>
>> DEST_ID TARGET LOG_SEQUENCE AFF TRANSMIT_MOD
>> ---------- ------- ------------ --- ------------
>> 1 PRIMARY 15 NO SYNCHRONOUS
>> 2 STANDBY 0 NO SYNCHRONOUS
>> 3 PRIMARY 0 NO SYNCHRONOUS
>> 4 PRIMARY 0 NO SYNCHRONOUS
>> 5 PRIMARY 0 NO SYNCHRONOUS
>> 6 PRIMARY 0 NO SYNCHRONOUS
>> 7 PRIMARY 0 NO SYNCHRONOUS
>> 8 PRIMARY 0 NO SYNCHRONOUS
>> 9 PRIMARY 0 NO SYNCHRONOUS
>> 10 PRIMARY 0 NO SYNCHRONOUS
>>
>> 10 rows selected.
>> Also from Primary DB's init.ora:
>>
>> STANDBY_FILE_MANAGEMENT=auto
>> log_archive_dest_2 = 'SERVICE=ES_PROD reopen=60'
>> log_archive_dest_state_2 = ENABLE
>>
>> Based on the above, can I say the setup is "Maximum Performance" mode
(I
>> think so, because Affirm=No)? And log shipping (from Primary to
Standby)
>> is
>> "ARCH" (because TRANSMIT_MOD=SYNCHRONOUS) ? I can not find anywhere
to
>> tell
>> me that if I do not specify say "LGWR ASYNC", what are the default
values
>> for these in "log_archive_dest_2"? I only specify reopen and tnsnames

>> entry
>> here.
>>
>> Also with these configuration and after I created the same number of
>> "standby redo logs" on standby as the primary "online redo logs", and

>> when I
>> made some db changes, then alter system switch logfile on primary, I
can
>> see
>> the archived logs were shipped to the standby, the db changes were
also
>> there in db (I opened the standby in read-only mode and can see the
new
>> tables I created on primary). But I am not sure if the changes were
>> applied
>> through shipped "archive logs" or through "standby redo logs".
Basically
>> I
>> want to know if "Redo Archival Process" is LGWR or ARCH?
>> Thanks.
>>
>> Guang Mei
>>
>>
>
>
>
> --
> Alex Fatkulin,
> http://afatkulin.blogspot.com
> http://www.linkedin.com/in/alexfatkulin
>

--
http://www.freelists.org/webpage/oracle-l


--
http://www.freelists.org/webpage/oracle-l
Received on Tue Jan 20 2009 - 02:45:05 CST

Original text of this message