我在局域网中连接oracle服务器是正常的,但是通过外网连接oracle服务器报错ORA-12203: TNS:unable to connect to destination,网络是正常的,通过路由器映射了端口和oracle服务器的IP地址,而且可以通过远程控制到oracle服务器,但是就是连接不上,是什么原因呢,有没有哪位高手帮我解答一下,谢谢。

解决方案 »

  1.   


    tnsname.ora文件中的IP地址内网能访问吗?楼主可以用tnsping SID, 如果能ping通就可以连上了.
      

  2.   

    检查下tnsnames.ora里面的配置信息是否正确
      

  3.   

    远程连接ORACLE服务
    远程服务端配置
    1. 数据库配置
        因为要为外界客户端提供数据服务,所以一定要将 [数据库操作模式] 配置为 "共享服务模式". 如果将操作模式配置成"专用服务器模式",导至远程客户端无法正常连接.
        如果不能确定数据库的操作模式,可以打开ORACLE "Database Configuration Assistant" 工具的 "在数据库中配置数据库选项" 进行配置.
        如果新建数据库一定不要忘了将 [数据库操作模式] 配置为 "共享服务模式".
       
    2. 数据库服务
        确定数据库服务已经启动.
        方法: 命令行 下键入 "services.msc"
              在 WINDOWS服务 窗口中找到您的数据库服务(一般都以 OracleService数据库实例名 的形式命名),查看是否为"已启动"状态,否则请启动该服务.
       
    3. 监听程序
        确定数据库已经附加到监听程序中,并且监听程序已启用.
        方法: 命令行 下键入 "lsnrctl"
              在 lsnrctl控制台 窗口中键入 "services 监听程序名"
             
              如果出现 "摘要信息" 则说明监听程序已启动
             
              如果出现 "无监听器" 字样,说明监听程序未被启动
              在 lsnrctl控制台 窗口中键入 "start 监听程序名" 以启动监听程序
              也可在 命令行 下键入 "services.msc"
              在 WINDOWS服务 窗口中找到您的监听程序服务(一般都以 OracleOraHome92TNSListener监听程序名 的形式命名,默认的监听程序服务名为 "OracleOraHome92TNSListener"),查看是否为"已启动"状态,否则请启动该服务.
             
    4. 网络状态
        确定监听程序所使用的端口已被列入防火墙允许的行列.
       
    本地客户端配置
    1. 测试连接
        方法: 命令行 下键入 "tnsping 服务端IP地址"
              如果出现 "OK(XX毫秒)" 字样,说明可以与服务端建立连接.否则请检查服务端配置.
             
    2. 添加服务名
        方法: 打开ORACLE "Database Configuration Assistant" 工具 -> "本地NET服务名配置" -> "添加" -> 选择ORACLE数据库或服务(依个人服务端设置进行相应选择,我的是8i或更高版本..) -> 输入服务名(建库时输入的全局数据库名) -> TCP -> 主机名中输入服务端IP地址,端口输入服务端监听程序所监听的端口 -> 是,进行测试 -> 首次测试可能会失败,因为默认的用户名口令不一定和服务端的匹配,点击 更改登录 输入有效用户名和口令确定后如出现"测试成功",说明连接成功,点击下一步 -> 输入本地服务名 -> 直到完成.
      

  4.   


    最好用TELNET,因为TELNET直接上ORACLE端口
    我们备份就用TELNET,
      

  5.   

    多谢楼上指点,但是我用的是oracle8,没有Database Configuration Assistant这一项,应该怎么做呢
      

  6.   

    参考这个试试
    http://orax.blog.sohu.com/89233186.html
      

  7.   

    端口是不是映射了,有没有用shared socket参考
    http://blog.csdn.net/inthirties/archive/2009/09/17/4558769.aspx
      

  8.   

    我的服务端改成共享模式服务启用后,用客户端net manager 创建连接测试成功,但是用tnsping命令ping服务端IP提示无法解析(oracle9)