通过DB查询的两个数据库间SCN会被同步

日期: 2009-03-30 作者:dudu 来源:TechTarget中国 英文

  通过DB查询的2个数据库间,SCN会被同步:

  测试的具体过程:

  1.首先获得本地的SCN

[oracle@jumper oracle]$ sqlplus “/ as sysdba”
SQL*Plus: Release 9.2.0.4.0 – Production on Tue Nov 7 21:07:56 2006
Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.
Connected to:
Oracle9i Enterprise Edition Release 9.2.0.4.0 – Production
With the Partitioning option
JServer Release 9.2.0.4.0 – Production
SQL> select dbms_flashback.GET_SYSTEM_CHANGE_NUMBER scn from dual;
SCN
———-
5287824 

  2.通过db link进行SCN查询


SQL> set serveroutput on
SQL> set feedback off
SQL> declare
  2  r_gname    varchar2(40);
  3  l_gname    varchar2(40);
  4  begin
  5     execute immediate
  6     ‘select GLOBAL_NAME from global_name@hsbill’ into r_gname;
  7     dbms_output.put_line(‘gname of remote:’||r_gname);
  8     select GLOBAL_NAME into l_gname from global_name;
  9     dbms_output.put_line(‘gname of locald:’||l_gname);
 10  end;
 11  /
gname of remote:HSBILL.HURRAY.COM.CN
gname of locald:EYGLE
SQL> declare  2  r_scn      number;  3  l_scn      
number;  4  begin  5     execute immediate  6     ‘select
 dbms_flashback.GET_SYSTEM_CHANGE_NUMBER@hsbill from dual’ 
into r_scn;  7     dbms_output.put_line
(‘scn of remote:’||r_scn);  8     select dbms_flashback.
GET_SYSTEM_CHANGE_NUMBER into l_scn from dual;  9     
dbms_output.put_line(‘scn of locald:’||l_scn); 10  
end; 11  /scn of remote:18992092078scn of locald:18992092078 

  大家可以看到,通过DB Link查询后,两个数据库的SCN被同步。

  手工执行checkpoint,此时可以发现数据库的checkpoint scn被增进:


SQL> col scn for 999999999
SQL> select file#,CHECKPOINT_CHANGE# scn from v$datafile;
     FILE#               SCN
———- —————–
         1           5287605
         2           5287605
         3           5287605
         4           5287605
SQL> alter system checkpoint;
System altered.
SQL> select file#,CHECKPOINT_CHANGE# scn from v$datafile;
     FILE#        SCN
———- —————–
       1       18992092162
       2       18992092162
       3       18992092162
       4       18992092162 

  以上的这种机制其实是为了满足分布式事务(Distributed Transaction)的需要,只不过在此处是通过db link被触发的。

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

电子邮件地址不会被公开。 必填项已用*标注

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

相关推荐