别人几分钟搞定的事情,我搞了好几天,你信吗?下面是我碰到的一系列问题:
一 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';