CN113918384A - 数据保存方法、装置、设备及存储介质 - Google Patents
数据保存方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN113918384A CN113918384A CN202111189843.7A CN202111189843A CN113918384A CN 113918384 A CN113918384 A CN 113918384A CN 202111189843 A CN202111189843 A CN 202111189843A CN 113918384 A CN113918384 A CN 113918384A
- Authority
- CN
- China
- Prior art keywords
- data
- target
- sql statement
- saved
- stored
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1474—Saving, restoring, recovering or retrying in transactions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2365—Ensuring data consistency and integrity
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/242—Query formulation
- G06F16/2433—Query languages
- G06F16/2445—Data retrieval commands; View definitions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/80—Database-specific techniques
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Quality & Reliability (AREA)
- Computer Security & Cryptography (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种数据保存方法、装置、设备及存储介质。该方法包括:在待保存数据保存失败时,获取待保存数据对应的SQL语句,将SQL语句存储至第一目标文件中;循环探测待保存数据应写入的目标数据库是否恢复正常;在目标数据库恢复正常时,从第一目标文件中读取目标SQL语句;执行目标SQL语句以将待保存数据保存至目标数据库。由于本发明是将SQL语句存储至第一目标文件中;在目标数据库恢复正常时,从第一目标文件中读取目标SQL语句并执行,将待保存数据保存至目标数据库。相对于现有的在数据保存失败时,直接丢弃数据执行下一步骤的方式,本发明上述方式能够避免数据丢失,减少人工干预,提高数据保存的效率。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种数据保存方法、装置、设备及存储介质。
背景技术
现代软件开发中,存在大量将数据保存到数据库中的场景。由于各种异常情况,例如网络中断,数据库软件崩溃,服务器宕机等情况,保存失败是常有的事。当数据库保存数据失败的时候,目前通常的做法有以下2种:方式1:直接丢弃数据,继续执行下一步操作。方式2:不断地执行数据保存操作,直到成功为止。或者执行一定次数的操作后,如果还是保存失败,则执行方式1。上面2种方式都有相应的缺点。方式1和方式2都会引起数据丢失,并无法恢复;方式2周而复始地执行相同的操作,造成计算机资源浪费,并可能会影响计算机中其它软件的运行效率;方式1、2对一些要求数据完整性很高的行业,是不可接受的。
上述内容仅用于辅助理解本发明的技术方案,并不代表承认上述内容是现有技术。
发明内容
本发明的主要目的在于提供了一种数据保存方法、装置、设备及存储介质,旨在解决现有技术中在数据保存失败时,采用直接丢弃数据的方式导致的数据丢失和数据保存效率低的技术问题。
为实现上述目的,本发明提供了一种数据保存方法,所述方法包括以下步骤:
在待保存数据保存失败时,获取所述待保存数据对应的SQL语句,并将所述SQL语句存储至第一目标文件中;
循环探测所述待保存数据应写入的目标数据库是否恢复正常;
在所述目标数据库恢复正常时,从所述第一目标文件中读取目标SQL语句;
执行所述目标SQL语句以将所述待保存数据保存至所述目标数据库。
可选地,所述循环探测所述待保存数据应写入的目标数据库是否恢复正常的步骤,包括:
通过预设探测线程定时连接所述待保存数据应写入的目标数据库;
判断与所述目标数据库是否连接成功;
在与所述目标数据库连接成功时,通过预设SQL语句查询所述目标数据库中的数据,获得查询数据;
将所述查询数据与预设验证数据进行对比,获得对比结果;
在对比结果为数据一致时,判定所述目标数据库恢复正常。
可选地,所述执行所述目标SQL语句以将所述待保存数据保存至所述目标数据库的步骤之后,还包括:
判断所述待保存数据是否保存成功;
在所述待保存数据保存成功时,将所述目标SQL语句从所述第一目标文件中删除;
将所述目标SQL语句写入第二目标文件中。
可选地,所述在所述待保存数据保存成功时,将所述目标SQL语句从所述第一目标文件中删除的步骤之后,还包括:
判断所述第一目标文件中是否存在SQL语句;
在所述第一目标文件中存在SQL语句时,执行所述从所述第一目标文件中读取目标SQL语句的步骤。
可选地,所述判断所述待保存数据是否保存成功的步骤之后,还包括:
在所述待保存数据保存失败时,执行所述循环探测所述待保存数据应写入的目标数据库是否恢复正常的步骤。
可选地,所述将所述目标SQL语句写入第二目标文件中的步骤之后,还包括:
在所述目标数据库中的数据出现异常时,获取异常数据对应的保存时间;
根据所述保存时间从所述第二目标文件中查找对应的保存SQL语句;
验证所述SQL语句是否存在错误。
可选地,所述将所述SQL语句存储至第一目标文件中的步骤,包括:
获取所述SQL语句对应的生成时间;
通过预设MD5算法将所述SQL语句转换为预设进制的目标字符串;
根据所述生成时间和所述目标字符串生成目标SQL信息;
将所述目标SQL信息存储至第一目标文件中。
此外,为实现上述目的,本发明还提供一种数据保存装置,所述装置包括:
存储模块,用于在待保存数据保存失败时,获取所述待保存数据对应的SQL语句,并将所述SQL语句存储至第一目标文件中;
循环探测模块,用于循环探测所述待保存数据应写入的目标数据库是否恢复正常;
读取模块,用于在所述目标数据库恢复正常时,从所述第一目标文件中读取目标SQL语句;
保存模块,用于执行所述目标SQL语句以将所述待保存数据保存至所述目标数据库。
此外,为实现上述目的,本发明还提出一种数据保存设备,所述设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的数据保存程序,所述数据保存程序配置为实现如上文所述的数据保存方法的步骤。
此外,为实现上述目的,本发明还提出一种存储介质,所述存储介质上存储有数据保存程序,所述数据保存程序被处理器执行时实现如上文所述的数据保存方法的步骤。
本发明在待保存数据保存失败时,获取所述待保存数据对应的SQL语句,并将所述SQL语句存储至第一目标文件中;循环探测所述待保存数据应写入的目标数据库是否恢复正常;在所述目标数据库恢复正常时,从所述第一目标文件中读取目标SQL语句;执行所述目标SQL语句以将所述待保存数据保存至所述目标数据库。由于本发明是在待保存数据保存失败时,获取待保存数据对应的SQL语句,将SQL语句存储至第一目标文件中;在目标数据库恢复正常时,从第一目标文件中读取目标SQL语句并执行,将待保存数据保存至目标数据库。相对于现有的在数据保存失败时,直接丢弃数据执行下一步骤的方式,本发明上述方式能够避免数据丢失,减少人工干预,提高数据保存的效率。
附图说明
图1是本发明实施例方案涉及的硬件运行环境的数据保存设备的结构示意图;
图2为本发明数据保存方法第一实施例的流程示意图;
图3为本发明数据保存方法第二实施例的流程示意图;
图4为本发明数据保存装置第一实施例的结构框图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
参照图1,图1为本发明实施例方案涉及的硬件运行环境的数据保存设备结构示意图。
如图1所示,该数据保存设备可以包括:处理器1001,例如中央处理器(CentralProcessing Unit,CPU),通信总线1002、用户接口1003,网络接口1004,存储器1005。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(Display)、输入单元比如键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如无线保真(Wireless-Fidelity,WI-FI)接口)。存储器1005可以是高速的随机存取存储器(RandomAccess Memory,RAM),也可以是稳定的非易失性存储器(Non-Volatile Memory,NVM),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
本领域技术人员可以理解,图1中示出的结构并不构成对数据保存设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图1所示,作为一种存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及数据保存程序。
在图1所示的数据保存设备中,网络接口1004主要用于与网络服务器进行数据通信;用户接口1003主要用于与用户进行数据交互;本发明数据保存设备中的处理器1001、存储器1005可以设置在数据保存设备中,所述数据保存设备通过处理器1001调用存储器1005中存储的数据保存程序,并执行本发明实施例提供的数据保存方法。
基于上述数据保存设备,本发明实施例提供了一种数据保存方法,参照图2,图2为本发明数据保存方法第一实施例的流程示意图。
本实施例中,所述数据保存方法包括以下步骤:
步骤S10:在待保存数据保存失败时,获取所述待保存数据对应的SQL语句,并将所述SQL语句存储至第一目标文件中。
需要说明的是,本实施例的执行主体可以是一种具有数据处理、网络通信以及程序运行功能的计算服务设备,例如手机、平板电脑、个人电脑等,或者是一种能够实现上述功能的电子设备或数据保存设备。以下以所述数据保存设备为例,对本实施例及下述各实施例进行说明。
需要说明的是,所述SQL语句可以是将所述待保存数据保存至对应的目标数据库的SQL语句和所述SQL语句对应的待保存的数据。所述第一目标文件可以是预设的用来存放保存失败的待保存数据对应的SQL语句的文件。
在具体实施中,数据保存设备在检测到数据保存失败时,获取所述待保存数据对应的SQL语句,并将所述SQL语句存储至第一目标文件中。
进一步的,为了提高数据保存的效率,所述将所述SQL语句存储至第一目标文件中的步骤,包括:获取所述SQL语句对应的生成时间;通过预设MD5算法将所述SQL语句转换为预设进制的目标字符串;根据所述生成时间和所述目标字符串生成目标SQL信息;将所述目标SQL信息存储至第一目标文件中。
需要说明的是,所述生成时间可以是执行所述SQL语句保存待保存数据失败时的时间。所述通过预设MD5算法将所述SQL语句转换为预设进制的目标字符串可以是通过MD5算法将所述SQL语句转换为十六进制的目标字符串。所述根据所述生成时间和所述目标字符串生成目标SQL信息可以是将所述目标字符串放在生成时间的后边组成所述SQL语句对应的说明信息,例如,“[2021-09-04 03:25:56]CA828157B8E2E7878C8093F4167CA32A”。根据所述说明信息和SQL语句组成所述目标SQL信息。当需要从第一目标文件中读取SQL语句保存待保存数据时,具体可以是先把第一目标文件的内容存储至内存,并根据MD5算法重新计算每条SQL语句对应的字符串,并与保存在生成时间后面的目标字符串进行比较,如果不相同,则表示第一目标文件中的SQL语句已经被篡改过,不能用于重新保存所述待保存数据,此时,启动预设的报警程序,以使开发人员进行维修。
步骤S20:循环探测所述待保存数据应写入的目标数据库是否恢复正常。
需要说明的是,所述循环探测所述待保存数据应写入的目标数据库是否恢复正常可以是定时连接一次所述目标数据库,判断是否连接成功,若连接成功,则判定所述目标数据库恢复正常。
在具体实施中,数据保存设备每隔预设周期时长主动连接一次目标数据库,判断是否连接成功,若连接成功,则判定所述目标数据库恢复正常。例如,每隔2分钟主动连接一次目标数据库,在连接成功后判定目标数据库恢复正常。为了使判定结果更加准确,也可以每隔预设周期从所述目标数据库获取数据或上传数据,在获取成功或上传成功后,判定所述目标数据库恢复正常。
步骤S30:在所述目标数据库恢复正常时,从所述第一目标文件中读取目标SQL语句。
需要说明的是,所述目标SQL语句可以是从所述第一目标文件中读取的将所述待保存数据保存至目标数据库的SQL语句。在读取第一目标文件中的SQL语句时,可以采用逐条读取的方式,即每次读取一条SQL语句,此时,该条SQL语句即为所述目标SQL语句。在该条SQL语句执行成功后,在读取下一条SQL语句,直至所述第一目标文件中没有SQL语句。也可以采取按日期读取的方式,即每次读取一天之内的SQL语句,例如,先读取10月11日的SQL语句,在10月11日的SQL语句执行成功后,再读取下一天即10月12日的SQL语句。直至第一目标文件中没有SQL语句。
步骤S40:执行所述目标SQL语句以将所述待保存数据保存至所述目标数据库。
需要说明的是,所述目标SQL语句可能只是第一目标文件中的部分SQL语句,因此,要想将所述SQL语句中包含的待保存数据完整的保存至所述目标数据库,可能需要重复执行所述从所述第一目标文件中读取目标SQL语句并执行的步骤。
进一步的,为了避免数据保存失败,所述步骤S40之后,还包括步骤:
步骤S401:判断所述待保存数据是否保存成功;
步骤S402:在所述待保存数据保存成功时,将所述目标SQL语句从所述第一目标文件中删除;
步骤S403:将所述目标SQL语句写入第二目标文件中。
需要说明的是,所述第二目标文件可以是预先设置的用来存储第一目标文件中数据保存成功时的SQL语句的文件。所述第一目标文件和所述第二目标文件均采用RSA非对称加密算法加密,用私钥进行加密,用公钥解密,以确保其存储的数据的安全性。例如,从第一目标文件中读取了目标SQL语句并执行,在该目标SQL语句执行成功后,为了避免重复执行,需要在第一目标文件中将所述目标SQL语句删除,但是为了后续在数据出现异常时,可以追溯数据保存时的异常信息,需要将执行成功后的目标SQL语句保存至第二目标文件中。在所述目标数据库中的数据出现异常时,获取异常数据对应的保存时间;根据所述保存时间从所述第二目标文件中查找对应的保存SQL语句;验证所述SQL语句是否存在错误。
进一步的,为了及时结束数据保存的进程,所述步骤S402之后,还包括:判断所述第一目标文件中是否存在SQL语句;在所述第一目标文件中存在SQL语句时,执行所述从所述第一目标文件中读取目标SQL语句的步骤。
需要说明的是,在根据第一目标文件中的SQL语句保存待保存数据时,具体可以是逐条读取第一目标文件中的SQL语句,因此,在所述待保存数据保存成功时,只能说明是所述目标SQL语句对应的数据保存成功,此时,需要继续获取第一目标文件中的剩余SQL语句,并执行保存操作。
进一步的,为了避免数据丢失,所述步骤S401之后,还包括步骤:在所述待保存数据保存失败时,执行所述循环探测所述待保存数据应写入的目标数据库是否恢复正常的步骤。
应理解的是,在执行目标SQL语句保存待保存数据时,虽然在之前循环探测了目标数据库是否恢复正常,但是也可能出现数据未保存成功的异常,此时,需要重新循环探测所述待保存数据应写入的目标数据库是否恢复正常,因此,在所述待保存数据保存失败时,执行所述循环探测所述待保存数据应写入的目标数据库是否恢复正常的步骤。
本实施例在待保存数据保存失败时,获取所述待保存数据对应的SQL语句,并将所述SQL语句存储至第一目标文件中;循环探测所述待保存数据应写入的目标数据库是否恢复正常;在所述目标数据库恢复正常时,从所述第一目标文件中读取目标SQL语句;执行所述目标SQL语句以将所述待保存数据保存至所述目标数据库。由于本实施例是在待保存数据保存失败时,获取待保存数据对应的SQL语句,将SQL语句存储至第一目标文件中;在目标数据库恢复正常时,从第一目标文件中读取目标SQL语句并执行,将待保存数据保存至目标数据库。相对于现有的在数据保存失败时,直接丢弃数据执行下一步骤的方式,本实施例上述方式能够避免数据丢失,减少人工干预,提高数据保存的效率。
参考图3,图3为本发明数据保存方法第二实施例的流程示意图。
基于上述第一实施例,在本实施例中,所述步骤S20包括:
步骤S201:通过预设探测线程定时连接所述待保存数据应写入的目标数据库。
需要说明的是,所述预设探测线程可以是预先设置的能够连接所述目标数据库以探测所述目标数据库是否恢复正常的线程。
在具体实施中,数据保存设备在待保存数据保存失败时,启动预设探测线程,通过预设探测线程定时连接所述待保存数据应写入的目标数据库。
步骤S202:判断与所述目标数据库是否连接成功。
在具体实施中,数据保存设备在通过预设探测线程定时连接所述待保存数据应写入的目标数据库后,根据线程的反馈结果判断是否与所述目标数据库连接成功。
步骤S203:在与所述目标数据库连接成功时,通过预设SQL语句查询所述目标数据库中的数据,获得查询数据。
需要说明的是,所述预设SQL语句可以是预先设置的查询目标数据库中的数据的SQL语句。所述查询数据可以是通过所述预设SQL语句查询到的目标数据库中的数据。
应理解的是,数据保存设备在与目标数据库连接成功后,通过预设SQL语句查询所述目标数据库中的数据,获得查询数据,进而进一步的判断所述目标数据库是否恢复正常,提高了判断的准确性。
在具体实施中,也可以是通过预设的保存SQL语句和测试数据进一步的探测目标数据库是否恢复正常,所述保存SQL语句在执行时,会将所述测试数据保存至所述目标数据库,例如,提前设置一条保存SQL语句,在与目标数据库连接成功后,通过保存SQL语句向目标数据库保存测试数据,在所述测试数据保存成功后,判断所述目标数据库恢复正常。
步骤S204:将所述查询数据与预设验证数据进行对比,获得对比结果。
需要说明的是,所述预设验证数据可以是所述预设SQL语句对应的数据,在某些特殊情况下,可能存在通过预设SQL语句获取到了查询数据,但是目标数据库并未恢复正常的情况,因此,本实施例中将获取到的查询数据与目标数据库正常情况下通过预设SQL语句获得的预设验证数据进行对比,可以进一步的判断所述目标数据库是否恢复正常。
步骤S205:在对比结果为数据一致时,判定所述目标数据库恢复正常。
需要说明的是,所述对比结果为数据一致可以是所述查询数据与所述预设验证数据一致。
本实施例通过预设探测线程定时连接所述待保存数据应写入的目标数据库;判断与所述目标数据库是否连接成功;在与所述目标数据库连接成功时,通过预设SQL语句查询所述目标数据库中的数据,获得查询数据;将所述查询数据与预设验证数据进行对比,获得对比结果;在对比结果为数据一致时,判定所述目标数据库恢复正常。本实施例在与目标数据库连接成功后,通过查询目标数据库中的数据进一步的判断所述目标数据库是否恢复正常,能够更加准确的判断目标数据库是否恢复正常,进而提高了数据保存的效率。
参照图4,图4为本发明数据保存装置第一实施例的结构框图。
如图4所示,本发明实施例提出的数据保存装置包括:
存储模块10,用于在待保存数据保存失败时,获取所述待保存数据对应的SQL语句,并将所述SQL语句存储至第一目标文件中;
循环探测模块20,用于循环探测所述待保存数据应写入的目标数据库是否恢复正常;
读取模块30,用于在所述目标数据库恢复正常时,从所述第一目标文件中读取目标SQL语句;
保存模块40,用于执行所述目标SQL语句以将所述待保存数据保存至所述目标数据库。
本实施例在待保存数据保存失败时,获取所述待保存数据对应的SQL语句,并将所述SQL语句存储至第一目标文件中;循环探测所述待保存数据应写入的目标数据库是否恢复正常;在所述目标数据库恢复正常时,从所述第一目标文件中读取目标SQL语句;执行所述目标SQL语句以将所述待保存数据保存至所述目标数据库。由于本实施例是在待保存数据保存失败时,获取待保存数据对应的SQL语句,将SQL语句存储至第一目标文件中;在目标数据库恢复正常时,从第一目标文件中读取目标SQL语句并执行,将待保存数据保存至目标数据库。相对于现有的在数据保存失败时,直接丢弃数据执行下一步骤的方式,本实施例上述方式能够避免数据丢失,减少人工干预,提高数据保存的效率。
需要说明的是,以上所描述的工作流程仅仅是示意性的,并不对本发明的保护范围构成限定,在实际应用中,本领域的技术人员可以根据实际的需要选择其中的部分或者全部来实现本实施例方案的目的,此处不做限制。
另外,未在本实施例中详尽描述的技术细节,可参见本发明任意实施例所提供的参数运行方法,此处不再赘述。
基于本发明上述数据保存装置第一实施例,提出本发明数据保存装置的第二实施例。
在本实施例中,所述循环探测模块20,还用于通过预设探测线程定时连接所述待保存数据应写入的目标数据库;判断与所述目标数据库是否连接成功;在与所述目标数据库连接成功时,通过预设SQL语句查询所述目标数据库中的数据,获得查询数据;将所述查询数据与预设验证数据进行对比,获得对比结果;在对比结果为数据一致时,判定所述目标数据库恢复正常。
进一步的,所述保存模块40,还用于判断所述待保存数据是否保存成功;在所述待保存数据保存成功时,将所述目标SQL语句从所述第一目标文件中删除;将所述目标SQL语句写入第二目标文件中。
进一步的,所述保存模块40,还用于判断所述第一目标文件中是否存在SQL语句;在所述第一目标文件中存在SQL语句时,执行所述从所述第一目标文件中读取目标SQL语句的步骤。
进一步的,所述保存模块40,还用于在所述待保存数据保存失败时,执行所述循环探测所述待保存数据应写入的目标数据库是否恢复正常的步骤。
进一步的,所述保存模块40,还用于在所述目标数据库中的数据出现异常时,获取异常数据对应的保存时间;根据所述保存时间从所述第二目标文件中查找对应的保存SQL语句;验证所述SQL语句是否存在错误。
进一步的,所述存储模块10,还用于获取所述SQL语句对应的生成时间;通过预设MD5算法将所述SQL语句转换为预设进制的目标字符串;根据所述生成时间和所述目标字符串生成目标SQL信息;将所述目标SQL信息存储至第一目标文件中。
本发明数据保存装置的其他实施例或具体实现方式可参照上述各方法实施例,此处不再赘述。
此外,本发明实施例还提出一种存储介质,所述存储介质上存储有数据保存程序,所述数据保存程序被处理器执行时实现如上文所述的数据保存方法的步骤。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如只读存储器/随机存取存储器、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种数据保存方法,其特征在于,所述数据保存方法包括以下步骤:
在待保存数据保存失败时,获取所述待保存数据对应的SQL语句,并将所述SQL语句存储至第一目标文件中;
循环探测所述待保存数据应写入的目标数据库是否恢复正常;
在所述目标数据库恢复正常时,从所述第一目标文件中读取目标SQL语句;
执行所述目标SQL语句以将所述待保存数据保存至所述目标数据库。
2.如权利要求1所述的数据保存方法,其特征在于,所述循环探测所述待保存数据应写入的目标数据库是否恢复正常的步骤,包括:
通过预设探测线程定时连接所述待保存数据应写入的目标数据库;
判断与所述目标数据库是否连接成功;
在与所述目标数据库连接成功时,通过预设SQL语句查询所述目标数据库中的数据,获得查询数据;
将所述查询数据与预设验证数据进行对比,获得对比结果;
在对比结果为数据一致时,判定所述目标数据库恢复正常。
3.如权利要求1所述的数据保存方法,其特征在于,所述执行所述目标SQL语句以将所述待保存数据保存至所述目标数据库的步骤之后,还包括:
判断所述待保存数据是否保存成功;
在所述待保存数据保存成功时,将所述目标SQL语句从所述第一目标文件中删除;
将所述目标SQL语句写入第二目标文件中。
4.如权利要求3所述的数据保存方法,其特征在于,所述在所述待保存数据保存成功时,将所述目标SQL语句从所述第一目标文件中删除的步骤之后,还包括:
判断所述第一目标文件中是否存在SQL语句;
在所述第一目标文件中存在SQL语句时,执行所述从所述第一目标文件中读取目标SQL语句的步骤。
5.如权利要求3所述的数据保存方法,其特征在于,所述判断所述待保存数据是否保存成功的步骤之后,还包括:
在所述待保存数据保存失败时,执行所述循环探测所述待保存数据应写入的目标数据库是否恢复正常的步骤。
6.如权利要求3所述的数据保存方法,其特征在于,所述将所述目标SQL语句写入第二目标文件中的步骤之后,还包括:
在所述目标数据库中的数据出现异常时,获取异常数据对应的保存时间;
根据所述保存时间从所述第二目标文件中查找对应的保存SQL语句;
验证所述SQL语句是否存在错误。
7.如权利要求1-6任一项所述的数据保存方法,其特征在于,所述将所述SQL语句存储至第一目标文件中的步骤,包括:
获取所述SQL语句对应的生成时间;
通过预设MD5算法将所述SQL语句转换为预设进制的目标字符串;
根据所述生成时间和所述目标字符串生成目标SQL信息;
将所述目标SQL信息存储至第一目标文件中。
8.一种数据保存装置,其特征在于,所述数据保存装置包括:
存储模块,用于在待保存数据保存失败时,获取所述待保存数据对应的SQL语句,并将所述SQL语句存储至第一目标文件中;
循环探测模块,用于循环探测所述待保存数据应写入的目标数据库是否恢复正常;
读取模块,用于在所述目标数据库恢复正常时,从所述第一目标文件中读取目标SQL语句;
保存模块,用于执行所述目标SQL语句以将所述待保存数据保存至所述目标数据库。
9.一种数据保存设备,其特征在于,所述设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的数据保存程序,所述数据保存程序配置为实现如权利要求1至7中任一项所述的数据保存方法的步骤。
10.一种存储介质,其特征在于,所述存储介质上存储有数据保存程序,所述数据保存程序被处理器执行时实现如权利要求1至7任一项所述的数据保存方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111189843.7A CN113918384A (zh) | 2021-10-12 | 2021-10-12 | 数据保存方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111189843.7A CN113918384A (zh) | 2021-10-12 | 2021-10-12 | 数据保存方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113918384A true CN113918384A (zh) | 2022-01-11 |
Family
ID=79239887
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111189843.7A Pending CN113918384A (zh) | 2021-10-12 | 2021-10-12 | 数据保存方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113918384A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115277133A (zh) * | 2022-07-13 | 2022-11-01 | 国家电网有限公司信息通信分公司 | 设备管理方法及装置 |
-
2021
- 2021-10-12 CN CN202111189843.7A patent/CN113918384A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115277133A (zh) * | 2022-07-13 | 2022-11-01 | 国家电网有限公司信息通信分公司 | 设备管理方法及装置 |
CN115277133B (zh) * | 2022-07-13 | 2024-03-15 | 国家电网有限公司信息通信分公司 | 设备管理方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108959067B (zh) | 搜索引擎的测试方法、装置及计算机可读存储介质 | |
CN107329894B (zh) | 应用程序系统测试方法、装置及电子设备 | |
CN102736978A (zh) | 一种检测应用程序的安装状态的方法及装置 | |
CN106843947B (zh) | 代码缺陷的处理方法和装置 | |
CN113489713A (zh) | 网络攻击的检测方法、装置、设备及存储介质 | |
CN111158741A (zh) | 监控业务模块对第三方类库依赖关系变化的方法及装置 | |
CN111897846A (zh) | 缓存数据校验方法、装置、设备及存储介质 | |
CN113448862B (zh) | 软件版本测试方法、装置及计算机设备 | |
CN109324961B (zh) | 系统自动测试方法、装置、计算机设备及存储介质 | |
CN111309506A (zh) | 一种编译错误的定位方法、设备、服务器及可读存储介质 | |
CN108399125B (zh) | 自动化测试方法、装置、计算机设备和存储介质 | |
CN112363937A (zh) | 差异覆盖率测试方法、装置、计算机设备和存储介质 | |
CN113918384A (zh) | 数据保存方法、装置、设备及存储介质 | |
CN108196975B (zh) | 基于多校验和的数据验证方法、装置及存储介质 | |
CN111400128A (zh) | 日志管理方法、装置、计算机设备及存储介质 | |
CN113505026B (zh) | 验证备份数据的方法、装置、设备及存储介质 | |
CN113259154B (zh) | 中台数据校验通知方法、装置、计算机设备和存储介质 | |
CN114662114A (zh) | 基于日志的代码脱敏漏洞检测方法及相关设备 | |
CN113672507A (zh) | 软件源代码检测方法、装置、计算机设备和存储介质 | |
CN115640236B (zh) | 一种脚本质量的检测方法及计算设备 | |
CN114860549B (zh) | 埋点数据校验方法、装置、设备和存储介质 | |
CN111813757B (zh) | 特征信息存储方法、装置、设备及可读存储介质 | |
CN113722075B (zh) | 一种任务管理方法、系统、设备及存储介质 | |
WO2022172422A1 (ja) | 情報処理装置、情報処理方法及び情報処理プログラム | |
CN112559370A (zh) | 一种基于前端的React项目单元测试方法及相关设备 |
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 |