`

转:global_names的使用

 
阅读更多

原文:http://blog.chinaunix.net/uid-71225-id-2069062.html

 

本文主要将的是global_names的设置false|true,默认值是false,设置为false后,创建的dblink的名称与
目标数据库db_name无关,然而为true的情况下dblink的名称必须与目标数据库的db_name相同,否则出错。
两个实例或数据库的db_domain是否相同不会影响dblink的创建,连接串的名称也不会影响dblink的创建。
实例test
一、查看初始参数
SQL> conn /as sysdba
已连接。
SQL> show parameter db_domain

 

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
db_domain                            string
SQL> show parameter db_name

 

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
db_name                              string      test
SQL> conn olive/olive
已连接。
SQL> create table t as select * from all_users;

 

表已创建。

 

SQL> select count(*) from t;

 

  COUNT(*)
----------
        22

 

实例orcl
二、查看初始参数
SQL> show parameter db_domain

 

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
db_domain                            string
SQL> show parameter db_name

 

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
db_name                              string      orcl
SQL> show parameter global_names

 

NAME                                 TYPE        VALUE
------------------------------------ ----------- -----------------------------
global_names                         boolean     TRUE
三、创建dblink
SQL> conn test/test
已连接。
SQL> create database link test connect to olive identified by olive using 'test'
;

 

数据库链接已创建。

 

SQL> select count(*) from t@test;

 

  COUNT(*)
----------
        22
四、将global_names改为false
SQL> alter system set global_names=false scope=both;

 

系统已更改。

 

SQL> select count(*) from t@test;

 

  COUNT(*)
----------
        22

 

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

 

数据库链接已创建。

 

SQL> select count(*) from t@test2;

 

  COUNT(*)
----------
        22
五、将global_names改为true
SQL> alter system set global_names=true scope=both;

 

系统已更改。

 

SQL> select count(*) from t@test2;
select count(*) from t@test2
                       *
第 1 行出现错误:
ORA-02085: 数据库链接 TEST2.REGRESS.RDBMS.DEV.US.ORACLE.COM 连接到
TEST.REGRESS.RDBMS.DEV.US.ORACLE.COM

 

出错原因:dblink 的名称与目标数据库的名称不相同。

 

SQL> select count(*) from t@test;

 

  COUNT(*)
----------
        22

 

SQL> create database link test3 connect to olive identified by olive using 'test3';

 

数据库链接已创建。
       
SQL> select count(*) from t@test3;
select count(*) from t@test3
                       *
第 1 行出现错误:
ORA-02085: 数据库链接 TEST3.REGRESS.RDBMS.DEV.US.ORACLE.COM 连接到
TEST.REGRESS.RDBMS.DEV.US.ORACLE.COM

 

说明:数据库连接串的名称不会影响dblink
六、修改db_domain
SQL> create pfile from spfile;

 

文件已创建。

 

SQL> shutdown immediate
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。

 

修改pfile

 

SQL> create spfile from pfile;

 

文件已创建。

 

SQL> conn test/test
已连接。

 

SQL> show parameter global_names

 

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
global_names                         boolean     TRUE
SQL> show parameter db_dom

 

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
db_domain                            string      a

 

SQL> select count(*) from t@test;

 

  COUNT(*)
----------
        22

 

七、修改test下的用户olive密码

 

SQL> alter user olive identified by olive2;

 

用户已更改。

 


八、在orcl下重新测试
SQL> conn test/test
已连接。
SQL> select count(*) from t@test;
select count(*) from t@test
                       *
第 1 行出现错误:
ORA-01017: 用户名/口令无效; 登录被拒绝
ORA-02063: 紧接着 line (起自 TEST)

 

九、删除dblink,然后重新创建
SQL> drop database link test;

 

数据库链接已删除。

 

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

 

数据库链接已创建。

 

SQL> select count(*) from t@test;

 

  COUNT(*)
----------
        22

SQL>

分享到:
评论

相关推荐

    Duplicate__Net__Names__Wire解决办法

    在使用Altium Designer进行电路设计过程中,遇到“Duplicate Net Names Wire”这一类错误是较为常见的现象。这类错误通常出现在多张原理图的环境下,尤其是在涉及到网络标识符作用域的配置不当的情况下更为显著。...

    Oracle9个_name介绍

    #### 七、service_names:服务名称列表 - **定义**:`service_names`是一个列表,包含了当前Oracle实例提供的所有服务名称。 - **用途**:便于管理和查询当前实例提供的所有服务。 - **示例**:如`service_names`的...

    Oracle数据库面试题及答案

    知识点:GLOBAL_NAMES 是一个参数,用于指定数据库的名称,在连接数据库时需要使用相同的名称。 3. 如何加密 PL/SQL 程序? 答案:WRAp 知识点:WRAp 是一种加密方法,用于保护 PL/SQL 程序的安全。 4. 解释 ...

    Oracle10数据链路简单使用.doc

    3. 双机热备份:可以使用数据库链路实现双机热备份,但是这需要在 init.ora 文件中设置 global_names = true。 四、数据库链路的注意事项 1. global_names 参数:如果 global_names = true,则 [DB_LINK_NAME] ...

    oracle面试题集锦.pdf

    Oracle 面试题集锦总结 以下是对 Oracle 面试题集锦的详细解释和知识点总结: 1. 冷备份和热备份的不同点: 冷备份是在数据库关闭后进行...GLOBAL_NAMES 设为 TRUE 可以确保数据库对象的名称在整个数据库中是唯一的。

    Oracle面试题集锦

    Oracle 面试题集锦 Oracle 面试题集锦涵盖了 Oracle 数据库管理的方方面面,从备份和恢复到数据库性能优化,从数据块到索引和约束,涵盖了 Oracle ...* 解释 GLOBAL_NAMES 设为 TRUE 的用途:GLOBAL_NAMES 指明联接

    不同数据库的数据交互(建立DBLINK).docx

    - **结果**:`Global_names Boolean FALSE` - 当该参数设置为`TRUE`时,本地建立的DBLINK名称必须与远程数据库的GLOBAL_NAME一致。可以通过执行`ALTER SYSTEM SET GLOBAL_NAME = TRUE/FALSE;`来修改该参数值。 ###...

    Oracle9i的init.ora参数中文说明

    说明: 使用字节或码点语义来指定新列的创建, 如 char, varchar2, clob, nchar, nvarchar2, nclob 列。各种字符集对字符都有各自的定义。在客户机和服务器上使用同一字符集时, 应以该字符集所定义的字符来衡量字符串...

    Oracle RMAN基于catalog-配置与使用指南.docx

    Oracle RMAN 基于 Catalog 配置与使用指南 Oracle RMAN 是 Oracle 自带的备份恢复工具软件,是 DBA 的一个重要工具。RMAN 专门用于数据库的备份、...list all/global script names ``` 这将显示所有已有的备份脚本。

    java7源码-spring-boot-starter-lock:spring分布式锁

    java7 源码 分布式锁 - starter 基于redis 的 setnx 实现 和 zk 的分布式锁组件 使用场景: case1: ...lock.names ...使用方式如下: ...lock.names ...推荐使用 ...当然你也可以使用 ...名称为:global_lock 的 l

    建立oracle 数据库的dblink

    2. **GLOBAL_NAMES参数**:GLOBAL_NAMES参数决定了DBLINK的命名规则。如果设为TRUE,DBLINK的名称必须与被连接数据库的全局数据库名称(GLOBAL_NAME)完全匹配。若设为FALSE,则可以自由指定DBLINK的名称,此时更...

    Database Link经典详解

    - 如果`global_names`设置为`true`,则dblink的命名需与远程数据库的global_name一致。 - 如果`global_names`设置为`false`,则可以自由命名dblink。 - 查询命令: ```sql SHOW PARAMETER global_names; ``` -...

    ORACLE_建立DBLINK详细讲解.pdf

    2. **确认 global_names 参数状态**:`global_names` 参数控制是否使用全局名称来解析 DB-LINK。当其值为 TRUE 时,DB-LINK 的名称必须与远程数据库的 GLOBAL_NAME 名称相匹配。可通过 `SHOW PARAMETER global_name;...

    DE2 web serve的源代码

    - This Quartus II project contains assignments that match the port names produced by SOPC Builder. If you add or modify SOPC Builder components, the pin assignments may no longer be valid. To view...

    dblink详解

    - 当`global_names=false`时,可以自由命名dblink,但建议使用有意义的名字以便于管理和理解。 **查询global_names设置**: ```sql SHOW PARAMETER global_names; ``` #### 四、总结 **dblink**是Oracle数据库中...

    Oracle报存储过程中调用DBLink同义词出现错误:PLS-00201: 必须声明标识符

    前几天编写一个存储...这里之所以用orcl@bdc为dblink的名称是为了设置global_names=true。 然后新建一个存储过程调用该同义词: v_result mtb.sid%type; 调用后发现提示:错误:PLS-00201: 必须声明标识符 ‘MTB.

    npm-name-cli:检查软件包或组织名称在npm上是否可用

    npm-name-cli 检查软件包或组织名称在npm上是否可用 关于屋检测的反馈应在the 回购中打开。... Similar names: :check_mark: hullo is available :check_mark: how-do-you-do is available $ npm-name

    Oracle 10G 透明网关的配置

    如果`global_names`为`false`,则可以按照个人需求来命名数据库链接: ```sql ALTER SYSTEM SET global_names = FALSE; CREATE PUBLIC DATABASE LINK HO CONNECT TO sa IDENTIFIED BY '123' USING 'hs_sql'; ``` ...

    oracle错误代码大全

    - **解决方案**: 使用正确的实例名进行操作。 #### ORA-00020: System parameter cannot be changed - **解释**: 尝试更改系统参数时失败,该参数不可更改。 - **解决方案**: 选择可更改的参数进行操作,或者联系...

    oracle 使用dblink方式 连接远程数据库,内有详细描述,亲测可以

    - 方法一:在数据库的`init.ora`文件中设置`global_names`参数为`TRUE`或`FALSE`。 - 方法二:执行SQL语句来修改: ```sql ALTER SYSTEM SET GLOBAL_NAME=TRUE/FALSE; ``` 修改后需要重启数据库服务使设置生效...

Global site tag (gtag.js) - Google Analytics