Oracle DBLink创建和维护以及ORA(2)

// *Cause: a database link connected to a database with a different name.
// The connection is rejected.
// *Action: create a database link with the same name as the database it
// connects to, or set global_names=false.
//

2)从报错信息的描述上已经可以得到问题的原因和处理方法
错误原因:使用的dblink名字与要连接的数据库名字不相同
处理方法:有两种处理方法
第一种处理方法:创建与对方数据库名字相同的dblink
第二种处理方法:调整数据库参数global_names值为false,取消这种限制
 

一定要理解具体怎么操作

global_names和global_name看起来很相似,global_names的作用是创建db link时是否强制使用远程数据库的global_name,如果

global_names=true,则db link name必须要求是remote database的global_name,否则创建之后db link 不能连同, 

假如在本地:不是远端,和自己的思维不一样。

SQL> show parameter global_names

NAME                                TYPE        VALUE

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

global_names                        boolean    TRUE

这样在本地要想创建dblink ,那么该dblink的名字 ,必须是远端4.151的global_name ,如下查看global_name 

SQL> select * from global_name;

GLOBAL_NAME

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

NEWZQDB

也就是只能起名为newzqdb  ,都则报错ORA-02085

create public database link  newzqdb                                   

connect to system identified by manager

using '(DESCRIPTION =

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = TCP)(HOST =192.168.4.151)(PORT = 18000))

)

(CONNECT_DATA =

(SERVICE_NAME = newzqdb)

)

)';   

你可以在本地通过  alter system set global_names=FALSE;  来取消这种限制,一定注意在本地, 不是远端。

也就是说如果本地global_names这个参数是TRUE,那么在这里只能创建一个可以使用的dblink。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/5bb1c3843d0577e8f46287eccc468792.html