服务热线:13616026886

技术文档 欢迎使用技术文档,我们为你提供从新手到专业开发者的所有资源,你也可以通过它日益精进

位置:首页 > 技术文档 > 数据库技术 > Oracle技术 > Oracle开发 > 查看文档

通过db查询的两个数据库间scn会被同步

【赛迪网-it技术报道】通过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被触发的。

扫描关注微信公众号