一种对数据库保存数据失败的处理方法技术

技术编号:38985942 阅读:13 留言:0更新日期:2023-10-07 10:16
本发明专利技术公开了一种对数据库保存数据失败的处理方法,涉及数据处理技术领域。本发明专利技术包括如下步骤:数据库保存失败的时候,把相应的SQL语句写入到LostData.txt文件中;软件启动一个线程,定时探测数据库是否恢复;若数据库恢复正常,则软件开始从LostData.txt文件中读出第一条SQL语句;软件执行SQL语句,把数据保存到数据库中;成功后,把SQL语句从LostData.txt中删除;继续读出下一条SQL语句,直到LostData.txt没有SQL语句为止,则结束本次数据恢复任务。本发明专利技术通过在数据库保存失败时,将相应的SQL语句保存到硬盘文本文件中,当发现数据库恢复正常后,将SQL语句从文本文件中逐条读出到内存,执行SQL语句,将数据保存到数据库中,避免数据丢失,减少人工干涉,提高数据的安全性。据的安全性。据的安全性。

【技术实现步骤摘要】
一种对数据库保存数据失败的处理方法


[0001]本专利技术属于数据处理
,特别是涉及一种对数据库保存数据失败的处理方法,能够自动执行数据恢复的可靠性方法,减少人工干涉,减少失误,减少工作量,保证数据的安全性。

技术介绍

[0002]现代软件开发中,存在大量将数据保存到数据库中的场景。由于各种异常情况,例如网络中断,数据库软件崩溃,服务器宕机等情况,保存失败是常有的事。当数据库保存数据失败的时候,目前通常的做法有以下3种。
[0003]方法1:直接丢弃数据,继续执行下一步操作。
[0004]方法2:不断地执行数据保存操作,直到成功为止。或者执行一定次数的操作后,如果还是保存失败,则执行方法1。
[0005]方法3:把数据保存到本地硬盘,待数据库恢复正常后,人工把数据保存到数据库中。
[0006]上面三种方法都有相应的缺点。方法1和方法2都会引起数据丢失,并无法恢复;方法2周而复始地执行相同的操作,造成计算机资源浪费,并可能会影响计算机中其它软件的运行效率;方法1、2对一些要求数据完整性很高的行业,例如银行,证券,会计等行业来说,是不可接受的。方法3虽然可以保证数据的完整性,但操作比较繁琐,工作量巨大,并很容易出错。
[0007]本申请文件提供了一种智能的,可自动执行数据恢复的可靠方法,减少人工干涉,减少失误,减少工作量,保证数据的安全性。

技术实现思路

[0008]本专利技术的目的在于提供一种对数据库保存数据失败的处理方法,通过在数据库存储失败时,将相应的SQL语句到文件中,并在数据库恢复时,取出文件中SQL语句保存到数据库中,同时删除文件中的SQL语句,解决了现有的数据丢失难以找回、数据恢复工作量大、操作繁琐的问题。
[0009]为解决上述技术问题,本专利技术是通过以下技术方案实现的:
[0010]本专利技术为一种对数据库保存数据失败的处理方法,包括如下步骤:
[0011]步骤一,数据库保存失败的时候,把相应的SQL语句写入到LostData.txt文件中,一条SQL语句占用一行;
[0012]步骤二,软件启动一个线程,定时探测数据库是否恢复;
[0013]步骤三,若数据库恢复正常,则软件开始从LostData.txt文件中读出第一条SQL语句;
[0014]步骤四,软件执行SQL语句,把数据保存到数据库中,如果保存失败,则返回第2步;
[0015]步骤五,保存成功后,把SQL语句从LostData.txt中删除,并把SQL语句保存到
LostDataBackup.txt文件中;
[0016]步骤六,返回步骤三,继续读出下一条SQL语句,并按顺序执行步骤四、步骤五、步骤六,直到LostData.txt没有SQL语句为止;
[0017]步骤七,当步骤三读取SQL语句时,若发现LostData.txt内没有SQL语句,则结束本次数据恢复任务。
[0018]作为一种优选的技术方案,所述步骤一中,数据库捕获器实时捕获数据库系统运行过程中产生的SQL交互信息,并将捕获到的SQL信息写入SQL日志文件中,同时日志监视器监视SQL日志的变化,实时读取日志中新产生的SQL信息,交由决策器分析决策判断存储到数据库的数据是否成功。
[0019]作为一种优选的技术方案,所述数据库捕获器用于实时捕获数据库系统运行过程中产生的SQL交互信息,通过使用SQL拦截技术,实现对数据库系统SQL交互过程中的捕获,具体流程如下:
[0020]步骤S11:SQL执行语句;
[0021]步骤S12:加载SQL拦截驱动;
[0022]步骤S13:拦截SQL语句,写日志;
[0023]步骤S14:调用应用程序真正的驱动,执行SQL。
[0024]作为一种优选的技术方案,所述,决策器对日志监视器交付的SQL信息进行处理,将SQL信息压入SQL信息栈。
[0025]作为一种优选的技术方案,所述步骤二中,启动创建的线程前,先ping一下IP地址,判断网络是否正常,再在子线程中创建连接来检测数据库的连接状态。
[0026]作为一种优选的技术方案,所述步骤三中,存入LostData.txt中的SQL语句附上存入时间,并将同一天的SQL语句保存在同一日期下面。
[0027]本专利技术具有以下有益效果:
[0028](1)本专利技术通过在数据库保存失败时,将相应的SQL语句保存到硬盘文本文件中,当发现数据库恢复正常后,将SQL语句从文本文件中逐条读出到内存,执行SQL语句,将数据保存到数据库中,避免数据丢失,减少人工干涉,提高数据的安全性。
[0029](2)本专利技术在保存成功后,把该SQL语句从文件中删除,并将该SQL语句保存到新建文本文件中,以备后续查验,周而复始,直到将旧的文件中所有SQL语句执行完为止,保证数据的安全性,提高数据处理效率。
[0030]当然,实施本专利技术的任一产品并不一定需要同时达到以上所述的所有优点。
附图说明
[0031]为了更清楚地说明本专利技术实施例的技术方案,下面将对实施例描述所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0032]图1为本专利技术的一种对数据库保存数据失败的处理方法流程图。
具体实施方式
[0033]下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本专利技术保护的范围。
[0034]请参阅图1所示,本专利技术为一种对数据库保存数据失败的处理方法,包括如下步骤:
[0035]步骤一,数据库保存失败的时候,把相应的SQL语句写入到LostData.txt文件中,一条SQL语句占用一行;数据库捕获器实时捕获数据库系统运行过程中产生的SQL交互信息,并将捕获到的SQL信息写入SQL日志文件中,同时日志监视器监视SQL日志的变化,实时读取日志中新产生的SQL信息,交由决策器分析决策判断存储到数据库的数据是否成功;
[0036]数据库捕获器用于实时捕获数据库系统运行过程中产生的SQL交互信息,通过使用SQL拦截技术,实现对数据库系统SQL交互过程中的捕获,具体流程如下:
[0037]步骤S11:SQL执行语句;
[0038]步骤S12:加载SQL拦截驱动;
[0039]步骤S13:拦截SQL语句,写日志;
[0040]步骤S14:调用应用程序真正的驱动,执行SQL。
[0041]作为一种优选的技术方案,所述,决策器对日志监视器交付的SQL信息进行处理,将SQL信息压入SQL信息栈。
[0042]步骤二,软件启动一个线程,定时探测数据库是否本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种对数据库保存数据失败的处理方法,其特征在于,包括如下步骤:步骤一,数据库保存失败的时候,把相应的SQL语句写入到LostData.txt文件中,一条SQL语句占用一行;步骤二,软件启动一个线程,定时探测数据库是否恢复;步骤三,若数据库恢复正常,则软件开始从LostData.txt文件中读出第一条SQL语句;步骤四,软件执行SQL语句,把数据保存到数据库中,如果保存失败,则返回第2步;步骤五,保存成功后,把SQL语句从LostData.txt中删除,并把SQL语句保存到LostDataBackup.txt文件中;步骤六,返回步骤三,继续读出下一条SQL语句,并按顺序执行步骤四、步骤五、步骤六,直到LostData.txt没有SQL语句为止;步骤七,当步骤三读取SQL语句时,若发现LostData.txt内没有SQL语句,则结束本次数据恢复任务。2.根据权利要求1所述的一种对数据库保存数据失败的处理方法,其特征在于,所述步骤一中,数据库捕获器实时捕获数据库系统运行过程中产生的SQL交互信息,并将捕获到的SQL信息写入SQL日志文件中,同时日志监视器监视SQL日志的变化...

【专利技术属性】
技术研发人员:杨胜韩峰张华张旭日
申请(专利权)人:浙江集秀元智能装备有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1