当前位置: 代码迷 >> Oracle技术 >> 急求怎么解决连接远程oracle服务器的有关问题
  详细解决方案

急求怎么解决连接远程oracle服务器的有关问题

热度:69   发布时间:2016-04-24 08:21:41.0
急求如何解决连接远程oracle服务器的问题
客户机:windowns 2003 ,已经安装了oracle 10g的客户端。
服务机:centOS,安装了oracle 10G release 2的服务端。
(服务端的listener.ora内容如下:)
SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (GLOBAL_DBNAME = lee)
      (SID_NAME = lee)
      (ORACLE_HOME = /home/lee/app/oracle/product/10.2.0/db_1)
      (PROGRAM = extprocl)
    )
  )

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.232)(PORT = 8080))
    )
  )
(服务端的tnsnames.ora内容如下:)
LISTENER_ORCL =
  (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.232)(PORT = 8080))


LEE =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.232)(PORT = 8080))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = lee)
    )
  )

EXTPROC_CONNECTION_DATA =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
    )
    (CONNECT_DATA =
      (SID = PLSExtProc)
      (PRESENTATION = RO)
    )
现象如下:
(1)在服务器端使用自带的sql*plus登录数据是没问题的,可以查到信息。
(2)服务器端查看监听状态,实例lee可以成功监听。
(3)在客户端cmd > ping 192.18.0.232  (提示可以接收到相关的数据包)
(4)在客户端cmd > tnsping lee  (可以解析出HOST=192.168.0.232 PORT=8080  SERVICE_NAME=lee)  因为客户需求要将数据库的端号设置为:8080
(5)但在客户端cmd>sqlplus sys as sysdba  时却提示:ora-12560:TNS:protocol adapter error
(6)如果使用cmd>sqlplus sys@lee as sysdba 时却提示:ora-12154:TNS:could not resolve the connect identifier specified
求助各位大神如何解决这个问题啊,这已经困扰我差不多一天了。如需要更详细信息可加我Q:765027740  谢谢
------解决方案--------------------
可能的原因
1.服务没有起来
2.ORACLE_SID环境变量没有指定(最常见引起ORA-12560问题的原因)
检查方法,命令行(cmd)下,
C:\Documents and Settings\ptian>set oracle_sid
ORACLE_SID=test
ORACLE_SID是sqlplus默认连接的数据库instance,即sqlplus user/pwd连接的instance,如果不指定sqlplus里连接的时候就需要明确@你的instance,eg,sqlplus user/pwd@instance.
修改方法:在注册表中,HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\KEY_OraDb10g_home1\ORACLE_SID 需指向你的Instance(eg.orcl);或者在系统的环境变量里加ORACLE_SID项,值为Instance的SID。

3.TNS_ADMIN环境变量没有指定
检查方法,命令行(cmd)下,
C:\Documents and Settings\ptian>set TNS_ADMIN
TNS_ADMIN=D:\oracle\product\10.1.0\Db_1\NETWORK\ADMIN
TNS_ADMIN应该返回你的tnsnames.ora所在的目录
修改方法:可以在注册表HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOME0\TNS_ADMIN或者环境变量中指定。


4.ORACLE_HOME环境变量没有指定
和上边的方法类似,检查Oracle_Home环境变量


5.tnsnames.ora(客户端)文件内容不对
A sample:
TEST =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST =  192.168.0.232)(PORT = 8080))
  相关解决方案