Oracle FAQ Your Portal to the Oracle Knowledge Grid
HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US
 

Home -> Community -> Mailing Lists -> Oracle-L -> Re: Current SCN number.

Re: Current SCN number.

From: Tanel Põder <tanel.poder.003_at_mail.ee>
Date: Mon, 15 May 2006 20:20:44 +0800
Message-ID: <01cb01c67819$fea660f0$6401a8c0@porgand>


>>> > How to get current SCN number other than using dbms_flashback package.

In 8i where there's no dbms_flashback nor v$database.current_scn info, one could read the current SCN ouf from SGA memory directly. The following example displays SCN with all three mentioned techniques on a 32bit environment. )In 64bit environment the script would be even simpler as all 8 bytes of SCN are accessible on one word-size line from X$KSMMEM).

SQL> select ksmfsadr from x$ksmfsv where ksmfsnam = 'kcsgscn_';

KSMFSADR



20009104

SQL> l
  1 select dbms_flashback.get_system_change_number flashback_scn,

  2         current_scn,
  3         (select to_number(ksmmmval,'XXXXXXXX')
  4         from x$ksmmem where addr = hextoraw('20009104')) * power(2,32) +
  5         (select to_number(ksmmmval,'XXXXXXXX')
  6         from x$ksmmem where addr = hextoraw('20009108')) direct_scn
  7* from v$database
SQL> / FLASHBACK_SCN CURRENT_SCN DIRECT_SCN
------------- ----------- ----------

      2633692 2633692 2633692

The SCN lives in fixed part of SGA, thus its location doesn't change over instance bounces or SGA size changes. It might change only if you relink Oracle binary or change SGA mapped base address.

Tanel.

--
http://www.freelists.org/webpage/oracle-l
Received on Mon May 15 2006 - 07:20:44 CDT

Original text of this message

HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US