PLSQL连接HYPER-V中的Oracle问题

qq7092 2017-11-20 10:03:11
各位好,今天再HYPER-V中安装了Oracle,主机虚拟机都是WIN10。现在主机可以通过远程桌面连接虚拟机,telnet测试1521端口也是开放的。为什么用PLSQL连接时,一直处于正在登录状态,就是一直连不上。
昨天主机与虚拟机是通过外部网络连接的,那时候plsql连接是没问题的,今天换成内部网络连接,然后我把tnsname.ora中的相关IP也改了,却连不上。研究了一整天了,望各位路过大侠救我!!
...全文
418 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
minsic78 2017-11-23
  • 打赏
  • 举报
回复
引用 9 楼 qq_19832477 的回复:
[quote=引用 8 楼 minsic78 的回复:] 另外,找下监听的日志文件,看下你远程连接的时候,监听有没有侦测到你的远程连接。
防火墙是关闭的。 在远程连接时,我在在监听日志文件里边,我找到这么一段日志: <msg time='2017-11-23T10:12:27.329+08:00' org_id='oracle' comp_id='tnslsnr' type='UNKNOWN' level='16' host_id='NORM' host_addr='fe80::189a:e814:4766:794f%12'> <txt>23-11鏈?2017 10:12:27 * (CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=orcl)(CID=(PROGRAM=E:\software\e\OracleClient\plsqldev.exe)(HOST=ZHOU)(USER=zhou))) * (ADDRESS=(PROTOCOL=tcp)(HOST=169.254.248.215%12)(PORT=64088)) * establish * orcl * 0 </txt> </msg> E:\software\e\OracleClient\plsqldev.exe 是我客户端的PLSQL,ZHOU是我客户端计算机名,zhou是用户名,HOST后边是客户端的IP。 这个应该算是侦测到我的远程连接了吧?[/quote] 不仅仅是侦测到了,而且已经建立连接了,那说明等待是在数据库内的,通常出现这种情况是因为大量短连接导致的连接风暴搞出来的问题,或者密码错误的连接不停重试搞出来的,但你这个应该不是这两种情况?在卡住的时候,在数据库服务器上查下v$session中有没有program字段为plsql(具体可能是其他值,比如plsql developer等等)那行的event(v$session的另外一个字段)是什么,再做进一步的诊断。
qq7092 2017-11-23
  • 打赏
  • 举报
回复
引用 8 楼 minsic78 的回复:
另外,找下监听的日志文件,看下你远程连接的时候,监听有没有侦测到你的远程连接。
防火墙是关闭的。 在远程连接时,我在在监听日志文件里边,我找到这么一段日志: <msg time='2017-11-23T10:12:27.329+08:00' org_id='oracle' comp_id='tnslsnr' type='UNKNOWN' level='16' host_id='NORM' host_addr='fe80::189a:e814:4766:794f%12'> <txt>23-11鏈?2017 10:12:27 * (CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=orcl)(CID=(PROGRAM=E:\software\e\OracleClient\plsqldev.exe)(HOST=ZHOU)(USER=zhou))) * (ADDRESS=(PROTOCOL=tcp)(HOST=169.254.248.215%12)(PORT=64088)) * establish * orcl * 0 </txt> </msg> E:\software\e\OracleClient\plsqldev.exe 是我客户端的PLSQL,ZHOU是我客户端计算机名,zhou是用户名,HOST后边是客户端的IP。 这个应该算是侦测到我的远程连接了吧?
minsic78 2017-11-23
  • 打赏
  • 举报
回复
另外,找下监听的日志文件,看下你远程连接的时候,监听有没有侦测到你的远程连接。
minsic78 2017-11-23
  • 打赏
  • 举报
回复
引用 6 楼 qq_19832477 的回复:
[quote=引用 5 楼 minsic78 的回复:] 前面几位让ping、tnsping的,有没有什么结果?
tnsping 好像得在客户端(主机)上安装Oracle才能通,我的客户端没有安装Oracle,所以提示tnsping不是内部或外部命令,但在服务端(虚拟机)上是可以通的。 另外,无论是在在服务端还是客户端,都是能ping通的,没问题。 [/quote] 那是因为你客户端装了阉割版的instant client,所以没有tnsping,那就麻烦,猜猜猜吧:你的虚拟机防火墙是不是开着?
qq7092 2017-11-23
  • 打赏
  • 举报
回复
引用 5 楼 minsic78 的回复:
前面几位让ping、tnsping的,有没有什么结果?
tnsping 好像得在客户端(主机)上安装Oracle才能通,我的客户端没有安装Oracle,所以提示tnsping不是内部或外部命令,但在服务端(虚拟机)上是可以通的。 另外,无论是在在服务端还是客户端,都是能ping通的,没问题。
minsic78 2017-11-23
  • 打赏
  • 举报
回复
引用 12 楼 qq_19832477 的回复:
[quote=引用 11 楼 qq_19832477 的回复:] [quote=引用 10 楼 minsic78 的回复:] [quote=引用 9 楼 qq_19832477 的回复:] [quote=引用 8 楼 minsic78 的回复:] 另外,找下监听的日志文件,看下你远程连接的时候,监听有没有侦测到你的远程连接。
防火墙是关闭的。 在远程连接时,我在在监听日志文件里边,我找到这么一段日志: <msg time='2017-11-23T10:12:27.329+08:00' org_id='oracle' comp_id='tnslsnr' type='UNKNOWN' level='16' host_id='NORM' host_addr='fe80::189a:e814:4766:794f%12'> <txt>23-11鏈?2017 10:12:27 * (CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=orcl)(CID=(PROGRAM=E:\software\e\OracleClient\plsqldev.exe)(HOST=ZHOU)(USER=zhou))) * (ADDRESS=(PROTOCOL=tcp)(HOST=169.254.248.215%12)(PORT=64088)) * establish * orcl * 0 </txt> </msg> E:\software\e\OracleClient\plsqldev.exe 是我客户端的PLSQL,ZHOU是我客户端计算机名,zhou是用户名,HOST后边是客户端的IP。 这个应该算是侦测到我的远程连接了吧?[/quote] 不仅仅是侦测到了,而且已经建立连接了,那说明等待是在数据库内的,通常出现这种情况是因为大量短连接导致的连接风暴搞出来的问题,或者密码错误的连接不停重试搞出来的,但你这个应该不是这两种情况?在卡住的时候,在数据库服务器上查下v$session中有没有program字段为plsql(具体可能是其他值,比如plsql developer等等)那行的event(v$session的另外一个字段)是什么,再做进一步的诊断。[/quote] 刚刚找了,只能找到服务端自己的PLSQL,客户端的PLSQL连接时,没在v$session表中找到相关信息。。。。 [/quote] 还有,我刚刚将HYPER-V的网络适配器的设置改为外部连接,设置虚拟机(服务端)的IP和DNS为自动获取,然后改了客户端的tnsname.ora配置后,又可以连接了。 我在想,这会不会是因为我之前设置的IP不对或者是DNS不对? [/quote] 如果先前IP设置不对,那么压根不会连接到监听的,更何况还建立了连接。
qq7092 2017-11-23
  • 打赏
  • 举报
回复
引用 11 楼 qq_19832477 的回复:
[quote=引用 10 楼 minsic78 的回复:] [quote=引用 9 楼 qq_19832477 的回复:] [quote=引用 8 楼 minsic78 的回复:] 另外,找下监听的日志文件,看下你远程连接的时候,监听有没有侦测到你的远程连接。
防火墙是关闭的。 在远程连接时,我在在监听日志文件里边,我找到这么一段日志: <msg time='2017-11-23T10:12:27.329+08:00' org_id='oracle' comp_id='tnslsnr' type='UNKNOWN' level='16' host_id='NORM' host_addr='fe80::189a:e814:4766:794f%12'> <txt>23-11鏈?2017 10:12:27 * (CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=orcl)(CID=(PROGRAM=E:\software\e\OracleClient\plsqldev.exe)(HOST=ZHOU)(USER=zhou))) * (ADDRESS=(PROTOCOL=tcp)(HOST=169.254.248.215%12)(PORT=64088)) * establish * orcl * 0 </txt> </msg> E:\software\e\OracleClient\plsqldev.exe 是我客户端的PLSQL,ZHOU是我客户端计算机名,zhou是用户名,HOST后边是客户端的IP。 这个应该算是侦测到我的远程连接了吧?[/quote] 不仅仅是侦测到了,而且已经建立连接了,那说明等待是在数据库内的,通常出现这种情况是因为大量短连接导致的连接风暴搞出来的问题,或者密码错误的连接不停重试搞出来的,但你这个应该不是这两种情况?在卡住的时候,在数据库服务器上查下v$session中有没有program字段为plsql(具体可能是其他值,比如plsql developer等等)那行的event(v$session的另外一个字段)是什么,再做进一步的诊断。[/quote] 刚刚找了,只能找到服务端自己的PLSQL,客户端的PLSQL连接时,没在v$session表中找到相关信息。。。。 [/quote] 还有,我刚刚将HYPER-V的网络适配器的设置改为外部连接,设置虚拟机(服务端)的IP和DNS为自动获取,然后改了客户端的tnsname.ora配置后,又可以连接了。 我在想,这会不会是因为我之前设置的IP不对或者是DNS不对?
qq7092 2017-11-23
  • 打赏
  • 举报
回复
引用 10 楼 minsic78 的回复:
[quote=引用 9 楼 qq_19832477 的回复:] [quote=引用 8 楼 minsic78 的回复:] 另外,找下监听的日志文件,看下你远程连接的时候,监听有没有侦测到你的远程连接。
防火墙是关闭的。 在远程连接时,我在在监听日志文件里边,我找到这么一段日志: <msg time='2017-11-23T10:12:27.329+08:00' org_id='oracle' comp_id='tnslsnr' type='UNKNOWN' level='16' host_id='NORM' host_addr='fe80::189a:e814:4766:794f%12'> <txt>23-11鏈?2017 10:12:27 * (CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=orcl)(CID=(PROGRAM=E:\software\e\OracleClient\plsqldev.exe)(HOST=ZHOU)(USER=zhou))) * (ADDRESS=(PROTOCOL=tcp)(HOST=169.254.248.215%12)(PORT=64088)) * establish * orcl * 0 </txt> </msg> E:\software\e\OracleClient\plsqldev.exe 是我客户端的PLSQL,ZHOU是我客户端计算机名,zhou是用户名,HOST后边是客户端的IP。 这个应该算是侦测到我的远程连接了吧?[/quote] 不仅仅是侦测到了,而且已经建立连接了,那说明等待是在数据库内的,通常出现这种情况是因为大量短连接导致的连接风暴搞出来的问题,或者密码错误的连接不停重试搞出来的,但你这个应该不是这两种情况?在卡住的时候,在数据库服务器上查下v$session中有没有program字段为plsql(具体可能是其他值,比如plsql developer等等)那行的event(v$session的另外一个字段)是什么,再做进一步的诊断。[/quote] 刚刚找了,只能找到服务端自己的PLSQL,客户端的PLSQL连接时,没在v$session表中找到相关信息。。。。
minsic78 2017-11-22
  • 打赏
  • 举报
回复
前面几位让ping、tnsping的,有没有什么结果?
qq7092 2017-11-21
  • 打赏
  • 举报
回复
引用 3 楼 jdsnhan 的回复:
你所说的外部网络和内部网络指什么? ping数据库的连接串指tnsping配置的server_name
WIN10连接HYPER-V的虚拟机时,有三种虚拟交换机类型,分别是外部、内部、专用,我说的外部网络是指我设置的是外部虚拟交换机类型。 这个我自己说习惯了,没注意。
jdsnhan 2017-11-21
  • 打赏
  • 举报
回复
你所说的外部网络和内部网络指什么? ping数据库的连接串指tnsping配置的server_name
qq7092 2017-11-20
  • 打赏
  • 举报
回复
你好,服务器id能够ping通,但是ping 数据库连接串,我没明白什么意思。
碧水幽幽泉 2017-11-20
  • 打赏
  • 举报
回复
这个很可能是网络的原因。 1.ping 服务器id 2.ping 数据库连接串 试试看!
内容概要:本文档为成都科洛威尔科技有限公司生产的MIL-1394B仿真板卡的API函数使用手册,详细介绍了该板卡在Windows和Linux环境下进行MIL-1394B/AS5643总线协议仿真和测试所需的API函数、数据结构、使用流程及例程。板卡支持CC(控制计算机)、RN(远程节点)和BM(总线监控)三种工作模式,提供丰富的函数用于设备管理、节点控制、消息收发、故障注入、断处理等功能,并涵盖数据包格式、发送接收流程、错误检测机制等关键技术细节。手册还提供了函数调用示例和典型应用场景,帮助开发者快速掌握板卡的开发与调试。; 适合人群:从事航空电子、嵌入式系统或工业自动化领域,具备C/C++编程基础并熟悉总线通信协议的1-3年工作经验的软硬件研发工程师。; 使用场景及目标:①在复杂总线环境实现高精度数据仿真与测试;②开发基于MIL-1394B协议的通信系统;③进行消息收发控制、时序偏移管理、错误注入测试及断响应处理等高级功能验证;④通过API调用实现对板卡工作模式、数据流、状态监测的全面控制。; 阅读建议:建议结合配套的demo示例程序进行实践,重点理解各函数的调用时序与参数配置逻辑,尤其关注STOF时序控制、消息发送模式、错误注入机制等核心功能的实现原理。使用前需仔细阅读“基本使用流程”与“附录”部分,确保正确配置硬件环境与通信参数。

17,134

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧