首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > oracle >

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

2012-12-14 
急求如何解决连接远程oracle服务器的问题客户机:windowns 2003 ,已经安装了oracle 10g的客户端。服务机:cen

急求如何解决连接远程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))


    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = lee)
    )
  )


[解决办法]
1.监听服务没有起来。windows平台个一如下操作:开始---程序---管理工具---服务,打开服务面板,启动oraclehomeXXXXXTNSlistener服务。

[解决办法]
你好,我是楼主,先多谢各位回我的贴,但我还是有几个问题:
(1)oracle服务器只安装在linux中,不知道是怎样启动oraclehomeXXXXXTNSlistener服务。
(2)windows中只安装了oracle 客户端,所以没有HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\KEY_OraDb10g_home1\ORACLE_SID 这个东西。
(3)在客户端登录时cmd>sqlplus scott/123@instance ,但还是提示ora-12154:TNS:could not resolve the connect identifier specified错误。
小弟是新手,很多东西都不懂,望各位高手指点迷津。
[解决办法]
为了这个东西,搞到小弟很痛苦,请各位多多指教,可Q我:765027740
[解决办法]
linux中启动Listener
在你的oracle 用户下
lsnrctl start 
当然你可以先lsnrctl staus 看看监听是否已经启动
[解决办法]
多谢各位大神,linux的监听已经启动。但现在又出现了另外一个问题。
情况说明:
(1)在客户端使用cmd>sqlplus scott/123@mylee as sysdba 时可以连接到数据库服务器,而且可以查询出新插入的数据。
(2)但在使用客户端自带的工具Enterprise Manager Console进行连接时却出现了错误。
     我设置的参数如下:
        主机名:192.168.0.232
       端口号:8080
       SID:lee
       网络服务名:mylee
     输入的数据库信息如下:
         用户名:scott
        口令:123
        服务:MYLEE
        连接身份:Normal
     但系统提示:当前授予您的数据库权限不足以运行此应用程序。单击“帮助”以获取更多的版本特定信息。
     {
     另外输入的数据库信息如下:
         用户名:sys
        口令:123
        服务:MYLEE
        连接身份:SYSDBA
      系统提示:ora-01017:invalid username/password;logon denied
      (事实上用户名和密码是没有错误的) 
     }
[解决办法]

引用:
多谢各位大神,linux的监听已经启动。但现在又出现了另外一个问题。
情况说明:
(1)在客户端使用cmd>sqlplus scott/123@mylee as sysdba 时可以连接到数据库服务器,而且可以查询出新插入的数据。
(2)但在使用客户端自带的工具Enterprise Manager Console进行连接时却出现了错误。
     我设置的参数如下……


EM是不允许普通用户登入的
除非你授予他
select_catalog_role
这个权限
grant select_catalog_role to xx;

热点排行