通过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中国
相关推荐
-
数据库产品巡礼:IBM DB2概览
IBM DB2关系型数据库管理系统提供了支持多平台系统的关键技术,它具备较高的可用性和良好的性能。
-
IBM加入Spark社区 计划培养百万数据科学家
IBM近日宣布,将大力推进Apache Spark项目,并计划培养超过100万名Spark数据科学家和数据工程师。
-
IBM成立物联网部门旨在整合未用数据
IBM准备在未来四年投资30亿美元成立一个专门的物联网(IoT)部门,并由此建立一个基于云的开放平台来帮助客户进行更好的数据整合。
-
ODP项目能否成为Hadoop助推器?
开放数据平台联盟的成立旨在为了推动Hadoop的标准化,但项目能否最终成功,或能否项向着承诺的方向发展,还有很多不确定因素。