CN107918564B - 数据传输异常处理方法、装置、电子设备及存储介质 - Google Patents

数据传输异常处理方法、装置、电子设备及存储介质 Download PDF

Info

Publication number
CN107918564B
CN107918564B CN201711112497.6A CN201711112497A CN107918564B CN 107918564 B CN107918564 B CN 107918564B CN 201711112497 A CN201711112497 A CN 201711112497A CN 107918564 B CN107918564 B CN 107918564B
Authority
CN
China
Prior art keywords
temporary
server
export
script file
file
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201711112497.6A
Other languages
English (en)
Other versions
CN107918564A (zh
Inventor
杨旺明
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Taikang Insurance Group Co Ltd
Original Assignee
Taikang Insurance Group Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Taikang Insurance Group Co Ltd filed Critical Taikang Insurance Group Co Ltd
Priority to CN201711112497.6A priority Critical patent/CN107918564B/zh
Publication of CN107918564A publication Critical patent/CN107918564A/zh
Application granted granted Critical
Publication of CN107918564B publication Critical patent/CN107918564B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0745Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in an input/output transactions management context
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0793Remedial or corrective actions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/80Database-specific techniques

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明实施例提供了一种数据传输异常处理方法、装置、电子设备及存储介质,涉及数据处理技术领域。该方法包括:通过第一服务器中的导出脚本文件定时对所述第一服务器中的目标数据进行导出,并判断所述导出是否发生异常;在判断所述导出发生异常时,生成存储于所述第一服务器的临时导出脚本文件以及存储于第二服务器的临时导入脚本文件;通过所述临时导出脚本文件再次对所述目标数据进行导出,并根据导出的所述目标数据生成临时文件;在判断所述临时文件生成完毕时,通过所述临时导入脚本文件将所述目标数据导入所述第二服务器。本发明实施例提高了数据传输异常处理的效率。

Description

数据传输异常处理方法、装置、电子设备及存储介质
技术领域
本发明实施例涉及数据处理技术领域,具体而言,涉及一种数据传输异常处理方法、数据传输异常处理装置、电子设备以及计算机可读存储介质。
背景技术
在业务***出现异常或者紧急情况时,可以采用***运维提供***咨询和异常处理服务,但是由于技术限制可能会导致异常处理不及时的情况,从而影响业务正常运行,降低用户体验。
例如数据库与数据库之间传输重量级数据出现异常情况时,容易受业务***中的业务节点、批处理优化以及人为因素的影响,因此可能会导致处理时间的滞后性。相关技术中,主要是通过日志发现该异常信息,然后通过运维人员手动修改导出脚本、修改导入脚本、修改定时任务等相关文件进行异常处理。
上述数据传输异常处理方式在取数脚本较多时,工作步骤较多且工作较大,因此导致效率较低;除此之外,由于完全靠人工手动修改相关文件,不可避免的会发生错误,导致准确性较低的问题。
需要说明的是,在上述背景技术部分公开的信息仅用于加强对本发明实施例的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。
发明内容
本发明实施例的目的在于提供一种数据传输异常处理方法、数据传输异常处理装置、电子设备及存储介质,进而至少在一定程度上克服由于相关技术的限制和缺陷而导致的数据传输异常处理效率低和准确性低的问题。
本发明实施例的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本发明实施例的实践而习得。
根据本发明实施例的一个方面,提供一种数据传输异常处理方法,包括:通过第一服务器中的导出脚本文件定时对所述第一服务器中的目标数据进行导出,并判断所述导出是否发生异常;在判断所述导出发生异常时,生成存储于所述第一服务器的临时导出脚本文件以及存储于第二服务器的临时导入脚本文件;通过所述临时导出脚本文件再次对所述目标数据进行导出,并根据导出的所述目标数据生成临时文件;在判断所述临时文件生成完毕时,通过所述临时导入脚本文件将所述目标数据导入所述第二服务器。
可选地,生成存储于所述第一服务器的临时导出脚本文件以及存储于第二服务器的临时导入脚本文件包括:复制所述导出脚本文件生成所述临时导出脚本文件,复制导入脚本文件生成所述临时导入脚本文件;复制定时任务程序生成临时定时任务程序,并将所述临时定时任务程序的时间修改为异常的发生时间。
可选地,判断所述临时文件生成完毕包括:对比所述临时文件生成的时间与所述导出异常发生的时间;在所述临时文件生成的时间与所述导出异常发生的时间一致且所述临时文件的大小在预设时长内保持不变时,判断所述临时文件生成完毕。
可选地,在监控通过第一服务器中的导出脚本文件定时对所述第一服务器中的目标数据的导出之前,所述方法还包括:通过公钥和私钥获取访问所述第一服务器的权限。
可选地,将所述目标数据导入所述第二服务器包括:通过所述公钥执行所述临时导入脚本文件,以将所述第一服务器的所述目标数据导入所述第二服务器。
可选地,通过所述临时导入脚本文件将所述目标数据导入所述第二服务器后,所述方法还包括:删除所述临时导出脚本文件和所述临时导入脚本文件;以及备份和删除所述临时文件。
可选地,通过公钥和私钥获取访问所述第一服务器的权限包括:在新建与所述第二服务器对应的所述公钥和所述私钥后,将所述公钥分享至所述第一服务器。
根据本公开的一个方面,提供一种数据传输异常处理装置,包括:
定时导出模块,用于通过第一服务器中的导出脚本文件定时对所述第一服务器中的目标数据进行导出,并判断所述导出是否发生异常;脚本生成模块,用于在判断所述导出发生异常时,生成存储于所述第一服务器的临时导出脚本文件以及存储于第二服务器的临时导入脚本文件;再次导出模块,用于通过所述临时导出脚本文件再次对所述目标数据进行导出,并根据导出的所述目标数据生成临时文件;数据导入模块,用于在判断所述临时文件生成完毕时,通过所述临时导入脚本文件将所述目标数据导入所述第二服务器。
根据本公开的一个方面,提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任意一项所述的数据传输异常处理方法。
根据本公开的一个方面,提供一种电子设备,包括:
处理器;以及存储器,用于存储所述处理器的可执行指令;其中,所述处理器配置为经由执行所述可执行指令来执行上述任意一项所述的数据传输异常处理方法。
本发明实施例提供的数据传输异常处理方法、数据传输异常处理装置、电子设备以及计算机可读存储介质中,通过第一服务器中的导出脚本文件定时对所述第一服务器中的目标数据进行导出,并判断所述导出是否发生异常;在判断所述导出发生异常时,生成存储于所述第一服务器的临时导出脚本文件以及存储于第二服务器的临时导入脚本文件;通过所述临时导出脚本文件再次对所述目标数据进行导出,并根据导出的所述目标数据生成临时文件;在判断所述临时文件生成完毕时,通过所述临时导入脚本文件将所述目标数据导入所述第二服务器。一方面,通过生成临时导出脚本和临时导入脚本处理传输异常的数据,减少了工作量,进而提高了处理效率;另一方面,避免了人工处理异常时发生错误的情况,提高了准确性。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本发明实施例。
附图说明
通过参照附图来详细描述其示例实施例,本发明实施例的上述和其它特征及优点将变得更加明显。
图1示意性示出本发明实施例的数据传输异常处理方法的流程图;
图2示意性示出本发明实施例中生成临时脚本的示意图;
图3示意性示出本发明实施例中判断临时文件生成完毕的示意图;
图4示意性示出本发明实施例的数据传输异常处理方法的具体处理流程图;
图5示意性示出本发明实施例的数据传输异常处理装置框图;
图6示意性示出本发明实施例的电子设备的框图;
图7示意性示出本发明实施例的计算机可读存储介质的示意图。
具体实施方式
现在将参考附图更全面地描述示例实施例。然而,示例实施例能够以多种形式实施,且不应被理解为限于在此阐述的实施例;相反,提供这些实施例使得本发明实施例将全面和完整,并将示例实施例的构思全面地传达给本领域的技术人员。在图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。
此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施例中。在下面的描述中,提供许多具体细节从而给出对本发明实施例的实施例的充分理解。然而,本领域技术人员将意识到,可以实践本发明实施例的技术方案而没有所述特定细节中的一个或更多,或者可以采用其它的方法、组元、材料、装置、步骤等。在其它情况下,不详细示出或描述公知结构、方法、装置、实现、材料或者操作以避免模糊本发明实施例的各方面。
附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个软件硬化的模块中实现这些功能实体或功能实体的一部分,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
本示例实施例中,首先提供了一种数据传输异常处理方法,可以应用于多个业务***间是通过数据库环境进行数据的导出导入操作,参考图1所示,所述方法可以包括:
在步骤S110中,通过第一服务器中的导出脚本文件定时对所述第一服务器中的目标数据进行导出,并判断所述导出是否发生异常;
在步骤S120中,在判断所述导出发生异常时,生成存储于所述第一服务器的临时导出脚本文件以及存储于第二服务器的临时导入脚本文件;
在步骤S130中,通过所述临时导出脚本文件再次对所述目标数据进行导出,并根据导出的所述目标数据生成临时文件;
在步骤S140中,在判断所述临时文件生成完毕时,通过所述临时导入脚本文件将所述目标数据导入所述第二服务器。
本发明实施例中提供的数据传输异常处理方法,一方面,通过生成临时导出脚本和临时导入脚本处理传输异常的数据,减少了工作量,进而提高了处理效率;另一方面,避免了人工处理异常时发生错误的情况,提高了准确性。
接下来,结合图1至图4对本发明实施例中的数据传输异常方法的各个步骤进行详细的解释和说明。
在步骤S110中,通过第一服务器中的导出脚本文件定时对所述第一服务器中的目标数据进行导出,并判断所述导出是否发生异常。
本示例中,第一服务器可以理解为数据源服务器,用于存储需要导出的目标数据且所述第一服务器可以有多个。目标数据可以以数据表的形式或者其他形式存储在第一服务器中。目标数据例如可以为每天的所有销售数据,每天的某几个小时内的视频下载数据等,可以根据实际需求进行具体确定,本示例中以每天的所有销售数据为例进行说明。导出脚本文件例如可以包括SQL(Structured Query Language,结构化查询语言)脚本、Insert脚本等,可以通过执行第一服务器中原有的数据导出脚本文件,对第一服务器中的目标数据进行定时导出。此处的定时例如可以理解为在每天的同一预设时刻对目标数据进行导出,预设时刻例如可以为每天的3点钟或者是每天的任意时刻。除此之外,可以将从第一服务器中导出的目标数据生成存储于目标服务器的文本文件,以将目标数据传输或者导入至需要的目标服务器的数据库中进行存储或者整理等操作。
在通过第一服务器中的导出脚本文件定时对所述第一服务器中的目标数据进行导出时,可以通过监测模块或者是监测装置每天实时监测数据服务器之间的数据传输状态,以判断目标数据导出过程是否出现异常。此处的导出异常可以理解为由于业务***的批处理延迟、业务节点的调整、网络异常及其他异常情况导致取数为空。监测模块例如可以包括监测程序或者函数。例如,正常情况下导出的目标数据可以为字符形式的文本格式或者是二进制数据形式的压缩格式;异常情况下,导出的TXT文件中不存在任何形式的数据。在步骤S120中,在判断所述导出发生异常时,生成存储于所述第一服务器的临时导出脚本文件以及存储于第二服务器的临时导入脚本文件。
本示例中,在通过监测模块判断目标数据导出过程出现异常时,可以立刻通过SSH协议远程生成T-SQL临时文件从而生成临时导出脚本文件,所述临时导出脚本文件存储在第一服务器中。进一步地,可以修改T-SQL临时文件的取数范围从而修改临时导出脚本文件的取数范围。临时导出脚本文件的形式与导出脚本文件相同,均为调用T-SQL临时文件或T-SQL文件对数据库服务器进行取数,并存储在第二服务器中。此外,可以复制原用于执行导出脚本文件、导入脚本文件的定时任务程序,生成一临时定时任务程序,并将该临时定时任务程序的时间戳修改为异常情况发生的时间点。此后,通过新生成的临时定时任务程序执行临时导入脚本文件和临时导出脚本文件。通过以上修改过程,可以将临时导出脚本文件和临时导入脚本文件的取数时间设置为异常情况发生的时间。此处的第二服务器可以理解为需要将第一服务器中的目标数据导入的目标服务器。
在步骤S130中,通过所述临时导出脚本文件再次对所述目标数据进行导出,并根据导出的所述目标数据生成临时文件。
修改临时定时任务程序的时间戳后,可以通过临时定时任务程序执行该临时导出脚本文件再次对目标数据进行导出。同时可以继续通过监测模块判断导出过程是否出现异常,如果此次导出过程未出现异常,则可以根据导出的目标数据在第一服务器生成一个临时文件,然后将该临时文件传输至第二服务器。此处的临时文件可以用于存储从第一服务器中导出的目标数据且临时文件例如可以为TXT格式。
如果此次导出过程出现异常,则可以重复步骤S120中的方法,再次生成存储于所述第一服务器的临时导出脚本文件,存储于第二服务器的临时导入脚本文件,以及临时定时任务程序,然后将修改临时定时任务程序的时间戳修改为异常发生的时间,进一步再通过临时定时任务程序执行所述临时导出脚本文件再次对所述目标数据进行导出,并且根据导出的所述目标数据再次生成临时文件。
需要说明的是,在实时监测数据传输的过程中,只要发现数据导出异常,则立刻重新执行步骤S120中的步骤,生成临时导出脚本文件以及临时导入脚本文件,再次对目标数据进行导出,直到导出过程未出现异常为止。监测异常以及重复执行导出过程的具体步骤都可以通过函数或者编写程序完成,本示例中对此不作特殊限定。通过监测到数据传输异常时,反复生成临时导出脚本文件以及临时导入脚本文件对目标数据进行导出的方法,可以最大限度地保证数据的准确率以及提高数据传输的可靠性。
接下来,在步骤S140中,在判断所述临时文件生成完毕时,通过所述临时导入脚本文件将所述目标数据导入所述第二服务器。
在生成临时文件的同时,可以通过软件或者扫描工具实时判断临时文件是否生成完毕,扫描工具例如可以为文件扫描器。在判断所述临时文件生成完毕时,可以执行存储于第二服务器中的临时导入脚本文件,将所述临时文件导入所述第二服务器数据库。此处通过判断临时文件是否生成完毕,可以避免由于临时文件不完整而导致的数据不能完整传输的问题,进而可以提高数据传输过程的可靠性。
详细而言,在生成T-SQL临时文件后,可以将临时定时任务程序的时间戳修改为异常发生的时间,然后可以修改T-SQL临时文件的取数范围,进一步再通过临时定时任务程序执行所述临时导入脚本文件再次对所述目标数据进行导入。
图2描述的是本发明实施例中生成临时导出脚本文件和临时导入脚本文件的示意图。结合图2而言,步骤S120示例性可以包括:
在步骤S210中,复制所述导出脚本文件生成所述临时导出脚本文件,复制导入脚本文件生成所述临时导入脚本文件。
首先可以复制所述导出脚本文件并将其存储在第一服务器中,以生成临时导出脚本文件,复制第二服务器中的导入脚本文件并将其存储在第二服务器中,以生成临时导入脚本文件。在复制过程中,也复制了导出脚本文件调用的T-SQL文件,生成了T-SQL临时文件。其中,T-SQL文件记载了取数逻辑以及取数范围,用于执行导出脚本文件的主要任务。
随后,修改临时导出脚本文件中的T-SQL临时文件的取数范围,从而修改了临时导出脚本文件的取数范围。
在步骤S220中,复制定时任务程序生成临时定时任务程序,并将所述临时定时任务程序的时间戳修改为异常的发生时间。
数据传输的过程是通过一个定时任务程序定时执行导出脚本文件和导入脚本文件实现的。定时任务程序的时间戳控制数据传输过程的启动时间。因此,可以通过生成临时定时任务程序来修改传输发生异常时下一次取数的时间。举例而言,正常情况下,定时任务程序的时间戳为3:00,即每天凌晨3点启动第一服务器中的导出脚本文件导出目标数据。如果在3点10分的时候发现导出异常,则可以立刻复制定时任务程序生成新的临时定时任务程序,并且将所述临时定时任务程序的时间戳自动修改3点10分,即在异常发生的时候,立即生成并执行临时定时任务程序,从而修改临时导出脚本文件和临时导入脚本文件的再次启动时间。
通过自动将临时导出脚本文件和临时导入脚本文件的启动时间修改为导出异常发生的时间,不仅可以提高异常处理效率,而且可以最大限度地保证数据的完整性。
图3示意性示出判断临时文件是否生成完毕的示意图。参考图3所示,步骤S140示例性可以包括步骤S310和步骤S320,其中:
在步骤S310中,对比所述临时文件生成的时间与所述导出异常发生的时间。
具体而言,如果监控模块监控到数据传输异常,可以立即将异常发生的时间传输到第二服务器中的文件扫描器,进而执行该文件扫描器判断临时文件的生成时间。文件扫描器例如可以为一个单独的代码,可以为导入脚本文件的一部分。本示例中,文件扫描器会全文搜索第二服务器上由临时导出脚本生成的的导出文件,并获取文件的属性信息,例如可以对比临时文件的生成时间以及导出异常发生的时间,以判断临时文件的生成时间与导出异常发生的时间是否一致。
在步骤S320中,在所述临时文件生成的时间与所述导出异常发生的时间一致且所述临时文件的大小在预设时长内保持不变时,判断所述临时文件生成完毕。
在判断临时文件的生成时间与导出异常发生的时间一致时,可以进一步结合预设时长内临时文件的变化情况判断临时文件是否生成完毕。临时文件的变化情况例如可以包括临时文件大小的变化或者是临时文件数量的变化。例如在判断临时文件的生成时间与导出异常发生的时间一致,例如导出异常发生的时间为3点10分,临时文件的生成时间也为3点10分。如果预设时长内临时文件的数量或者大小保持不变,例如临时文件的大小在预设时长内均为200M,可以认为没有在预设时长内没有新数据导入,此时可以判断临时文件已经生成完毕。本示例中,预设时长例如可以为1分钟或者5分钟,具体可以根据经验值或者是其他条件确定。
本示例中通过判断临时文件的生成时间与导出异常发生的时间是否一致以及临时文件的变化情况判断临时文件生成,可以最大限度地保证数据的完整性。
除此之外,为了方便目标数据在多个服务器之间进行传输,在监控通过第一服务器中的导出脚本文件定时对所述第一服务器中的目标数据的导出之前,所述方法还可以包括:
通过公钥和私钥获取访问所述第一服务器的权限。
一般而言,公钥通常用于加密会话密钥、验证数字签名,或加密可以用相应的私钥解密的数据。通过这种算法得到的密钥对能保证在世界范围内是唯一的。使用这个密钥对的时候,如果用其中一个密钥加密一段数据,必须用另一个密钥解密。比如用公钥加密数据就必须用私钥解密,如果用私钥加密也必须用公钥解密,否则解密将不会成功。
本示例中,用户或者程序开发人员首先可以建立与第二服务器对应的公钥和私钥,进一步地第二服务器可以根据上述建立好的公钥和私钥实现数据的导入,以保证数据传输的安全性。具体而言,通过公钥和私钥获取访问所述第一服务器的权限可以包括:
在新建与所述第二服务器对应的所述公钥和所述私钥后,将所述公钥分享至所述第一服务器。
首先,可以由开发人员开通第二服务器和各个第一服务器之间的SSH(struts+spring+hibernate)集成服务框架,以使第二服务器可以通过服务器间的公钥和私钥进行服务器间无密码访问。SSH是一种网络协议,其中采用了公钥加密,可以用于计算机之间的加密登录。如果一个用户从本地计算机,使用SSH协议登录另一台远程计算机,我们就可以认为,这种登录是安全的,即使被中途截获,密码也不会泄露。整个过程可以描述为:远程主机收到用户的登录请求,把自己的公钥发给用户;用户使用这个公钥,将登录密码加密后,发送回来;远程主机用自己的私钥,解密登录密码,如果密码正确,就同意用户登录。
具体而言,可以在第二服务器上执行ssh-keygen命令新建第二服务器的公钥和私钥。在新建完毕后可以访问用户根目录下的/.ssh查看公钥与私钥是否新建完成。如果没有异常的情况下,会存在两个文件:id_rsa和id_rsa.pub,其中id_rsa是私钥,id_rsa.pub是公钥。接下来,第二服务器可以使用Linix中的scp命令进行文件复制,以将新建的公钥id_rsa.pub分享到各个第一服务器上。
通过上述步骤,第二服务器可以无须密码登录多个第一服务器,并且可以远程无密码执行第一服务器相应的脚本文件和查看文件信息,既保证了数据的安全性,又可以快速访问数据源服务器,以通过该前提条件实现数据传输异常自动化处理方法。
在此基础上,步骤S140中将所述目标数据导入所述第二服务器可以包括:
通过所述公钥执行所述临时导入脚本文件,以将所述第一服务器的所述目标数据导入所述第二服务器。
在判断临时文件生成完毕之后,第二服务器可以通过共享的所述公钥远程自动执行生成的临时导入脚本文件,进而将临时文件导入第二服务器的数据库,以实现目标数据的导入。通过共享公钥执行临时导入脚本文件,可以实现实现自动化处理,节约成本且提高了***安全性。
除此之外,通过所述临时导入脚本文件将所述目标数据导入所述第二服务器后,所述方法还可以包括:
删除所述临时导出脚本文件和所述临时导入脚本文件;以及
备份和删除所述临时文件。
在完成目标数据的导出导入之后,可以通过临时任务脚本回收站将传输异常时生成的临时导出脚本文件以及所述临时导入脚本文件自动删除,避免这些临时脚本文件占用大量的空间;同时也可以将生成的临时文件进行备份,以保护原文件不受影响,在将临时文件备份后,可以将该临时文件自动删除,避免这些临时文件占用大量的空间。
需要注意的是,如果第一次生成临时导出脚本文件和所述临时导入脚本文件后数据导出未出现异常,则可以直接将临时导出脚本文件和所述临时导入脚本文件删除;如果第一次生成临时导出脚本文件和所述临时导入脚本文件后检测到数据导出发生异常,则可以先将临时导出脚本文件和所述临时导入脚本文件删除后,再按照步骤S120中的方法重新生成。
图4中示意性示出数据传输异常处理方法的流程示意图。参考图4所示,所述数据传输异常处理方法具体可以包括以下步骤:
在步骤S410中,数据库服务器A,无需密码远程登录各个数据源服务器,并且远程执行数据源服务器中对应的脚本文件以及查看文件信息。具体的过程可以包括:
S411,开发人员开通数据库服务器A与数据源服务器B1,...,Bn之间SSH权限;
S412,建立数据库服务器A的公钥和私钥;
S413,数据库服务器A通过scp命令共享其公钥;
S414,数据库服务器A通过公钥访问数据源服务器B1,...,Bn。其中,数据源服务器B1,...,Bn即为上述步骤中所述的第一服务器,数据库服务器A即为上述步骤中所述的第二服务器。
在步骤S420中,触发定时导入数据任务,例如可以在数据库服务器A通过公钥访问数据源服务器B1,...,Bn中的任意一个或者多个时,触发定时导入数据任务,例如通过执行数据源服务器中的导出脚本文件对目标数据进行定时导出。
在步骤S430中,实时监控数据传输是否异常,例如可以通过包含监测程序或者函数的监控模块实时监测导出的目标数据是否为空,从而判断定时导出过程是否异常。
接下来在步骤S440中,当监控数据传输异常时,通过触发器将导出异常产生的时间传入文件扫描器,通过执行文件扫描器判断文件生成时间;所述文件扫描器可以存储在第二服务器中,例如可以为导入脚本文件的一部分,也可以单独为一个小程序。
在步骤S450中,触发数据库服务器A执行数据传输异常处理方法。具体地过程可以包括:
S451,基于POI库进行文本全文搜索,例如数据库服务器A通过SSH服务远程执行各数据源服务器的导出脚本文件,该导出脚本文件会根据感兴趣特征(POI)全文搜索用于导出数据使用的T-SQL文件。其中,感兴趣特征也可以称为标志点的集合,感兴趣特征可以用于描述原导出脚本文件中需要修改替换的部分,例如需要将T-SQL文件中的时间戳置换为当天导出异常发生的时间生成T-SQL临时文件。
S452,生成临时脚本文件;例如,根据脚本中配置好的规则进行复制,生成正确的T-SQL临时文件,从而生成临时导出脚本文件。同时还可以复制原用于执行导出脚本文件、导入脚本文件的定时任务程序,生成一个临时定时任务程序,并将此临时定时任务程序的时间戳修改为异常情况发生的时间点,从而确定再次导出数据和导入数据的启动时间。此后,通过新生成的临时定时任务程序执行新生成的临时导入脚本文件和临时导出脚本文件,将目标数据导出和导入。通过以上修改过程,可以将临时导入脚本的取数时间设置为异常情况发生的时间,以用于再次执行目标数据的导出和导入过程。
本示例中,生成新的T-SQL临时文件和临时脚本文件可以保护原文件和原数据的完整性,并且可以防范修改文件造成的风险,提高文件的安全性。
S453,触发取数任务,即数据库服务器A可以远程执行数据源服务器B1,...,Bn的各个临时导出脚本文件,然后导出异常时间点和上次导数间隔内的数据。例如,第一天3点钟执行或者启动数据源服务器中原有的导出脚本文件导出目标数据成功,第二天在3点10分的时候发现导出异常,此时需要导出第一天3点钟至第二天3点10分之间的所有数据。
结合上述步骤而言,可以通过生成临时定时任务程序来修改传输发生异常时下一次取数的时间。举例而言,正常情况下,定时任务程序的时间戳为3:00,即每天凌晨3点启动第一服务器中的导出脚本文件导出目标数据。如果在3点10分的时候发现导出异常,则可以立刻复制定时任务程序生成新的临时定时任务程序,并且将所述临时定时任务程序的时间戳自动修改3点10分,即在异常发生的时候,立即生成并执行临时定时任务程序,从而修改了临时导出脚本和临时导入脚本的启动时间,实现目标数据的再次导出和再次导入。
S454,将数据导出至临时文件,由于临时文件中可以规定和修改取数范围,因而可以保证数据正确导出。
然后再通过执行S414即数据库服务器通过公钥访问数据源服务器和S420触发定时导入数据任务,完成目标数据导出过程和导入过程。
S455,通过临时定时任务脚本回收站自动删除导出数据文件,避免生成的临时脚本文件和临时文件占用大量的存储空间。
图4中描述的是将一个数据源服务器中的目标数据导入数据库服务器时数据传输异常处理的过程。需要说明的是,也可以同时将多个数据源服务器中的数据导出,且所有的导出方法以及传输异常监控、传输异常处理方法均相同,且均可以在Linux***下使用Python语言、Shell语言或者其它语言编写程序实现,具体过程此处不再赘述。
综上所述,本发明实施例中提供的数据传输异常处理方法,通过生成临时导出脚本文件、临时导入脚本文件以及临时文件处理传输异常的数据,提高了数据传输异常处理效率;通过对临时导出脚本文件和临时导入脚本文件进行自动修改,避免了人工处理异常时发生错误的情况,提高了准确性;除此之外,在实时监测数据传输的过程中,只要发现数据导出异常,则立刻重新生成临时导出脚本文件以及临时导入脚本文件,再次对目标数据进行导出,直到导出过程未出现异常为止,可以提高数据传输的可靠性;通过判断临时文件的生成时间与导出异常发生的时间是否一致以及临时文件的变化情况判断临时文件生成,可以最大限度地保证数据的完整性。
此外,本示例实施方式中,还提供了一种数据传输异常处理装置500。参照图5所示,所述装置500可以包括定时导出模块501、脚本生成模块502、再次导出模块503以及数据导入模块504,其中:
定时导出模块501,可以用于通过第一服务器中的导出脚本文件定时对所述第一服务器中的目标数据进行导出,并判断所述导出是否发生异常;
脚本生成模块502,可以用于在判断所述导出发生异常时,生成存储于所述第一服务器的临时导出脚本文件以及存储于第二服务器的临时导入脚本文件;
再次导出模块503,可以用于通过所述临时导出脚本文件再次对所述目标数据进行导出,并根据导出的所述目标数据生成临时文件;
数据导入模块504,可以用于在判断所述临时文件生成完毕时,通过所述临时导入脚本文件将所述目标数据导入所述第二服务器。
需要说明的是,上述数据传输异常处理装置中各模块的具体细节已经在对应的数据传输异常处理方法中进行了详细的描述,因此此处不再赘述。
在本发明实施例的示例性实施例中,还提供了一种能够实现上述方法的电子设备。
所属技术领域的技术人员能够理解,本发明的各个方面可以实现为***、方法或程序产品。因此,本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“***”。
下面参照图6来描述根据本发明的这种实施方式的电子设备600。图6显示的电子设备600仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图6所示,电子设备600以通用计算设备的形式表现。电子设备600的组件可以包括但不限于:上述至少一个处理单元610、上述至少一个存储单元620、连接不同***组件(包括存储单元620和处理单元610)的总线630、显示单元640。
其中,所述存储单元存储有程序代码,所述程序代码可以被所述处理单元610执行,使得所述处理单元610执行本说明书上述“示例性方法”部分中描述的根据本发明各种示例性实施方式的步骤。例如,所述处理单元610可以执行如图1所示的步骤S110,通过第一服务器中的导出脚本文件定时对所述第一服务器中的目标数据进行导出,并判断所述导出是否发生异常;步骤S120,在判断所述导出发生异常时,生成存储于所述第一服务器的临时导出脚本文件以及存储于第二服务器的临时导入脚本文件;步骤S130,通过所述临时导出脚本文件再次对所述目标数据进行导出,并根据导出的所述目标数据生成临时文件;步骤S140,在判断所述临时文件生成完毕时,通过所述临时导入脚本文件将所述目标数据导入所述第二服务器。
存储单元620可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(RAM)6201和/或高速缓存存储单元6202,还可以进一步包括只读存储单元(ROM)6203。
存储单元620还可以包括具有一组(至少一个)程序模块6205的程序/实用工具6204,这样的程序模块6205包括但不限于:操作***、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
总线630可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、***总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。
电子设备600也可以与一个或多个外部设备700(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得用户能与该电子设备600交互的设备通信,和/或与使得该电子设备600能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口650进行。并且,电子设备600还可以通过网络适配器660与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器660通过总线630与电子设备600的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备600使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID***、磁带驱动器以及数据备份存储***等。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本发明实施例实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、终端装置、或者网络设备等)执行根据本发明实施例实施方式的方法。
在本发明实施例的示例性实施例中,还提供了一种计算机可读存储介质,其上存储有能够实现本说明书上述方法的程序产品。在一些可能的实施方式中,本发明的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在终端设备上运行时,所述程序代码用于使所述终端设备执行本说明书上述“示例性方法”部分中描述的根据本发明各种示例性实施方式的步骤。
参考图7所示,描述了根据本发明的实施方式的用于实现上述方法的程序产品800,其可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在终端设备,例如个人电脑上运行。然而,本发明的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行***、装置或者器件使用或者与其结合使用。
所述程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的***、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行***、装置或者器件使用或者与其结合使用的程序。
可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
此外,上述附图仅是根据本发明示例性实施例的方法所包括的处理的示意性说明,而不是限制目的。易于理解,上述附图所示的处理并不表明或限制这些处理的时间顺序。另外,也易于理解,这些处理可以是例如在多个模块中同步或异步执行的。
应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本发明实施例的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本发明实施例的其他实施例。本申请旨在涵盖本发明实施例的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明实施例的一般性原理并包括本发明实施例未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明实施例的真正范围和精神由权利要求指出。
应当理解的是,本发明实施例并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明实施例的范围仅由所附的权利要求来限。

Claims (9)

1.一种数据传输异常处理方法,其特征在于,包括:
通过第一服务器中的导出脚本文件定时对所述第一服务器中的目标数据进行导出,并判断所述导出是否发生异常;
在判断所述导出发生异常时,生成存储于所述第一服务器的临时导出脚本文件以及存储于第二服务器的临时导入脚本文件;
通过所述临时导出脚本文件再次对所述目标数据进行导出,并根据导出的所述目标数据生成临时文件;
在判断所述临时文件生成完毕时,通过所述临时导入脚本文件将所述目标数据导入所述第二服务器。
2.根据权利要求1所述的数据传输异常处理方法,其特征在于,生成存储于所述第一服务器的临时导出脚本文件以及存储于第二服务器的临时导入脚本文件包括:
复制所述导出脚本文件生成所述临时导出脚本文件,复制导入脚本文件生成所述临时导入脚本文件;
复制定时任务程序生成临时定时任务程序,并将所述临时定时任务程序的时间戳修改为异常的发生时间。
3.根据权利要求1所述的数据传输异常处理方法,其特征在于,判断所述临时文件生成完毕包括:
对比所述临时文件生成的时间与所述导出异常发生的时间;
在所述临时文件生成的时间与所述导出异常发生的时间一致且所述临时文件的大小在预设时长内保持不变时,判断所述临时文件生成完毕。
4.根据权利要求1所述的数据传输异常处理方法,其特征在于,在监控通过第一服务器中的导出脚本文件定时对所述第一服务器中的目标数据的导出之前,所述方法还包括:
新建所述第二服务器的公钥和私钥;
将所述公钥分享至所述第一服务器,以使所述第二服务器通过所述私钥获取访问所述第一服务器的权限。
5.根据权利要求4所述的数据传输异常处理方法,其特征在于,将所述目标数据导入所述第二服务器包括:
通过所述公钥执行所述临时导入脚本文件,以将所述第一服务器的所述目标数据导入所述第二服务器。
6.根据权利要求1所述的数据传输异常处理方法,其特征在于,通过所述临时导入脚本文件将所述目标数据导入所述第二服务器后,所述方法还包括:
删除所述临时导出脚本文件和所述临时导入脚本文件;以及
备份和删除所述临时文件。
7.一种数据传输异常处理装置,其特征在于,包括:
定时导出模块,用于通过第一服务器中的导出脚本文件定时对所述第一服务器中的目标数据进行导出,并判断所述导出是否发生异常;
脚本生成模块,用于在判断所述导出发生异常时,生成存储于所述第一服务器的临时导出脚本文件以及存储于第二服务器的临时导入脚本文件;
再次导出模块,用于通过所述临时导出脚本文件再次对所述目标数据进行导出,并根据导出的所述目标数据生成临时文件;
数据导入模块,用于在判断所述临时文件生成完毕时,通过所述临时导入脚本文件将所述目标数据导入所述第二服务器。
8.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1-6中任意一项所述的数据传输异常处理方法。
9.一种电子设备,其特征在于,包括:
处理器;以及
存储器,用于存储所述处理器的可执行指令;
其中,所述处理器配置为经由执行所述可执行指令来执行权利要求1-6中任意一项所述的数据传输异常处理方法。
CN201711112497.6A 2017-11-13 2017-11-13 数据传输异常处理方法、装置、电子设备及存储介质 Active CN107918564B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201711112497.6A CN107918564B (zh) 2017-11-13 2017-11-13 数据传输异常处理方法、装置、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201711112497.6A CN107918564B (zh) 2017-11-13 2017-11-13 数据传输异常处理方法、装置、电子设备及存储介质

Publications (2)

Publication Number Publication Date
CN107918564A CN107918564A (zh) 2018-04-17
CN107918564B true CN107918564B (zh) 2021-01-15

Family

ID=61896226

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201711112497.6A Active CN107918564B (zh) 2017-11-13 2017-11-13 数据传输异常处理方法、装置、电子设备及存储介质

Country Status (1)

Country Link
CN (1) CN107918564B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111930545B (zh) * 2019-05-13 2023-11-03 ***通信集团湖北有限公司 Sql脚本处理方法、装置和服务器
CN110851533A (zh) * 2019-11-13 2020-02-28 泰康保险集团股份有限公司 跨异构数据库的数据同步方法、装置、介质及电子设备
CN113572683B (zh) * 2020-04-29 2023-07-04 腾讯科技(深圳)有限公司 数据处理方法、装置、电子设备及存储介质
CN116166891B (zh) * 2023-04-25 2023-07-14 深圳市思为软件技术有限公司 基于房地产管理***的事件重推方法及相关装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101944128A (zh) * 2010-09-25 2011-01-12 中兴通讯股份有限公司 数据导出、导入的方法和装置
CN102457545A (zh) * 2010-10-27 2012-05-16 镇江华扬信息科技有限公司 一种数据文件上传方法
CN103186467A (zh) * 2011-12-31 2013-07-03 北京新媒传信科技有限公司 数据正确性验证方法及装置
CN105068805A (zh) * 2015-08-07 2015-11-18 北京思特奇信息技术股份有限公司 一种数据移植过程中数据稽核的方法和***
CN106021593A (zh) * 2016-06-07 2016-10-12 浪潮电子信息产业股份有限公司 一种第一数据库与第二数据库接管过程中的复制处理方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9513999B2 (en) * 2014-01-13 2016-12-06 Netapp, Inc. Method and system for tracking information transferred between storage systems

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101944128A (zh) * 2010-09-25 2011-01-12 中兴通讯股份有限公司 数据导出、导入的方法和装置
CN102457545A (zh) * 2010-10-27 2012-05-16 镇江华扬信息科技有限公司 一种数据文件上传方法
CN103186467A (zh) * 2011-12-31 2013-07-03 北京新媒传信科技有限公司 数据正确性验证方法及装置
CN105068805A (zh) * 2015-08-07 2015-11-18 北京思特奇信息技术股份有限公司 一种数据移植过程中数据稽核的方法和***
CN106021593A (zh) * 2016-06-07 2016-10-12 浪潮电子信息产业股份有限公司 一种第一数据库与第二数据库接管过程中的复制处理方法

Also Published As

Publication number Publication date
CN107918564A (zh) 2018-04-17

Similar Documents

Publication Publication Date Title
WO2021169277A1 (zh) 数据同步方法、装置、设备及计算机可读存储介质
CN107918564B (zh) 数据传输异常处理方法、装置、电子设备及存储介质
US10069625B2 (en) System and method for automatic key generation for self-encrypting drives
US9875370B2 (en) Database server and client for query processing on encrypted data
US9864655B2 (en) Methods and apparatus for mobile computing device security in testing facilities
US10523645B2 (en) Method and system for protecting user data using individualized keys to enable secure compartmentalized data backup/restore
CN109657492B (zh) 数据库管理方法、介质及电子设备
US10425412B2 (en) Dynamic generation of key for encrypting data in management node
CN109995523B (zh) 激活码管理方法及装置、激活码生成方法及装置
CN107797887B (zh) 数据备份及恢复方法、装置、存储介质和电子设备
US10061683B2 (en) Systems and methods for collecting error data to troubleshoot product errors
CN109063011B (zh) 日志处理方法、电子装置及计算机可读存储介质
CN111200593A (zh) 应用登录方法、装置和电子设备
EP3776209A1 (en) Backup and restore validation
CN109657167B (zh) 数据采集方法、装置、服务器及存储介质
US11743046B2 (en) Snapshot transfer for cloud-based storage across accounts
CN116800535A (zh) 多台服务器之间相互免密方法及装置
US10394915B1 (en) Architecture and techniques to search logging information
CN110232570B (zh) 一种信息监管方法及装置
US11847483B2 (en) Secure virtual machine software management
CN109933351A (zh) 一种修复和升级Linux***的方法与装置
US20140006801A1 (en) Start Method for Application Cryptographic Keystores
US10291700B2 (en) Network optimized scan with dynamic fallback recovery
US11088923B2 (en) Multi-stage authorization
CN113742340A (zh) 一种数据库表处理方法及相关设备

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant