打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
网络设备网配置变更问题分析

网络设备重新更换配置,或者网络链路有变化的时候常会出点问题。今天的问题记载一下,以防不时之需。 新的数据中心核心的ORACLERAC服务器刚刚顺利安装完毕,应用组安装测试数据库进行测试,刚刚开始就碰到这个问题:

应用组的同事,使用pl/sql developer  v7.15查一个表 

select * from   ALL_xxx;

数据查不出来,报出一个错误:

ORA-12152: TNS:unable to send breakmessage 

从错误内容看到关键字TNS,此类问题,大部分和网络相关,基本上和数据库服务进程关系不大,因此不要去花时间研究databaseserver

1 .换工具用sqlplus测试,发现没有任何问题,可以正常显示所有数据(没法解释,难道sqlplus打包的方式不一样?不愧是经典工具,也许是高手开发的,比较聪明,能适应各种恶劣环境。)

2.变换SQL语句,发现数据少的时候不会出问题,到一定的行数的时候出问题,本次 19行以内没有问题,超过则有问题, 顺着这个思路,为什么记录少可以,只能说明oracle此时发的包足够的小,小到Oracle数据库包发出后,os和网络设备不需要进行拆包。要测试现有的网络环境,最大可以发送多大的包,有个办法比较笨的办法直接不停的ping-f  ,多测几次就可以测出

  C:\Users\andzen>ping -f-l 1280  172.16.133.2

   正在 Ping 172.16.133.2 具有 1280 字节的数据:

  需要拆分数据包但是设置 DF。

  需要拆分数据包但是设置 DF。

  需要拆分数据包但是设置 DF。

  需要拆分数据包但是设置 DF。

  172.16.133.2 的 Ping 统计信息:

     数据包: 已发送 = 4,已接收 = 0,丢失 = 4 (100%丢失),​

 

   C:\Users\andzen>ping -f -l 1278 172.16.133.2

   正在 Ping 172.16.133.2 具有 1278 字节的数据:

  需要拆分数据包但是设置 DF。

  需要拆分数据包但是设置 DF。

  需要拆分数据包但是设置DF。​

  需要拆分数据包但是设置 DF。

  172.16.133.2 的 Ping 统计信息:

     数据包: 已发送 = 4,已接收 = 0,丢失 = 4 (100% 丢失),

  

  C:\Users\andzen>ping -f-l 1273  172.16.133.2

  正在 Ping 172.16.133.2 具有 1273字节的数据:

  需要拆分数据包但是设置 DF。

  需要拆分数据包但是设置 DF。

  172.16.133.2 的 Ping 统计信息:

     数据包: 已发送 = 2,已接收 = 0,丢失 = 2 (100% 丢失),

  

  C:\Users\andzen>ping -f-l 1272  172.16.133.2

  正在 Ping 172.16.133.2 具有 1272字节的数据:

  来自 172.16.133.2 的回复: 字节=1272 时间=1msTTL=252

  来自 172.16.133.2 的回复: 字节=1272 时间=1msTTL=252

  来自 172.16.133.2 的回复: 字节=1272 时间=1msTTL=252

  来自 172.16.133.2 的回复: 字节=1272 时间=1msTTL=252

  172.16.133.2 的 Ping 统计信息:

     数据包: 已发送 = 4,已接收 = 4,丢失 = 0 (0% 丢失),

  往返行程的估计时间(以毫秒为单位):

     最短 = 1ms,最长 = 1ms,平均 = 1ms

  

  C:\Users\andzen>ping-f -l 1271 172.16.133.2

  

  正在 Ping 172.16.133.2 具有 1271字节的数据:

  来自 172.16.133.2 的回复: 字节=1271 时间=1msTTL=252

  来自 172.16.133.2 的回复: 字节=1271 时间=1msTTL=252

  来自 172.16.133.2 的回复: 字节=1271 时间=1msTTL=252

  172.16.133.2 的 Ping 统计信息:

从以上一步一步尝试可以得知,小于1272字节的包是可以不需要拆分的通过网络,到达数据库服务器的,说明网络环境的异常,使的系统最大能发生不超过1272byte的包。​

 

如果不想彻底解决问题,此时有比较简单的办法解决问题。

在所有访问oracle数据库的客户端tnsname.ora或者其他连接字符串(如JDBC)里面:

配置SDU参数等于1272。

为了证实这个想法:

  1).修改TNSNAME.ORA文件,在里面增加(SDU=1272)

  2).重新启动pl\sql developer v7.15

  3).重新执行上面的select语句,果然正常了

 这种办法适合作为临时解决问题的办法,只是规避了问题而已,如果有几百个个客户端配置,工作量也不少,做为一个负责任的DBA,应该找到异常的根源。​

 

3.看看是不是网络MTU设置问题,如果多个网络设备mtu不一致,经常会导致大包不能正常传送,基本上否定MTU不匹配导致,因为10000字节的包都可以通过(会自动分拆包)

ping -l  10000 172.16.133.2 

来自 172.16.133.2 的回复: 字节=10000 时间=2ms TTL=252

来自 172.16.133.2 的回复: 字节=10000 时间=2ms TTL=252

来自 172.16.133.2 的回复: 字节=10000 时间=2ms TTL=252

基本没有问题

4. 换测试程序,用exp程序

   Export: Release10.1.0.4.0 - Production on Thu Jun 4 14:52:46 2009

   Copyright (c) 1982,2004, Oracle.  All rights reserved.

   

   Connected to: OracleDatabase 10g Enterprise Edition Release 10.1.0.4.0 - 64bitProduction

   With thePartitioning, Real Application Clusters and Data Miningoptions

   Export done inZHS16GBK character set and UTF8 NCHAR character set

   server uses UTF8character set (possible charset conversion)

   . exportingpre-schema procedural objects and actions

   。。。。。。​

   .exporting cluster definitions

   . about to exportSC_OWNER's tables via Conventional Path ...

   . . exporting table         ADMIN_PRIVILEGES        2 rows exported

   EXP-00091: Exportingquestionable statistics.

   EXP-00091: Exportingquestionable statistics.

   . . exporting table             ALL_SOURCES

   EXP-00056: ORACLEerror 12152 encountered

   ORA-12152: TNS:unable to send breakmessage

   EXP-00008: ORACLEerror 1023 encountered

   ORA-01023: Cursorcontext not found (Invalid cursor number)

   EXP-00000: Exportterminated unsuccessfully

   问题依旧,2行的表可以成功,下面的表ALL_xxx  (820行)就不行了,说明还是和数据量多少和包有关系

4. 换测试客户端,把语句换到RAC服务器上测试

    . . exporting table          USER_SESSION_BK     311687 rowsexported

    . . exporting table      USER_SESSION_MENU_BK        0 rows exported

    . . exporting table              WORKSTATION       74 rows exported

    . . exporting table     XMI_ASYNC_MSG_JRNL_BK      8069 rows exported

    . . exporting table              TOAD_PLAN_SQL        0 rows exported

    . . exporting table             TOAD_PLAN_TABLE     84196 rowsexported

    . exportingsynonyms

    ...........................

    . exportingmaterialized views

    . exporting snapshotlogs

    . exporting jobqueues

    . exporting refreshgroups and children

    . exportingdimensions

    . exportingpost-schema procedural objects and actions

    . exportingstatistics

    Export terminatedsuccessfully without warnings.

   没有问题,311687条的表都可以exp出来,反面证明:

  数据库server进程没有问题;​

 

问题还在于跨网段的设备或防火墙;

问题定位之后,下面的工作需要网络工程师一起合作完成:

1.把防火墙上,针对某几个客户端,打开旁路,等于防火墙让这些客户端访问的数据直接通过,不检查了,

  在测试exp,果然正常了,基本确定问题在防火墙上;

2. 然后网络工程师关闭旁路,继续测试,巧的是,此时exp也仍然正常,大家都很奇怪。

3.然后居然发现所有有问题的客户端都正常了,包含之前没有开旁路的

4.反过来想一想为什么呢,网络工程师说,刚刚在开通旁路的时候,同时升级了防火墙软件版本,原来的低版本软件没有旁路功能,这样就好理解了,防火的原来的软件有缺陷(bug),于是把所有同类的防火墙都更新软件,事后网络工程师说我们的防火墙很便宜,才几万块,看来,便宜真的没有多少好货。

错误信息参考:

p1:oracle>oerr ORA 12152

12152, 00000, "TNS:unable to send breakmessage"

// *Cause:  Unable to send break message.Connection probably disconnected.

// *Action: Reestablish connection. If the error ispersistent, turn

// on tracing and reexecute theoperation.​

 

p1:oracle>oerr ora 12151

12151, 00000, "TNS:received bad packet type from networklayer"

// *Cause:  Internal error.

// *Action: Not normally visible to the user. For furtherdetails, turn

// on tracing and reexecute the operation. If errorpersists, contact

// Worldwide CustomerSupport.​

 

p1:oracle>oerr ora 12571

12571, 00000, "TNS:packet writer failure"

// *Cause: An error occurred during a datasend.

// *Action: Not normally visible to the user. For furtherdetails, turn

// on tracing and reexecute the operation. If errorpersists, contact

// Oracle Customer Support.


本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
oracle 的tnsping命令
如何测试网络延迟和抖动,以及如何模拟网络的延迟和抖动(HoloWAN技术文档)
ORA
exp/imp导入导出版本问题和ORA
解决oracle连接很慢问题
ORA-00845 startup启动不起来关于磁盘空间扩充
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服