【TechTarget中国原创】问:我有两个数据库:一个本地的(in domain ad.xyz.com),另一个是远程数据库(domain us.oracle.com)。我现在从客户机上登陆到这些数据库并且不使用DBA权限登陆,我能够用SQL*Plus 对两个数据库进行TNSPING以及连接。我在本地数据库里创建了一个隐秘的数据库链接指向远程数据库。但是当我试着用这个链接访问远程数据库里的任意对象时,却出现了ORA-12535:TNS:operation timed out这样的错误。因为我能够TNSPING和连接到数据库,这些.ora文件就是正确的。
我已经在网上查阅了我能找到的所有的文章,但是它们并不能解决这些问题,你能告诉我我可能遗漏了什么吗? 我已经创建了两个如下的链接:
create DATABASE LINK TESTDB.US.ORACLE.COM CONNECT TO scott IDENTIFIED BY tiger USING ’(DESCRIPTION =(ADDRESS_LIST = (ADDRESS = (COMMUNITY = us.oracle.com)(PROTOCOL = TCP)(HOST =ora10g)(PORT = 1521)))(CONNECT_DATA = (SID = TESTDB)))’; |
答:TNSPING能告诉你的唯一的事情就是数据库listener被唤醒了,并且在你的tns串里定义了SID。它并没有说明你是否能真正连接到Oracle实例。为什么会出现ORA-12535错误最常见的原因就是防火墙的配置问题。当Listener在1521端口侦听时,连接就会使用其他的端口,而防火墙就会对它进行阻隔。所以,你需要和你的网络管理员一起解决解决这个问题。