TCP探针防数据中断方法研究与实现.docx

TCP探针防数据中断方法研究与实现.docx

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

?

?

TCP探针防数据中断方法研究与实现

?

?

朱颖琪

摘要:随着信息化的不断深入,企业内部存在着各种各样的异构软、硬件平台,形成异构数据源。当各应用系统间需要进行数据交流时,其复制数据效率及准确性、及时性必然受到平台异影响。为了解决这一问题,通常利用数据库数据实时同步进行交互。但是,当各平台数据量为PB级,数据交流时间较长,各种保护机制将中断连接,导致之前的数据失效,因此有必要设置TCP探针防数据中断。

关键词:海量数据交互;异构平台;TCP探针

DOI:10.16640/j.cnki.37-1222/t.2017.20.112

当同步数据过程中源数据长时间处于前期查询处理,而不能即时将数据同步到目的数据库,目的数据库在一定时间内检测不到监听连接通道中有数据推送,就会默认为源数据库数据已完成同步,随后立即主动在TCP协议中向源数据库发送FIN标志位,源数据库在接收到FIN标志位后会主动断掉监听连接通道,这样的“假结束”造成数据同步失败。因此将目的数据库推迟发送FIN标志位是关键点。

1原理说明

根据TCP面向连接的通信协议,采取在目的数据库设置TCP探针调整超时参数,使其与业务同步数据量相适应,保证在大数据量同步之前,不会立即发送FIN标志位结束数据同步传输。

没有设置TCP探针前报错如下:

Clientaddress:(ADDRESS=(PROTOCOL=tcp)(HOST=172.**.**.**)(PORT=****))

TNS-00505:操作超时

ntsecondaryerrcode:60

ntOSerrcode:0

nssecondaryerrcode:12560

ntmainerrcode:505

TNS-12535:TNS:操作超時

Tracingnotturnedon.

Tnserrorstruct:

nsmainerrcode:12535

VERSIONINFORMATION:TNSfor32-bitWindows:Version11.1.0.7.0-ProductionOracleBequeathNT

ProtocolAdapterfor32-bitWindows:Version11.1.0.7.0-ProductionWindowsNTTCP/IPNTProtocol

Adapterfor32-bitWindows:Version11.1.0.7.0-Production

FatalNIconnecterror12170.

Oracle11G有两个参数SQLNET.INBOUND_CONNECT_TIMEOUT

和INBOUND_CONNECT_TIMEOUT_listenername;他们的默认值均为60s,这两个参数负责登陆用户与服务器验证的超时时间,在Oracle10GR2以前的版本默认是0s,为了防止DenialofService(DOS)攻击,在此后的版本中才设置为60s。如果在数据交互期间目的数据库没有收到源数据库的同步数据,那么将会在60后发送FIN标志位中断数据同步通道并给出错误提示,对于数据量较大的同步作业这个超时时间显然较短。

设置TCP探针后:

在目的数据库Oracle数据库设置INBOUND_CONNECT_TIMEOUT

参数,按照Oracle官方文档建议设为360s(实际参数值可根据不同业务需求进行设置)Oracle11ghasaproblemthatissessiontimeoutproblem.Youcanaddarowtosqlnet.orafileandlistener.orafiletoresolvesessiontimeoutproblem.

sqlnet.ora

Note:Addthislinetobelowofsqlnet.orafile.

INBOUND_CONNECT_TIMEOUT=360

listener.ora

Note:Addthislinetobelowoflistener.orafile.

通过将INBOUND_CONNECT_TIMEOUT设置为360秒,可使目的数据库延迟6分钟发送FIN标志位。这样便能保证数据同步成功,继而保证应用系统间需要进行数据交流时其效率及准确性。

2成果实施效果

基于Oracle数据库的TCP探针技术已在营销、人资、财务等多个重要系统数据库进行设置调整,至今未出现故障和隐患。取得如下效果:

(1)极大保障了应用系统间数据同步准确性、完整性。

(2)减轻目的端数据库的负载

文档评论(0)

159****4221 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档