RE: Question re Physical and logical standby

From: William Wagman <wjwagman_at_ucdavis.edu>
Date: Tue, 14 Oct 2008 11:27:53 -0700
Message-ID: <2A8185DC02A8CE4C8413E0A26A8A831A01D718B6D7@XEDAMAIL2.ex.ad3.ucdavis.edu>


Jason,

Yes it is but still my question, is this a different way of building the dictionary and in fact is that what the command

SQL> alter database add supplemental log data (primary key, unique index) columns;

Is doing? Also, after studying a bit more it appears that if this is done on the primary prior to building the standby then the change will be propagated with the backup. If it is done after the standby has been built then it must be done on both the primary and the standby. Is that correct?

Thanks.

Bill Wagman
Univ. of California at Davis
IET Campus Data Center
wjwagman_at_ucdavis.edu
(530) 754-6208
From: jason arneil [mailto:jason.arneil_at_gmail.com] Sent: Tuesday, October 14, 2008 11:22 AM To: William Wagman
Cc: oracle-l_at_freelists.org
Subject: Re: Question re Physical and logical standby

Hi William,

I'd say this was pretty comprehensively dealt with in the oracle documentation,http://download.oracle.com/docs/cd/B19306_01/server.102/b14239/create_ls.htm#i91652

to quote the relevant part:

"A LogMiner dictionary must be built into the redo data so that the LogMiner component of SQL Apply can properly interpret changes it sees in the redo. As part of building LogMiner Multiversioned Data Dictionary, supplemental logging is automatically set up to log primary key and unique-constraint/index columns. The supplemental logging information ensures each update contains enough information to logically identify each row that is modified by the statement." To build the LogMiner dictionary, issue the following statement: SQL> EXECUTE DBMS_LOGSTDBY.BUILD; This is done only on the primary.

jason.

--

http://jarneil.wordpress.com

2008/10/14 William Wagman <wjwagman_at_ucdavis.edu> Greetings,

I'm running Oracle 10.2.0.4 EE 64-bit on Windows Server 2003. I am performing these tasks from the command line rather than using the OEM. I have a physical standby for disaster recovery and now wish to create a logical standby to be used for reporting purposes. I have the second physical standby created and am preparing to transition to a logical standby. Two sources (Matthew Hart and Scott Jesse's book on High Availability and the technet article by Darl Kuhn, http://www.oracle.com/technology/oramag/oracle/04-jul/o44tech_avail.html have as the first step to enable supplemental logging on the primary via sql...

SQL> alter database add supplemental log data (primary key, unique index) columns;

Hart and Jesse say it should also be done on the standby whereas the technet article only mentions doing it on the primary.

My first question, does this need to be run on the primary and both standbys, only the primary and the logical standby or only the primary?

The Oracle documentation (chapter 4 of the Oracle Data Guard Concepts and Administration, 'Creating A Logical Standby Database') makes no mention of this but does mention building a dictionary in the redo data as follows

SQL> EXECUTE DBMS_LOGSTDBY.BUILD; My second question (point of confusion if you will), as I read the documentation it appears that these two approaches are actually different ways of doing the same thing, is that correct? If so and I choose to use DBMS_LOGSTDBY must that be run on the primary and both standbys, only the primary and the logical standby or only the primary?

Thanks.

Bill Wagman
Univ. of California at Davis
IET Campus Data Center
wjwagman_at_ucdavis.edu
(530) 754-6208

--

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

--
--

http://jarneil.wordpress.com
--

http://www.freelists.org/webpage/oracle-l Received on Tue Oct 14 2008 - 13:27:53 CDT

Original text of this message