Oracle DbLink

别人几分钟搞定的事情,我搞了好几天,你信吗?下面是我碰到的一系列问题:

一 global_name

Db_name:对一个数据库(Oracle database)的唯一标识,但是如果是分布式的数据库,这个db_name  如何去确定唯一性

Db_domain:定义一个数据库所在的域,域的出现,解决了分布式数据库,名称的唯一性确认问题

Global_name:对一个数据库(Oracle database)的唯一标识,oracle建议用此种方法命令数据库。该值是在创建数据库是决定的,缺省值为Db_name. Db_domain。
【对于golbal_name 要不要启用这种命名方式,在建立dbink 时,为了防止@后面出现那些别扭的.  还是将这个属性设置成false】

=============================================================================================

1 要对global_name 进行修改,首先要有其修改权限  ,sys用户的dba权限 最好不过了。。。

   查看 global_name 的值: select * from global_name

修改 global_name 的值 :update global_name set global_name = 'ORCL' 

查看global_name 的 属性是false/true:  show parameter global_name; [sys 用户 命令窗口下]

修改global_name 的 属性false/true: alter system set global_names=false scope=memory; [命令窗口下]

查看 所有建立的 dblink : select * from dba_db_links

2 创建dblink 的方式一:

create database link  dlName connect to userName identified by password using 'dbNetName'

[dbNetName --在oracle 中配置的 net 信息]

3 创建dblink 的方式二:

CREATE database link dlName connect to userNaem identified by password using '(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=127.0.0.1)(PORT=1521))   (CONNECT_DATA=(SID=myoracle)))';

[不用再oracle 的net 中配置oracle 信息了]

=======================================================================================================

如果说以上问题我耗费了好几天,那么我。。。。

问题出在,我创建成功后,每次查询都提示我
ORA-01017: invalid username/password; logon denied
ORA-02063: preceding line from <link_name>
不管什么原因了,你把你的密码用"" 括起来吧,不扩的话,有将密码自动转换成大写的嫌疑。。。。。。。。。

 

改后 报错:
ora-02085
也不要管为什么了,把你本地的global_name 和 你要连接的 global_name  的属性都改成false吧,反正是没问题的。。。。。

============================================================================

这之后应该就可以了,如果你还是有错误,我只能说,你比我还幸运,碰到了其他的问题。。。。 

 

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

查看当前用户所有dblink

select owner,object_name from dba_objects where object_type='DATABASE LINK';

 

 

 

posted @ 2013-09-17 10:18  roscee  阅读(486)  评论(0)    收藏  举报