GLOBAL_NAMES参数的详细研究

  Oracle数据库GLOBAL_NAMES参数的相关知识是本文我们主要要介绍的内容,当GLOBAL_NAMES参数设置为TRUE时,使用DATABASE LINK时,DATABASE LINK的名称必须与被连接库的GLOBAL_NAME一致。下面做一个测试,在测试中,创建数据库链接的库为XJ(WINDOWS 2003 ORACLE 10g 10.2.0.1),被链接的库为DMDB(LINUX AS5 ORACLE 10g 10.2.0.1 RAC)。

    SQL> show parameter global_names  NAME

    TYPE        VALUE

    ------------------------------------ ----------- ---------  global_names

    boolean     FALSE  SQL> select * from global_name;;  GLOBAL_NAME

    ----------------------------------------------------------  DMDB

    SQL> show parameter global_names  NAME

    TYPE        VALUE

    ------------------------------------ ----------- -------  global_names

    boolean     FALSE  SQL> select * from global_name;  GLOBAL_NAME

    --------------------------------------------------------

    SQL> create database link test_link connect to test identified by test using 'DMDB';

    数据库链接已创建。

    SQL> select * from dual@test_link ;

    SQL> select * from dual@test_link ;

    SQL> create database link test_link2 connect to test identified by test using 'DMDB';

    数据库链接已创建。

    SQL> select * from dual@test_link2 ;

    SQL> alter system set global_names=true;

    系统已更改。  SQL> select * from dual@test_link2 ;

    select * from dual@test_link2   *第 1 行出现错误:

    ORA-02085: 数据库链接 TEST_LINK2 连接到 DMDB  SQL> select * from dual@test_link

    select * from dual@test_link   *第 1 行出现错误:

    ORA-02085: 数据库链接 TEST_LINK 连接到 DMDB  而再次将XJ库的global_names设为FALSE,则数据库链接又可用了。

    SQL> alter system set global_names=false;  系统已更改。

    SQL> select * from dual@test_link ;

    SQL> select * from dual@test_link2 ;

    在DMDB库上:  SQL> alter system set global_names=false;

    系统已更改。  在XJ库上:  SQL> select * from dual@test_link ;

    在XJ库上:  SQL> alter system set global_names=true;

    系统已更改。

    SQL> create database link dmdb connect to test identified by test using 'dmdb';

    数据库链接已创建。  SQL> select * from dual@dmdb ;

    SQL> select * from dual@test_link ;

    select * from dual@test_link   *  第 1 行出现错误:  ORA-02085: 数据库链接 TEST_LINK 连接到 DMDB  SQL> select * from dual@test_link2 ;

    select * from dual@test_link2   *第 1 行出现错误:  ORA-02085: 数据库链接 TEST_LINK2 连接到 DMDB

    SQL> create database linkdmdb@link1connect to test identified by test using 'dmdb';

    数据库链接已创建。

    SQL> create database linkdmdb@link2connect to test identified by test using 'dmdb';

    数据库链接已创建。

    SQL> select * fromdual@dmdb ;

    SQL> select * fromdual@dmdb@link1 ;

    SQL> select * fromdual@dmdb@link2 ;

你可能感兴趣的:(GLOBAL_NAMES参数的详细研究)