Qt程序远程访问Oracle数据库,该怎么处理

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Qt程序远程访问Oracle数据库,该怎么处理相关的知识,希望对你有一定的参考价值。

参考技术A 前提是在同一个局域网,或者网络IP可以互相ping通
1、本地创建ORACLE监听
2、防火墙开通端口
3、远程安装ORACLE客户端,根据服务端的数据库名称、IP地址、端口配置TNS连接

Oracle应用程序在远程访问时速度非常慢

一个Oracle应用程序,在局域网内运行流畅,但通过域名远程访问时,从服务器下载数据只能达到3KB/s的速度,应用程序从启动到加载完成有时要用一分多钟,而用PL/SQL访问数据库可以达到28KB/s的速度,服务器端和客户端都是3M的ADSL。这种情况是由于硬件不足,或程序缺陷,还是Oracle本身的问题?
补充:两边都是电信网络,而且在同个城市。一台电脑运行这个应用程序是3KB/s,两台电脑同时运行,每台电脑各自也还是3KB/s。回答问题的请在技术方面说得稍详细一些,谢谢了。

网速问题,广域网网速和你用的ADSL没有关系,考虑双线,考虑光纤网,,,,
没有办法提高网速的话,考虑建立分布式环境多提供几个访问点的可行性。
参考技术A 首先需要确认你的远程链接方式是怎样的。DDNS吗?如果是,换几个DDNS再试验。
如果还不行,说明DDNS的服务器有些问题,那么建议采用VPN的方式链接。
由于你提供的信息不多,暂时只能这样处理。追问

远程连接方式是这样:服务器通过防火墙连接到因特网,远程客户端也连接到因特网,然后通过服务器的域名访问。我也试过撤掉防火墙,直接连接服务器的公网IP,速度没有任何变化。

追答

1.局域网内部运行流畅的话,到外面运行说明防火墙有规则限制,或者外部程序环境跟局域网的有些不同,不过这样的速度也太慢了吧。
2.你不如用vpn构建局域网环境试验一下,会有实际效果。(你的城市是哪个?)
3.另外撤掉防火墙,直接连接服务器的公网IP的时候,你又无测试过网络速度、丢包率是否正常?如果一切正常,那么局域网内运行是否正常?---将局域网运行正常的(最好是笔记本)拿到外网测试。如果还不行,可以找我协助你测试VPN环境,不过最好不要是游戏的网站啊。

追问

也试用过VPN,仍然没有任何改善,ping值很低,没有丢包。

追答

你试过将那台局域网内部的电脑拿到外面测试过吗?

就是局域网内很正常的,效果不错的那台电脑,千万不要选择其他电脑。只是换个地方,如果ping值低,不丢包,同样的电脑换地方还有问题,就真的奇怪了。一定要用一摸一样的环境,不要做任何改变。(除了远程节点不同)

(当然建议在VPN环境下测试。可以排除其他的因素)

追问

试过将一台局域网内的电脑断开到服务器的连接后拨ADSL,情况一模一样。换回局域网又很流畅。

追答

另外问一个问题,是否有AD或者登陆域的验证动作等。

如果没有上面的那些,是纯IP的访问。
那么唯一的问题可能在服务器到电脑之间了,你找2个ADSL,直接接服务器和电脑,不要什么防火墙,在服务器用外部IP测试。不要用端口转发等DDNS,排除一切其他因素。

参考技术B 一个Oracle应用程序,在局域网内运行流畅,但通过域名远程访问时,从服务器既然局域网内速度快,你觉得还是程序缺陷或者硬件问题么. 很明显你的广域网有 参考技术C 首先检查安装oracle服务器配置,然后网速(3m/8).基本上是这两个原因。 参考技术D 网络间为什么这么慢?域名是谁管理的?
怎么和我用花生壳一样

以上是关于Qt程序远程访问Oracle数据库,该怎么处理的主要内容,如果未能解决你的问题,请参考以下文章

Oracle应用程序在远程访问时速度非常慢

oracle 远程连接超时问题!

如何解决JMeter通过JDBC 访问Oracle 和MySQL的问题

用Navicat for Oracle登录时显示错误:invalid username password logon denied 这是怎么回事??求解决

PLSQL developer和oracle到底是啥关系啊???

怎么实现用java远程访问oracle数据库?