Re: Find the latest SCN # in phisical standby

From: Kellyn Pedersen <kjped1313_at_yahoo.com>
Date: Tue, 12 Jan 2010 15:14:46 -0800 (PST)
Message-ID: <789205.75964.qm_at_web32005.mail.mud.yahoo.com>



When I worked with standby's, I always compared from v$log_history-
 

select next_change# from v$log_history
where recid =
(select max(recid) from v$log_history);
 

And compared it to the primary with a monitoring script that did this type of steps- sqlplus -s << EOF | read STDBY_CURRENT_ARCH connect / as sysdba
set feedback off
set pagesize 0
select sequence# from v\$log_history
where recid =
(select max(recid) from v\$log_history); EOF
echo Standby archive log: ${STDBY_CURRENT_ARCH} sqlplus -s << EOF | read PRIMARY_CURRENT_ARCH system/`crypt oracle < ${WORKING_DIR}/.pwd`_at_${REMOTE_SID} set feedback off
set pagesize 0
select sequence#
from v\$archived_log
where recid =
(select max(recid) from v\$archived_log); EOF
echo Primary archive log: ${PRIMARY_CURRENT_ARCH} let ARCH_GAP_ACTUAL=${PRIMARY_CURRENT_ARCH}-${STDBY_CURRENT_ARCH} echo Archive Log Gap: $ARCH_GAP_ACTUAL
if (( ${ARCH_GAP_ACTUAL} > ${ARCH_GAP_TOLERANCE} )) then
print "${HOST} standby archive log gap is > ${ARCH_GAP_TOLERANCE} logs behind ${REMOTE_SID} at ${DATE}" > ${OUT_FILE} print "${HOST} standby archive log gap is > ${ARCH_GAP_TOLERANCE} logs behind ${REMOTE_SID} at ${DATE}"
 

then mail, etc., so forth and so on....

Kellyn Pedersen
Multi-Platform DBA
I-Behavior Inc.
http://www.linkedin.com/in/kellynpedersen www.dbakevlar.blogspot.com
 

"Go away before I replace you with a very small and efficient shell script..."

  • On Tue, 1/12/10, Jiang, Lu <Lu.Jiang_at_umassmed.edu> wrote:

From: Jiang, Lu <Lu.Jiang_at_umassmed.edu> Subject: Find the latest SCN # in phisical standby To: "ORACLE-L" <oracle-l_at_freelists.org> Date: Tuesday, January 12, 2010, 3:43 PM

Hi all,
 

I have set up a real time apply physical standby and trying to find how Real Time it is. However it seems that it is hard to find the latest SCN# on physical standby database, v$database (current_scn) only gets updated to the last scn which has been archived. Here is what I got:
 

SQL> select recovery_mode from v$archive_dest_status where dest_id=2; RECOVERY_MODE



MANAGED REAL TIME APPLY
 

SQL> select name, value, time_computed from v$dataguard_stats where name='apply lag'; NAME            VALUE                TIME_COMPUTED
--------------- -------------------- ------------------------------
apply lag       +00 00:00:00         12-JAN-2010 15:26:02
 
 

Primary last change time:
 

SQL> select scn_to_timestamp(current_scn) from v$database; SCN_TO_TIMESTAMP(CURRENT_SCN)

12-JAN-10 03.05.41.000000000 PM
 
 

Standby last change time: - not updated after last log archived
 

SQL> select current_scn from v$database; CURRENT_SCN

  579664324

SQL> select scn_to_timestamp(579664324) from v$database;  SCN_TO_TIMESTAMP(579664324)

11-JAN-10 11.27.27.000000000 PM
 

SQL> select max(FIRST_CHANGE#),max(NEXT_CHANGE#) from v$archived_log; MAX(FIRST_CHANGE#) MAX(NEXT_CHANGE#)
------------------ -----------------

         579266831         579664325
 

Could someone share some light on this?
 

Thanks,
Lu
--
http://www.freelists.org/webpage/oracle-l
Received on Tue Jan 12 2010 - 17:14:46 CST

Original text of this message