ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 通过数据库链查询会导致源和目标库SCN同步

通过数据库链查询会导致源和目标库SCN同步

原创 Linux操作系统 作者:yangtingkun 时间:2012-04-06 23:57:21 0 删除 编辑

在通过数据库链执行跨数据库的查询时,Oracle会自动将两个数据库的SCN进行同步。

 

 

以前Eygle提到过这个问题,这次在讨论一个和远端数据库SCN有关的问题时,又碰到了这个问题,于是简单记录一下。

SQL> conn test/test@192.168.0.19:1666/ora102044
Connected.
SQL> select current_scn from v$database;

CURRENT_SCN
-----------
2745758

SQL> conn test/test@192.168.0.20:15210/orcl
Connected.
SQL> select current_scn from v$database;

CURRENT_SCN
-----------
5642527

SQL> create database link ora102044
2 connect to test
3 identified by test
4 using '192.168.0.19:1666/ora102044';

Database link created.

SQL> select current_scn from v$database@ora102044;

CURRENT_SCN
-----------
5642628

SQL> select current_scn from v$database;

CURRENT_SCN
-----------
5642638

SQL> conn test/test@192.168.0.19:1666/ora102044
Connected.
SQL> select current_scn from v$database;

CURRENT_SCN
-----------
5642702

可以看到,在通过数据库链执行查询后,Oracle会同步两个数据库的SCN,取两个数据库最大的SCN作为新的SCN,执行查询时刻,两个数据库的SCN一致。

Oracle的这个机制应该是为了分布式查询的一致性,这样一个查询只需要一个SCN就可以在分布式查询的任何一个数据库中来获取一致性。

但是这种实现也会存在一定的潜在问题,其中一个数据库的SCN可能会从一个较低的数值,一下增长到一个很高的数据。这个例子中,ORA102044数据库的SCN就增加了一倍以上。而对于实际环境中,SCN的增加可能是几倍、几十倍甚至是上百倍,从而引发一些其他的bug

 

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/4227/viewspace-720764/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
暂无介绍

注册时间:2007-12-29

  • 博文量
    1955
  • 访问量
    10385620