CN117667955A - 一种数据处理方法和相关装置 - Google Patents

一种数据处理方法和相关装置 Download PDF

Info

Publication number
CN117667955A
CN117667955A CN202311156896.8A CN202311156896A CN117667955A CN 117667955 A CN117667955 A CN 117667955A CN 202311156896 A CN202311156896 A CN 202311156896A CN 117667955 A CN117667955 A CN 117667955A
Authority
CN
China
Prior art keywords
data
instruction
target
database
updating
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
Application number
CN202311156896.8A
Other languages
English (en)
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.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen 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 Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN202311156896.8A priority Critical patent/CN117667955A/zh
Publication of CN117667955A publication Critical patent/CN117667955A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2365Ensuring data consistency and integrity
    • 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/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1448Management of the data involved in backup or backup restore
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2282Tablespace storage structures; Management thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/242Query formulation
    • G06F16/2433Query languages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/284Relational databases
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Software Systems (AREA)
  • Quality & Reliability (AREA)
  • Mathematical Physics (AREA)
  • Computational Linguistics (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Retry When Errors Occur (AREA)

Abstract

本申请实施例公开了一种数据处理方法和相关装置,可以应用于云技术中的数据库领域。根据用于数据更新的数据更新指令所标识的目标数据存储位置可以获取更新前数据库中的第二数据,基于用于标识目标数据存储位置的目标位置信息和第二数据生成数据更新指令对应的数据回滚指令,通过数据回滚指令能够针对目标数据存储位置的数据进行数据回滚。在基于数据更新指令进行数据更新后,若目标数据存储位置的数据出现异常,可以通过数据回滚指令将目标数据存储位置的数据恢复为第二数据,无需对其他数据存储位置的数据进行回滚,降低了数据异常修复所需回滚的数据量,在提高异常修复效率的同时降低了影响的数据范围,提高了数据库运行的稳定性和安全性。

Description

一种数据处理方法和相关装置
技术领域
本申请涉及数据库技术领域,特别是涉及一种数据处理方法和相关装置。
背景技术
数据库(Database)是数据存储的主要存储方式之一,是一个长期存储在计算机内,有组织的,有共享的,统一化管理数据集合。
在相关技术中,数据库会定时对整个数据库中的数据进行记录,在进行数据处理时,若数据库中的数据出现异常,则会进行数据回滚,即将数据库中的全部数据恢复到记录中的数据状态。
由此可见,相关技术中的数据回滚会在出现异常时回滚全部数据,导致大量正常的数据也会被恢复到之前的数据状态,数据影响范围过大,因此会干扰较多数据处理流程,同时数据回滚所需的时间较长,难以对数据异常进行快速、高效的数据修复。
发明内容
为了解决上述技术问题,本申请提供了一种数据处理方法,能够针对数据库中的异常数据进行针对性的数据回滚,无需改动数据库中其他存储位置存储的数据,在提高了数据修复效率的同时降低了数据修复对数据库的影响。
本申请实施例公开了如下技术方案:
第一方面,本申请实施例公开了一种数据处理方法,所述方法包括:
确定数据更新指令,所述数据更新指令用于将数据库中目标数据存储位置下的数据更新为第一数据,所述数据更新指令包括用于标识所述目标数据存储位置的目标位置信息;
根据所述目标位置信息,从所述数据库的所述目标数据存储位置中获取第二数据;
根据所述数据更新指令更新所述数据库中的数据,以及根据所述目标位置信息和所述第二数据生成所述数据更新指令对应的数据回滚指令,所述数据回滚指令用于将所述数据库中所述目标数据存储位置下的数据恢复为所述第二数据;
基于所述数据库中所述目标数据存储位置的数据出现异常,针对所述数据库执行所述数据回滚指令,使所述数据库中所述目标数据存储位置下的数据恢复为所述第二数据。
第二方面,本申请实施例公开了一种数据处理装置,所述装置包括第一确定单元、第一获取单元、执行单元和回滚单元:
所述第一确定单元,用于确定数据更新指令,所述数据更新指令用于将数据库中目标数据存储位置下的数据更新为第一数据,所述数据更新指令包括用于标识所述目标数据存储位置的目标位置信息;
所述第一获取单元,用于根据所述目标位置信息,从所述数据库的所述目标数据存储位置中获取第二数据;
所述执行单元,用于根据所述数据更新指令更新所述数据库中的数据,以及根据所述目标位置信息和所述第二数据生成所述数据更新指令对应的数据回滚指令,所述数据回滚指令用于将所述数据库中所述目标数据存储位置下的数据恢复为所述第二数据;
所述回滚单元,用于基于所述数据库中所述目标数据存储位置的数据出现异常,针对所述数据库执行所述数据回滚指令,使所述数据库中所述目标数据存储位置下的数据恢复为所述第二数据。
在一种可能的实现方式中,所述数据库包括配置库和运行库,所述配置库用于配置所述运行库中的数据,所述运行库用于提供实际应用的数据,所述配置库和所述运行库分别包括的数据存储位置相同,所述第一确定单元具体用于:
根据所述配置库和所述运行库之间的数据差异,确定所述数据更新指令,所述配置库中的所述目标数据存储位置用于存储所述第一数据,所述运行库中的所述目标数据存储位置用于存储所述第二数据;
所述第一获取单元具体用于:
根据所述目标位置信息,从所述运行库的所述目标数据存储位置中获取第二数据;
所述执行单元具体用于:
根据所述数据更新指令,将所述运行库中所述目标数据存储位置的数据由所述第二数据更新为所述第一数据。
在一种可能的实现方式中,所述装置还包括第一备份单元:
所述第一备份单元,用于建立所述运行库对应的第一备份数据,所述第一备份数据与所述运行库所存储的数据相同;
所述第一确定单元具体用于:
根据所述配置库和所述运行库之间的数据差异,确定初始数据更新指令,所述初始数据更新指令用于使所述运行库中的数据与所述配置库中的数据一致,所述初始数据更新指令中包括目标数据更新指令,所述目标数据更新指令用于所述目标数据存储位置下的数据更新为第一数据;
针对所述第一备份数据执行所述初始数据更新指令;
基于所述目标数据更新指令被成功执行,将所述目标数据更新指令确定为所述数据更新指令。
在一种可能的实现方式中,所述第一执行单元具体用于:
建立所述运行库对应的第二备份数据,所述第二备份数据与所述运行库所存储的数据相同;
针对所述第二备份数据执行所述数据更新指令,使所述第二备份数据中的所述目标数据存储位置的数据更新为所述第一数据;
将所述运行库中所述目标数据存储位置的数据更新为更新后的所述第二备份数据中所述目标数据存储位置的数据。
在一种可能的实现方式中,所述装置还包括第二确定单元:
所述第二确定单元,用于确定所述数据回滚指令对应的更新时序信息,所述更新时序信息用于标识所述数据回滚指令对应的更新时序,所述更新时序为根据所述数据更新指令对所述数据库的更新在针对所述数据库的多次更新中的更新时序;
所述回滚单元具体用于:
基于所述数据库中所述目标数据存储位置的数据出现异常,确定所述目标数据存储位置对应的多个待定数据回滚指令,所述待定数据回滚指令用于恢复所述目标数据存储位置的数据,所述多个待定数据回滚指令中包括所述数据回滚指令;
根据所述多个待定数据回滚指令分别对应的更新时序信息,确定所述多个待定数据回滚指令中所对应更新时序最晚的目标数据回滚指令;
基于所述目标数据回滚指令为所述数据回滚指令,针对所述数据库执行所述数据回滚指令。
在一种可能的实现方式中,所述回滚单元具体用于:
基于所述数据库中所述目标数据存储位置的数据出现异常,获取所述数据库中所述目标数据存储位置的待分析数据;
基于所述待分析数据与所述第一数据一致,针对所述数据库执行所述数据回滚指令。
在一种可能的实现方式中,所述装置还包括生成单元、第二获取单元和更新单元:
所述生成单元,用于基于所述待分析数据与所述第一数据不一致,生成指示信息,所述指示信息用于指示对所述数据库中所述目标数据存储位置的数据进行数据分析,所述数据分析用于确定所述数据库中所述目标数据存储位置对应的恢复数据;
所述第二获取单元,用于获取通过所述数据分析确定的所述恢复数据;
所述更新单元,用于将所述数据库中所述目标数据存储位置的数据更新为所述恢复数据。
在一种可能的实现方式中,所述生成单元具体用于:
基于所述待分析数据与所述第一数据不一致,且根据所述数据更新指令对所述数据库的更新为针对所述数据库中所述目标数据存储位置的最后一次更新,生成指示信息。
在一种可能的实现方式中,所述数据更新指令由所述目标位置信息、所述第一数据和更新行为指令构成,所述更新行为指令用于进行数据更新,所述执行单元具体用于:
将所述数据更新指令中的所述第一数据替换为所述第二数据,生成所述数据更新指令对应的数据回滚指令。
第三方面,本申请实施例公开了一种计算机设备,所述计算机设备包括处理器以及存储器:
所述存储器用于存储计算机程序,并将所述计算机程序传输给所述处理器;
所述处理器用于根据所述计算机程序中的指令执行第一方面中任意一项所述的数据处理方法;
第四方面,本申请实施例公开了一种计算机可读存储介质,所述计算机可读存储介质用于存储计算机程序,所述计算机程序用于执行第一方面中任意一项所述的数据处理方法;
第五方面,本申请实施例公开了一种包括计算机程序的计算机程序产品,当其在计算机设备上运行时,使得所述计算机设备执行第一方面中任意一项所述的数据处理方法。
由上述技术方案可以看出,本申请可以在对数据库进行数据更新时,获取用于进行数据更新的数据更新指令,该数据更新指令用于将数据库中目标数据存储位置下的数据更新为第一数据。由于该数据更新指令能够针对目标数据存储位置下的数据进行针对性更新,因此在该数据更新指令中包括有用于标识该目标数据存储位置的目标位置信息。在对数据库进行数据更新之前,可以基于该目标位置信息从数据库的目标数据存储位置获取第二数据,第二数据即为此次数据库更新前该目标数据存储位置对应的原数据。基于数据更新指令可以实现对数据库的更新,同时根据该目标位置信息和第二数据可以生成该数据更新指令对应的数据回滚指令,该数据回滚指令可以用于将数据库中目标数据存储位置下的数据恢复为该第二数据。从而,当数据库中目标数据存储位置的数据出现异常时,由于该异常是在此次数据更新后出现的,因此可以针对数据库执行该数据回滚指令,使数据库中目标数据存储位置的数据恢复为该第二数据,进而清除数据库中的数据异常。由此可见,本申请能够基于数据更新指令生成对应的数据回滚指令,实现对异常数据的指向性数据回滚,在数据回滚时无需修改数据库中的其他正常数据,降低了数据修复所需的数据更改量,提高了数据修复效率,同时降低了数据修复对数据库中数据的影响范围,有助于提高数据库的稳定性和安全性。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种实际应用场景中数据处理方法的示意图;
图2为本申请实施例提供的一种数据处理方法的流程图;
图3为本申请实施例提供的一种数据处理方法的示意图;
图4为本申请实施例提供的一种数据处理方法的示意图;
图5为本申请实施例提供的一种数据处理方法的示意图;
图6为本申请实施例提供的一种实际应用场景中数据处理方法的流程图;
图7为本申请实施例提供的一种实际应用场景中数据处理方法的示意图;
图8为本申请实施例提供的一种数据处理装置的结构框图;
图9为本申请实施例提供的一种终端的结构图;
图10为本申请实施例提供的一种服务器的结构图。
具体实施方式
下面结合附图,对本申请的实施例进行描述。
数据回滚是指将数据库中的数据恢复为历史时段中的数据,是修复数据库异常的主要修复方式,通过数据回滚可以将数据库中异常的数据恢复为在历史时段中正常的数据。
在相关技术中,为了能够实现数据回滚,会定时将数据库中的整体数据进行数据备份,当数据出现异常时,会从数据备份中获取指定时间点的数据对数据库进行数据回滚,使数据库中的全部数据都恢复到没有出现异常的时间点的数据状态,进而可以清除数据库中的数据异常。
然而,由于相关技术中在修复数据库时会将数据库中的全部数据都进行数据回滚,因此会使大量没有出现异常的数据也被回滚到了之前的数据状态,数据修复所影响的数据范围过大,在数据修复时间过长的同时,也导致正常的数据无法被应用,干扰大量数据处理业务的正常运行。
为了解决上述技术问题,本申请提供了一种数据处理方法,在数据库中的数据发生更新时,可以根据用于数据更新的数据更新指令所标识的目标数据存储位置获取更新前数据库中的第二数据,并基于该数据更新指令包括的用于标识该目标数据存储位置的目标位置信息和第二数据生成该数据更新指令对应的数据回滚指令,因此通过该数据回滚指令能够针对数据库中目标数据存储位置的数据进行数据回滚,将数据恢复为该第二数据。从而,在基于该数据更新指令将数据库中目标数据存储位置的数据更新为第一数据后,若该目标数据存储位置的数据出现异常,可以通过该数据回滚指令对数据库中目标数据存储位置的数据进行针对性的数据回滚,恢复为第二数据,无需对其他数据存储位置的数据进行回滚,降低了数据异常修复所需回滚的数据量,在提高异常修复效率的同时降低了影响的数据范围,提高了数据库运行的稳定性和安全性。
可以理解的是,该方法可以应用于计算机设备上,该计算机设备为能够进行数据处理的计算机设备,例如可以为终端设备或服务器。该方法可以通过终端设备或服务器独立执行,也可以应用于终端设备和服务器通信的网络场景,通过终端设备和服务器配合执行。其中,终端设备可以为手机、平板电脑、笔记本电脑、台式电脑等设备。服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器。终端可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表等,但并不局限于此。终端以及服务器可以通过有线或无线通信方式进行直接或间接地连接,本申请在此不做限制。
本申请还涉及云技术领域,主要涉及其中的数据库技术领域。数据库(Database),简而言之可视为电子化的文件柜——存储电子文件的处所,用户可以对文件中的数据进行新增、查询、更新、删除等操作。所谓“数据库”是以一定方式储存在一起、能与多个用户共享、具有尽可能小的冗余度、与应用程序彼此独立的数据集合。
数据库管理系统(英语:Database Management System,简称DBMS)是为管理数据库而设计的电脑软件系统,一般具有存储、截取、安全保障、备份等基础功能。数据库管理系统可以依据它所支持的数据库模型来作分类,例如关系式、XML(Extensible MarkupLanguage,即可扩展标记语言);或依据所支持的计算机类型来作分类,例如服务器群集、移动电话;或依据所用查询语言来作分类,例如SQL(结构化查询语言(Structured QueryLanguage)、XQuery;或依据性能冲量重点来作分类,例如最大规模、最高运行速度;亦或其他的分类方式。不论使用哪种分类方式,一些DBMS能够跨类别,例如,同时支持多种查询语言。本申请中的数据处理方法可以应用于数据库,对数据库进行更新和异常修复等。
为了便于理解本申请提供的技术方案,接下来,将结合一种实际应用场景,对本申请实施例提供的一种数据处理方法进行介绍。
参见图1,图1为本申请实施例提供的一种实际应用场景中数据处理方法的示意图,在该实际应用场景中,计算机设备可以为用于数据处理的服务器101。
在需要对数据库进行更新时,服务器101可以获取用于进行数据更新的数据更新指令,该数据更新指令用于将数据库中目标数据存储位置的数据由更新为第一数据。为了实现该目的,该数据更新指令中需要包括用于标识该目标数据存储位置的目标位置信息。通过该目标位置信息,服务器101可以从更新前的数据库中的目标数据存储位置获取第二数据。如图1所示,该目标数据存储位置为数据库中数据表A中的数据字段A中的数据。
基于该目标位置信息和第二数据,服务器101可以生成该数据更新指令对应的数据回滚指令,该数据回滚指令用于将数据库中目标数据存储位置中的数据恢复为第二数据。在基于数据更新指令对数据库进行更新后,若更新后的数据库中目标数据存储位置的数据出现异常,服务器101可以针对该数据库执行该数据回滚指令,使目标数据存储位置的数据恢复为第二数据。由于在数据更新前数据库在目标数据存储位置没有发生异常,因此该第二数据为正常数据,从而通过该数据恢复能够消除目标数据存储位置的数据异常。
由此可见,通过本申请的技术方案能够实现对指定数据存储位置的数据恢复,在清除数据异常时无需对其他数据正常的数据存储位置进行数据修改,降低了异常清除所需的数据处理量,缩小了异常清除时的数据影响范围,从而在提高了异常清除效率的同时降低了对数据库运行的影响。
接下来,将结合附图,对本申请实施例提供的一种数据处理方法进行介绍。
参见图2,图2为本申请实施例提供的一种数据处理方法的流程图,在该实施例中,计算机设备可以为上述任意一种具有数据处理能力的计算机设备,该方法包括:
S201:确定数据更新指令。
在数据库场景中,数据更新通常是基于数据更新指令来实现的,该数据更新指令例如可以为结构化查询(structured query language,简称SQL)语言中的指令,SQL语言可以用于对数据库进行查询和修改操作。
在本申请中,在进行数据更新时,计算机设备可以先确定用于进行数据更新的数据更新指令,该数据更新指令用于将数据库中目标数据存储位置下的数据更新为第一数据,该目标数据存储位置可以为数据库中的任意数据存储位置。由于该数据更新指令可以实现对目标数据存储位置的数据更新,因此该数据更新指令中可以包括用于标识目标数据存储位置的目标位置信息,数据更新指令能够基于该目标位置信息实现对目标数据存储位置的数据更新。
例如,数据更新指令可以为如下SQL语句:
Update TableA Set FieldA=newValue Where FieldB=valueB limit 1
其中,Update为更新行为指令,表明该SQL语句用于数据更新,TableA Set FieldA为目标位置信息,所标识的目标数据存储位置为数据库中的数据表(Table)A中的FieldA字段(Set)。
S202:根据目标位置信息,从数据库的目标数据存储位置中获取第二数据。
在通过数据更新指令对数据库进行更新前,计算机设备可以先根据该目标位置信息对数据存储位置的标识作用,从数据库的目标数据存储位置中获取第二数据,该第二数据即为数据库更新前在目标数据存储位置所存储的数据。在本申请中,在基于数据更新指令更新数据库之前,数据库在目标数据存储位置不具有数据异常,即该第二数据为可以使数据库在目标数据存储位置不发生数据异常的数据。
S203:根据数据更新指令更新数据库中的数据,以及根据目标位置信息和第二数据生成数据更新指令对应的数据回滚指令。
根据该数据更新指令,可以将该数据库中目标数据存储位置的数据更新为第一数据。为了能够实现对异常数据的针对性数据回滚,本申请可以模仿数据更新指令的指令特性,来生成能够对指定数据存储位置的数据进行数据回滚的数据回滚指令。
由于该目标位置信息能够标识出目标数据存储位置,且该第二数据为可以使数据库在目标数据存储位置不发生数据异常的数据,因此,计算机设备可以基于该目标数据存储位置和第二数据生成数据回滚指令,该数据回滚指令用于将数据库中目标数据存储位置下的数据恢复为第二数据,从而能够使目标数据存储位置的数据不再出现数据异常。通过目标位置信息对目标数据存储位置的标识作用,该数据回滚指令能够实现对目标数据存储位置中数据的针对性恢复,无需对其他数据存储位置的数据进行更改,从而能够降低对数据库所存储数据的影响。
需要强调的是,根据数据更新指令对数据库的更新和生成数据回滚指令这两个行为可以相互独立,互不影响,因此本申请不限定这两个行为执行的先后顺序。
S204:基于数据库中目标数据存储位置的数据出现异常,针对数据库执行数据回滚指令,使数据库中目标数据存储位置下的数据恢复为第二数据。
在基于数据更新指令对目标数据存储位置的第二数据进行更新后,若数据库发生了数据异常的情况,计算机设备可以判断发生数据异常的数据存储位置,若发生数据异常的为目标数据存储位置,在本申请实施例中,计算机设备可以针对数据库执行该数据回滚指令,对目标数据存储位置的数据进行数据回滚,使该目标数据存储位置下的数据恢复为第二数据,从而能够使目标数据存储位置的数据不再出现数据异常。
需要强调的是,本申请中的“基于A行为执行B行为”的描述语言是指A行为为B行为的执行前置条件,执行B行为需要发生A行为,但是发生A行为不一定会执行B行为。例如,本申请中针对目标数据存储位置可以具有多条数据回滚指令,不同数据回滚指令所恢复的数据不同,本申请实施例中的数据回滚指令可以为其中的任意一条数据回滚指令,在目标数据存储位置发生数据异常时,在其他可能的实现方式中,计算机设备也可以选择其他的数据回滚指令进行数据回滚。
由上述技术方案可以看出,本申请能够基于数据更新指令生成对应的数据回滚指令,实现对异常数据的指向性数据回滚,在数据回滚时无需修改数据库中的其他正常数据,降低了数据修复所需的数据更改量,提高了数据修复效率,同时降低了数据修复对数据库中数据的影响范围,有助于提高数据库的稳定性和安全性。
在大部分应用场景的数据库中通常包括配置库和运行库两部分,配置库用于配置运行库中的数据,运行库用于提供实际应用的数据。即,在需要利用数据库中的数据时,通常是从运行库中提取数据进行应用的。配置库和运行库分别包括的数据存储位置相同,例如配置库和运行库可以包括相同的数据表,数据表中的字段一致。即,配置库可以近似视为运行库的备份,在修改实际应用的数据,即需要修改运行库中的数据时,需要先在配置库中进行修改,由配置库和运行库之间的中间件来将配置库中的数据更新同步到运行库中。这种架构的好处在于能够通过配置库先校验更新的稳定性,以防直接对运行库进行更新时出现未知的异常情况。
本申请可以应用于该数据库架构。在一种可能的实现方式中,数据库可以包括配置库和运行库,在执行步骤S201时,计算机设备可以执行步骤S2011(图中未示出),步骤S2011为步骤S201的一种可能的实现方式,包括:
S2011:根据配置库和运行库之间的数据差异,确定数据更新指令。
在进行更新时,配置库中的目标数据存储位置的数据会被先修改为第一数据,计算机设备可以根据配置库和运行库之间的数据差异,来确定配置库中的哪些数据被修改了,而运行库中的数据没有得到对应的修改,从而可以确定需要更新运行库中的哪些数据。从而,当配置库中的目标数据存储位置用于存储第一数据,运行库中的目标数据存储位置用于存储第二数据时,通过该数据差异可以确定需要将运行库中目标数据存储位置的数据进行更新,通过配置库中目标数据存储位置为第一数据可以确定需要将运行库中目标数据存储位置的数据更新为第一数据,从而确定出该数据更新指令,该数据更新指令具体用于将运行库中目标数据存储位置的数据更新为第一数据。
可以理解的是,数据更新指令的作用是针对目标数据存储位置的数据进行更新,因此只要具有该目标数据存储位置的对象都可以应用该数据更新指令,例如同样可以应用在配置库中。
需要强调的是,该数据更新指令可以为计算机设备自行确定的,也可以为计算机设备通过其他设备确定的。例如,当计算机设备为配置库与运行库之间的中间件时,计算机设备可以自行基于该数据差异确定出数据更新指令;当计算机设备为数据库的外部设备时,可以通过与中间件进行信息传输,通过中间件来确定该数据更新指令。
在执行步骤S202时,计算机设备可以执行步骤S2021(图中未示出),步骤S2021为步骤S202的一种可能的实现方式,包括:
S2021:根据目标位置信息,从运行库的目标数据存储位置中获取第二数据。
在该数据库架构下,本申请可以针对运行库进行异常清除,因此可以在更新运行库中的数据之前,从运行库的目标数据存储位置中获取该第二数据,第二数据为能够使运行库在目标数据存储位置不发生数据异常的数据。
在执行步骤S203时,计算机设备可以执行步骤S2031(图中未示出),步骤S2031为步骤S203的一种可能的实现方式,包括:
S2031:根据数据更新指令,将运行库中目标数据存储位置的数据由第二数据更新为第一数据。
通过上述步骤,计算机设备可以基于配置库与运行库在目标数据存储位置上的数据差异,完成对运行库中目标数据存储位置的数据更新。同时,由于配置库和运行库的数据存储位置相同,都具有该目标数据存储位置,而数据回滚指令能够实现针对目标数据存储位置的数据恢复,因此该数据回滚指令在能够实现对运行库中目标数据存储位置的数据异常进行修复的同时,在一些情况下也能够实现对配置库目标数据存储位置的数据回滚。
其中,基于配置库和运行库的数据差异进行数据更新指令确定的方式可以包括多种。在一种可能的实现方式中,计算机设备可以只基于数据差异来确定数据更新指令,例如只要配置库和运行库在目标数据存储位置上的数据有差异,就可以确定出数据存储指令。
在另一种可能的实现方式中,由于多种可能出现的因素干扰,并不是每一条数据更新指令都能够得到有效更新,因此若针对运行库中目标数据存储位置的数据更新指令未能够成功执行,则运行库中目标数据存储位置的数据大概率仍为更新前的第二数据,若目标数据存储位置出现数据异常,则说明第二数据无法保障运行库在目标数据存储位置不会出现数据异常,因此数据回滚指令也无法有效清除异常数据。
基于此,计算机设备可以先分析数据更新指令能否被成功执行,再确定用于生成数据回滚指令的数据更新指令。在该实现方式中,计算机设备可以先建立运行库对应的第一备份数据,第一备份数据与运行库所存储的数据相同,该第一备份数据用于校验数据更新指令能否正常执行。这里不直接在运行库中进行指令测试的原因在于,若数据更新指令能够正常执行,则运行库中目标数据存储位置的数据会被更新为第一数据,此时计算机设备无法再从目标数据存储位置中获取更新前的第二数据。
在执行步骤S2011时,计算机设备可以执行步骤S20111-S20113(图中未示出),步骤S20111-S20113为步骤S2011的一种可能的实现方式,包括:
S20111:根据配置库和运行库之间的数据差异,确定初始数据更新指令。
其中,初始数据更新指令用于使运行库中的数据与配置库中的数据一致,初始数据更新指令中包括目标数据更新指令,目标数据更新指令用于目标数据存储位置下的数据更新为第一数据。即,若配置库和运行库在多个数据存储位置的数据都具有差异,则该初始数据更新指令可以包括多条指令。
S20112:针对第一备份数据执行初始数据更新指令。
为了校验哪些初始数据更新指令能够成功执行,计算机设备可以针对第一备份数据执行每一条初始数据更新指令。由于第一备份数据与运行库中的数据相同,因此所包括的数据存储位置相同、以及在各个数据存储位置上存储的数据相同,从而若初始数据更新指令能够在第一备份数据中成功执行,则大概率也可以在运行库中成功执行,反之若初始数据更新指令不能够在第一备份数据中成功执行,则在运行库中大概率也会执行失败。
S20113:基于目标数据更新指令被成功执行,将目标数据更新指令确定为数据更新指令。
若目标数据更新指令能够在第一备份数据中成功执行,则说明该目标数据更新指令大概率能够成功将运行库中目标数据存储位置的数据更新为第一数据,从而计算机设备可以将该目标数据更新指令确定为上述的数据更新指令,执行后续操作。
具体的,在针对运行库进行数据更新时,为了保障数据更新的安全性,在一种可能的实现方式中,计算机设备也可以先针对备份数据进行数据更新。
在执行步骤S2031时,计算机设备可以执行步骤S20311-S20313(图中未示出),步骤S20311-S20313为步骤S2031的一种可能的实现方式,包括:
S20311:建立运行库对应的第二备份数据。
其中,第二备份数据与运行库所存储的数据相同,即包括相同的数据存储位置,从而可以通过第二备份数据中的数据对运行库中的数据进行替换。
S20312:针对第二备份数据执行数据更新指令,使第二备份数据中的目标数据存储位置的数据更新为第一数据。
由于数据更新指令可以用于对目标数据存储位置的数据进行更新,且第二备份数据中同样具有该目标数据存储位置,因此可以通过该数据更新指令对第二备份数据进行数据更新。
S20313:将运行库中目标数据存储位置的数据更新为更新后的第二备份数据中目标数据存储位置的数据。
先在第二备份数据中进行数据更新指令的更新的好处在于,可以在实际对运行库进行数据更新之前,先获取该数据更新指令在数据更新时可能造成的数据影响,从而能够对数据更新对运行库的影响有更加清楚的认知,有助于及时发现数据更新时可能出现的问题。在实际对运行库进行更新时,可以直接进行数据替换,无需在基于数据更新指令进行数据更新,在一定程度上降低了运行库在更新时所需的时间,从而可以降低对运行库的影响,提高了运行库运行的稳定性。
参见图3,图3为本申请实施例提供的一种数据处理方法的示意图,在对运行库进行数据更新时,会经历预执行和正式执行两个阶段,在预执行时,会先建立运行库数据对应的第一备份数据,针对该数据开启事务,即开始更新。首先可以执行同步,即根据配置库和运行库的数据差异生成SQL指令并执行,计算机设备可以记录执行成功的SQL语句构成SQL列表。在针对第一备份数据更新完成后,并不将数据同步到运行库中,而是先基于SQL指令对应的数据存储位置从运行库中进行数据提取,即进行数据快照,获取更新前的数据。
在正式执行时,计算机设备可以开启事务,然后建立运行库数据对应的第二备份数据,针对第二备份数据执行同步,并提交事务,即根据更新后的第二备份数据同步运行库中的数据,用更新过的数据替换相同数据存储位置的数据,实现对运行库的更新。在数据更新过程中,通过数据快照服务,计算机设备所记录的信息有数据变更时执行的SQL列表,以及变更前后的数据快照(其中变更后的数据快照的作用在下文中进行介绍)。基于SQL指令和变更前的数据快照,这计算机设备可以生成用于反向回滚执行的SQL指令,从而可以用于对异常数据进行回滚。
可以理解的是,针对数据库中同一数据存储位置的数据可能发生有多次数据更新,当目标数据存储位置出现异常时,通常是针对该目标数据存储位置的最后一次数据更新导致的数据异常。基于此,在一种可能的实现方式中,为了在有效解决数据异常的同时,降低对数据库中数据应用的影响程度,计算机设备可以在数据回滚时基于最后一次数据更新前的数据进行数据回滚。
计算机设备可以确定数据回滚指令对应的更新时序信息,该更新时序信息用于标识数据回滚指令对应的更新时序,该更新时序为根据数据更新指令对数据库的更新在针对数据库的多次更新中的更新时序,即基于该数据更新指令执行的这一次数据更新的时序。
在执行步骤S204时,计算机设备可以执行步骤S2041-S2043(图中未示出),步骤S2041-S2043为步骤S204的一种可能的实现方式,包括:
S2041:基于数据库中目标数据存储位置的数据出现异常,确定目标数据存储位置对应的多个待定数据回滚指令。
其中,待定数据回滚指令用于恢复目标数据存储位置的数据,多个待定数据回滚指令中包括数据回滚指令,即每一个待定数据回滚指令都可以用于将目标数据存储位置的数据恢复为某一数值,该数值是基于待定数据回滚指令所对应的数据更新指令更新前的数据确定的。
S2042:根据多个待定数据回滚指令分别对应的更新时序信息,确定多个待定数据回滚指令中所对应更新时序最晚的目标数据回滚指令。
每一个待定数据回滚指令都具有对应的更新时序信息,用于标识基于待定数据滚回执行所对应的数据更新指令进行的数据更新的更新时序,从而,通过多个待定数据回滚指令分别对应的更新时序信息,能够确定出多个待定数据回滚指令分别对应的更新时序之间的早晚关系,即所对应的数据更新的早晚关系。可以理解的是,对目标数据存储位置的数据更新次数越多,数据差生的差异通常也就越大,因此最晚一次数据更新前的数据应当越接近于当前数据库中目标数据存储位置所存储的数据,从而将数据库中目标数据存储位置的异常数据恢复为最晚一次数据更新前的数据时,对数据库中数据的影响程度通常最小,也最贴合当前对数据库中数据的应用需求。基于此,计算机设备可以根据多个待定数据回滚指令分别对应的更新时序,确定出所对应更新时序最晚的目标数据回滚指令,通过该目标数据回滚指令所恢复的数据即为最后一次更新前目标数据存储位置的数据。
S2043:基于目标数据回滚指令为数据回滚指令,针对数据库执行数据回滚指令。
若该目标数据回滚指令为数据回滚指令,则计算机设备可以通过该数据回滚指令进行数据回滚。需要强调的是,这里并不需要进行指令判断过程,计算机设备可以直接基于目标数据回滚指令进行数据回滚,这里只是说明了目标数据回滚指令为上述数据回滚指令的执行情况。
在数据库场景下,也有可能存在不通过数据更新指令对数据库中数据的修改,例如具有权限的相关人员可以直接修改数据库中数据表上的某一字段的数据。或者,可能有多条数据更新指令针对同一数据存储位置的数据进行了更新。
基于上述因素,可能会出现数据库中目标数据存储位置的数据并不为基于数据更新指令更新后的数据,此时,若仍然基于数据回滚指令对该目标数据存储位置的数据进行数据恢复,可能会导致针对该目标数据存储位置的其他数据修改操作失效,从而可能会导致数据库运行出现故障或数据无法得到正常应用。
例如,如图4所示,上午数据库的操作人A把数据库中存储的物品价格由为10元修改为12元之后进行发布,下午操作人B把相同的物品价格由12元修改为15元,如果在晚上的时候将上午操作A的发布进行回滚,即将物品价格回滚为10元,则会影响下午操作人B修改的结果。
基于此,在一种可能的实现方式中,计算机设备在进行数据恢复之前,可以先判断数据库中的当前数据是否为基于数据回滚指令所对应的数据更新指令更新后的数据,以此来决定是否基于该数据回滚指令进行数据恢复。
在执行步骤S204时,计算机设备可以执行步骤S2044-S2045(图中未示出),步骤S2044-S2045为步骤S204的一种可能的实现方式,包括:
S2044:基于数据库中目标数据存储位置的数据出现异常,获取数据库中目标数据存储位置的待分析数据。
该待分析数据为数据库中目标数据存储位置当前所存储的数据。
S2045:基于待分析数据与第一数据一致,针对数据库执行数据回滚指令。
在执行数据更新指令进行数据更新后,计算机设备可以记录更新后数据库在目标数据存储位置对应的第一数据,并将该第一数据与待分析数据进行比较。若一致,则可以说明该在通过该数据更新指令进行更新后,大概率针对数据库中目标数据存储位置的数据没有发生其他的更新,此时,计算机设备可以针对数据库执行数据回滚指令,使目标数据存储位置的数据恢复为第二数据,该恢复过程不会对其他数据更新操作带来影响。若不一致,则可以不采用该数据回滚指令进行异常修复,而是采用其他方式进行进一步数据分析,从而有助于提高数据库中数据的稳定性,提高数据运行的安全性。
其中,为了在第一数据与待分析数据不一致时能够对数据进行更加细致的分析,在一种可能的实现方式中,在数据不一致时,计算机设备可以指示其他数据分析方法进行数据分析和修复。
基于待分析数据与第一数据不一致,计算机设备可以生成指示信息,该指示信息用于指示对数据库中目标数据存储位置的数据进行数据分析,该数据分析用于确定数据库中目标数据存储位置对应的恢复数据,恢复数据即为能够使目标数据存储位置在存储该数据时不出现数据异常的数据。其中,该指示信息的接收方可以包括多种,例如可以为其他能够用于进行数据分析的设备,也可以为相关技术人员等,此处不作限定。
计算机设备可以获取通过数据分析确定的恢复数据,然后将数据库中目标数据存储位置的数据更新为恢复数据,从而修复数据库在目标数据存储位置的数据异常。通过该方式,计算机设备不仅可以自行进行数据异常的修复,还可以结合计算机设备外的多种数据异常修复方式,进一步提高了数据异常修复的成功率和修复效率。
可以理解的是,上已述及,针对目标数据存储位置可能存在多次数据更新,在进行数据比对分析时,若不采用最后一次数据更新后的数据进行比对分析,则可能会导致不必要的指示信息的生成。
例如,操作人A可以将数据库中的数据由10元修改为15元后,操作人B可以将数据库中的数据由15元修改为12元。当数据库中的数据出现异常时,所对应的数据可能为12元,若通过第一次修改后的数据进行比对,则由于数据不一致会触发指示信息的生成,需要其他数据分析方介入来进行数据修复。而通过第二次更新后的数据进行比对,则可以确定在更新后不存在其他的数据更新操作,因此可以进行数据回滚,无需进行指示信息的生成。同时,最后一次通过数据更新指令更新后的数据也更能够体现出在数据出现异常之前的时段是否有异常的数据更新操作的出现。
基于此,在判断数据是否一致时,计算机设备可以分析用于与待分析数据进行比较的数据是否为最后一次基于数据更新指令更新后的数据。在基于待分析数据与第一数据不一致,生成指示信息时,计算机设备可以判断根据该数据更新指令(即用于将数据更新为第一数据的数据更新指令)对数据库的更新是否为针对目标数据位置的最后一次更新,基于待分析数据与第一数据不一致,且根据数据更新指令对数据库的更新为针对数据库中目标数据存储位置的最后一次更新,则可以说明从最后一次通过数据更新指令的数据更新到出现数据异常之间,发生了其他方式的数据修改操作或出现了数据的异常变更情况,此时计算机设备可以生成指示信息来指示其他数据分析方进行数据分析。若不为最后一次更新,则计算机设备可以重新获取最后一次通过数据更新指令更新后的数据进行比对分析。
通过该方式,在一定程度上可以降低指示信息的生成次数,也降低了其他数据分析方的参与程度,从而在一定程度上简化了数据修复流程,提高了数据修复效率。
上述两种技术方案都需要通过数据更新指令更新后的数据,因此计算机设备在根据数据更新指令更新数据库后,可以记录数据库在目标数据存储位置上对应的更新后的数据,以便于后续进行数据比对。例如,计算机设备可以通过图3中的数据快照机制,得到变更后的数据对应的数据快照。
参见图5,图5为本申请提供的一种数据处理方法的示意图,在数据回滚服务中,计算机设备可以通过版本号来记录信息的更新时序,每一次数据更新都具有对应的版本号。基于版本号可以管理数据快照,数据快照中包括回滚执行的SQL(即数据回滚指令)列表、更新后数据和更新执行的SQL(即数据更新指令)列表,通过更新执行的SQL列表可以实现对运行库中数据的更新,当运行库中数据异常时,可以获取当前数据与更新后数据进行对比,若一致则说明基于该回滚执行SQL列表进行数据回滚没有其他影响,可以进行数据回滚,若不一致,则说明数据回滚会产生影响,计算机设备可以指示人工介入,相关人员可以根据回滚数据所影响的数据进行数据分析,确定用于恢复的数据。
接下来,将介绍一种具体的数据回滚指令的生成方式。
在一种可能的实现方式中,数据更新指令可以由目标位置信息、第一数据和更新行为指令构成,其中,目标位置信息可以用于标识目标数据存储位置,更新行为指令用于进行数据更新,第一数据用于提供更新后的数据内容,从而结合上述三种信息可以使数据更新指令实现将目标数据存储位置的数据更新为第一数据。
由于数据回滚指令用于将目标数据存储位置对应的数据恢复为第二数据,本质上也是一种数据更新,因此可以参考数据更新指令的指令构成来生成数据回滚指令。
在执行步骤S203时,计算机设备可以执行步骤S2032(图中未示出),步骤S2032为步骤S203的一种可能的实现方式,包括:
S2032:将数据更新指令中的第一数据替换为第二数据,生成数据更新指令对应的数据回滚指令。
由于数据回滚指令本质上进行的也是数据更新,因此,计算机设备可以直接将数据更新指令中的第一数据替换为第二数据,其他部分不变,从而使原本用于将目标数据存储位置的数据更新为第一数据的数据更新指令,实现数据回滚的能力需求,从而可以得到该数据回滚指令。即,该数据回滚指令可以包括目标位置信息、第二数据和更新行为指令这三部分。
例如,数据更新指令可以为如下SQL语句:
Update TableASet FieldA=newValue Where FieldB=valueB limit 1
其中,Update为更新行为指令,TableA Set FieldA为目标位置信息,newValue为第一数据,valueB limit 1为规范化的SQL模板语句。计算机设备可以将第一数据替换为第二数据oldValue,从而得到数据回滚指令如下:
Update TableASet FieldA=oldValue Where FieldB=valueB limit 1
该数据回滚指令能够实现将目标数据存储位置的数据恢复为oldValue。
为了便于理解本申请实施例提供的技术方案,接下来,将结合一种实际应用场景,对本申请提供的数据处理方法进行介绍。
参见图6和图7,图6为本申请实施例提供的一种实际应用场景中数据处理方法的流程图,图7为本申请实施例提供的一种实际应用场景中数据处理方法的示意图,在该实际应用场景中,计算机设备可以为包括配置库和运行库中的中间件的计算机设备,通过该中间件完成对运行库中数据的更新和回滚。该方法包括:
S601:根据配置库和运行库的数据差异,确定初始SQL列表。
其中,配置库为数据处理的源环境对应的数据,运行库为数据实际处理的目标环境对应的数据。
S602:建立运行库对应的第一备份数据。
该第一备份数据用于确定成功执行的SQL语句。
S603:针对第一备份数据执行初始SQL列表,确定变更执行的SQL列表。
变更执行的SQL列表即为能够成功实现数据变更的SQL语句集合。
S604:根据变更执行的SQL列表从运行库中获取变更前的数据快照。
变更前的数据快照用于记录变更前的数据。
S605:生成变更执行的SQL列表对应的反向回滚执行的SQL列表。
反向回滚执行的SQL列表包括变更执行的SQL列表中的SQL语句分别对应的反向回滚执行的SQL语句。
S606:建立运行库对应的第二备份数据。
该第二备份数据用于对运行库中的数据进行更新。需要强调的是,S605和S606并没有执行的先后顺序。
S607:基于变更执行的SQL列表更新第二备份数据。
在更新完成后,计算机设备可以从运行库中获取变更后的数据快照,用于记录变更后的运行库中的数据,以在后续数据回滚时进行比对。
S608:将第二备份数据更新到运行库中。
S609:确定出现数据异常的数据存储位置。
在运行库中发生数据异常时,计算机设备可以先确定发生数据异常的数据存储位置。
S610:获取数据存储位置对应的反向回滚执行的SQL。
该SQL语句即为数据存储位置对应的数据回滚指令。
S611:数据回滚。
首先,计算机设备可以基于数据回滚指令对应的版本号(即更新时序信息),从数据回滚指令中确定针对数据存储位置的最后一次数据变更所对应的数据回滚指令,然后基于版本号获取最后一次数据变更后的数据快照,通过与现有的数据比对是否一致确定是否基于该数据回滚指令进行数据回滚,若一致则基于数据回滚指令进行数据恢复,若不一致则指示人工介入进行数据恢复。
基于上述实施例提供的数据处理方法,本申请还提供了一种数据处理装置,参见图8,图8为本申请实施例提供的一种数据处理装置的结构框图,该装置800包括第一确定单元801、第一获取单元802、执行单元803和回滚单元804:
所述第一确定单元801,用于确定数据更新指令,所述数据更新指令用于将数据库中目标数据存储位置下的数据更新为第一数据,所述数据更新指令包括用于标识所述目标数据存储位置的目标位置信息;
所述第一获取单元802,用于根据所述目标位置信息,从所述数据库的所述目标数据存储位置中获取第二数据;
所述执行单元803,用于根据所述数据更新指令更新所述数据库中的数据,以及根据所述目标位置信息和所述第二数据生成所述数据更新指令对应的数据回滚指令,所述数据回滚指令用于将所述数据库中所述目标数据存储位置下的数据恢复为所述第二数据;
所述回滚单元804,用于基于所述数据库中所述目标数据存储位置的数据出现异常,针对所述数据库执行所述数据回滚指令,使所述数据库中所述目标数据存储位置下的数据恢复为所述第二数据。
在一种可能的实现方式中,所述数据库包括配置库和运行库,所述配置库用于配置所述运行库中的数据,所述运行库用于提供实际应用的数据,所述配置库和所述运行库分别包括的数据存储位置相同,所述第一确定单元801具体用于:
根据所述配置库和所述运行库之间的数据差异,确定所述数据更新指令,所述配置库中的所述目标数据存储位置用于存储所述第一数据,所述运行库中的所述目标数据存储位置用于存储所述第二数据;
所述第一获取单元802具体用于:
根据所述目标位置信息,从所述运行库的所述目标数据存储位置中获取第二数据;
所述执行单元803具体用于:
根据所述数据更新指令,将所述运行库中所述目标数据存储位置的数据由所述第二数据更新为所述第一数据。
在一种可能的实现方式中,所述装置还包括第一备份单元:
所述第一备份单元,用于建立所述运行库对应的第一备份数据,所述第一备份数据与所述运行库所存储的数据相同;
所述第一确定单元801具体用于:
根据所述配置库和所述运行库之间的数据差异,确定初始数据更新指令,所述初始数据更新指令用于使所述运行库中的数据与所述配置库中的数据一致,所述初始数据更新指令中包括目标数据更新指令,所述目标数据更新指令用于所述目标数据存储位置下的数据更新为第一数据;
针对所述第一备份数据执行所述初始数据更新指令;
基于所述目标数据更新指令被成功执行,将所述目标数据更新指令确定为所述数据更新指令。
在一种可能的实现方式中,所述第一执行单元803具体用于:
建立所述运行库对应的第二备份数据,所述第二备份数据与所述运行库所存储的数据相同;
针对所述第二备份数据执行所述数据更新指令,使所述第二备份数据中的所述目标数据存储位置的数据更新为所述第一数据;
将所述运行库中所述目标数据存储位置的数据更新为更新后的所述第二备份数据中所述目标数据存储位置的数据。
在一种可能的实现方式中,所述装置还包括第二确定单元:
所述第二确定单元,用于确定所述数据回滚指令对应的更新时序信息,所述更新时序信息用于标识所述数据回滚指令对应的更新时序,所述更新时序为根据所述数据更新指令对所述数据库的更新在针对所述数据库的多次更新中的更新时序;
所述回滚单元804具体用于:
基于所述数据库中所述目标数据存储位置的数据出现异常,确定所述目标数据存储位置对应的多个待定数据回滚指令,所述待定数据回滚指令用于恢复所述目标数据存储位置的数据,所述多个待定数据回滚指令中包括所述数据回滚指令;
根据所述多个待定数据回滚指令分别对应的更新时序信息,确定所述多个待定数据回滚指令中所对应更新时序最晚的目标数据回滚指令;
基于所述目标数据回滚指令为所述数据回滚指令,针对所述数据库执行所述数据回滚指令。
在一种可能的实现方式中,所述回滚单元804具体用于:
基于所述数据库中所述目标数据存储位置的数据出现异常,获取所述数据库中所述目标数据存储位置的待分析数据;
基于所述待分析数据与所述第一数据一致,针对所述数据库执行所述数据回滚指令。
在一种可能的实现方式中,所述装置还包括生成单元、第二获取单元和更新单元:
所述生成单元,用于基于所述待分析数据与所述第一数据不一致,生成指示信息,所述指示信息用于指示对所述数据库中所述目标数据存储位置的数据进行数据分析,所述数据分析用于确定所述数据库中所述目标数据存储位置对应的恢复数据;
所述第二获取单元,用于获取通过所述数据分析确定的所述恢复数据;
所述更新单元,用于将所述数据库中所述目标数据存储位置的数据更新为所述恢复数据。
在一种可能的实现方式中,所述生成单元具体用于:
基于所述待分析数据与所述第一数据不一致,且根据所述数据更新指令对所述数据库的更新为针对所述数据库中所述目标数据存储位置的最后一次更新,生成指示信息。
在一种可能的实现方式中,所述数据更新指令由所述目标位置信息、所述第一数据和更新行为指令构成,所述更新行为指令用于进行数据更新,所述执行单元803具体用于:
将所述数据更新指令中的所述第一数据替换为所述第二数据,生成所述数据更新指令对应的数据回滚指令。
本申请实施例还提供了一种计算机设备,请参见图9所示,该计算机设备可以是终端设备,以终端设备为手机为例:
图9示出的是与本申请实施例提供的终端设备相关的手机的部分结构的框图。参考图9,手机包括:射频(Radio Frequency,简称RF)电路710、存储器720、输入单元730、显示单元740、传感器750、音频电路760、无线保真(Wireless Fidelity,简称WiFi)模块770、处理器780、以及电源790等部件。本领域技术人员可以理解,图9中示出的手机结构并不构成对手机的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
下面结合图9对手机的各个构成部件进行具体的介绍:
RF电路710可用于收发信息或通话过程中,信号的接收和发送,特别地,将基站的下行信息接收后,给处理器780处理;另外,将设计上行的数据发送给基站。通常,RF电路710包括但不限于天线、至少一个放大器、收发信机、耦合器、低噪声放大器(Low NoiseAmplifier,简称LNA)、双工器等。此外,RF电路710还可以通过无线通信与网络和其他设备通信。上述无线通信可以使用任一通信标准或协议,包括但不限于全球移动通讯系统(Global System of Mobile communication,简称GSM)、通用分组无线服务(GeneralPacket Radio Service,简称GPRS)、码分多址(Code Division Multiple Access,简称CDMA)、宽带码分多址(Wideband Code Division Multiple Access,简称WCDMA)、长期演进(Long Term Evolution,简称LTE)、电子邮件、短消息服务(Short Messaging Service,简称SMS)等。
存储器720可用于存储软件程序以及模块,处理器780通过运行存储在存储器720的软件程序以及模块,从而执行手机的各种功能应用以及数据处理。存储器720可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器720可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
输入单元730可用于接收输入的数字或字符信息,以及产生与手机的用户设置以及功能控制有关的键信号输入。具体地,输入单元730可包括触控面板731以及其他输入设备732。触控面板731,也称为触摸屏,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触控面板731上或在触控面板731附近的操作),并根据预先设定的程式驱动相应的连接装置。可选的,触控面板731可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器780,并能接收处理器780发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触控面板731。除了触控面板731,输入单元730还可以包括其他输入设备732。具体地,其他输入设备732可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。
显示单元740可用于显示由用户输入的信息或提供给用户的信息以及手机的各种菜单。显示单元740可包括显示面板741,可选的,可以采用液晶显示器(Liquid CrystalDisplay,简称LCD)、有机发光二极管(Organic Light-Emitting Diode,简称OLED)等形式来配置显示面板741。进一步的,触控面板731可覆盖显示面板741,当触控面板731检测到在其上或附近的触摸操作后,传送给处理器780以确定触摸事件的类型,随后处理器780根据触摸事件的类型在显示面板741上提供相应的视觉输出。虽然在图9中,触控面板731与显示面板741是作为两个独立的部件来实现手机的输入和输入功能,但是在某些实施例中,可以将触控面板731与显示面板741集成而实现手机的输入和输出功能。
手机还可包括至少一种传感器750,比如光传感器、运动传感器以及其他传感器。具体地,光传感器可包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示面板741的亮度,接近传感器可在手机移动到耳边时,关闭显示面板741和/或背光。作为运动传感器的一种,加速计传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别手机姿态的应用(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;至于手机还可配置的陀螺仪、气压计、湿度计、温度计、红外线传感器等其他传感器,在此不再赘述。
音频电路760、扬声器761,传声器762可提供用户与手机之间的音频接口。音频电路760可将接收到的音频数据转换后的电信号,传输到扬声器761,由扬声器761转换为声音信号输出;另一方面,传声器762将收集的声音信号转换为电信号,由音频电路760接收后转换为音频数据,再将音频数据输出处理器780处理后,经RF电路710以发送给比如另一手机,或者将音频数据输出至存储器720以便进一步处理。
WiFi属于短距离无线传输技术,手机通过WiFi模块770可以帮助用户收发电子邮件、浏览网页和访问流式媒体等,它为用户提供了无线的宽带互联网访问。虽然图9示出了WiFi模块770,但是可以理解的是,其并不属于手机的必须构成,完全可以根据需要在不改变发明的本质的范围内而省略。
处理器780是手机的控制中心,利用各种接口和线路连接整个手机的各个部分,通过运行或执行存储在存储器720内的软件程序和/或模块,以及调用存储在存储器720内的数据,执行手机的各种功能和处理数据,从而对手机进行整体检测。可选的,处理器780可包括一个或多个处理单元;优选的,处理器780可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器780中。
手机还包括给各个部件供电的电源790(比如电池),优选的,电源可以通过电源管理系统与处理器780逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。
尽管未示出,手机还可以包括摄像头、蓝牙模块等,在此不再赘述。
在本实施例中,该终端设备所包括的处理器780还具有以下功能:
确定数据更新指令,所述数据更新指令用于将数据库中目标数据存储位置下的数据更新为第一数据,所述数据更新指令包括用于标识所述目标数据存储位置的目标位置信息;
根据所述目标位置信息,从所述数据库的所述目标数据存储位置中获取第二数据;
根据所述数据更新指令更新所述数据库中的数据,以及根据所述目标位置信息和所述第二数据生成所述数据更新指令对应的数据回滚指令,所述数据回滚指令用于将所述数据库中所述目标数据存储位置下的数据恢复为所述第二数据;
基于所述数据库中所述目标数据存储位置的数据出现异常,针对所述数据库执行所述数据回滚指令,使所述数据库中所述目标数据存储位置下的数据恢复为所述第二数据。
本申请实施例还提供一种服务器,请参见图10所示,图10为本申请实施例提供的服务器800的结构图,服务器800可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(Central Processing Units,简称CPU)822(例如,一个或一个以上处理器)和存储器832,一个或一个以上存储应用程序842或数据844的存储介质830(例如一个或一个以上海量存储设备)。其中,存储器832和存储介质830可以是短暂存储或持久存储。存储在存储介质830的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对服务器中的一系列指令操作。更进一步地,中央处理器822可以设置为与存储介质830通信,在服务器800上执行存储介质830中的一系列指令操作。
服务器800还可以包括一个或一个以上电源826,一个或一个以上有线或无线网络接口850,一个或一个以上输入输出接口858,和/或,一个或一个以上操作系统841,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM等等。
上述实施例中由服务器所执行的步骤可以基于图10所示的服务器结构。
本申请实施例还提供一种计算机可读存储介质,用于存储计算机程序,该计算机程序用于执行前述各个实施例所述的数据处理方法中的任意一种实施方式。
本申请实施例还提供了一种包括计算机程序的计算机程序产品,当其在计算机设备上运行时,使得所述计算机设备执行上述实施例中任意一项所述的数据处理方法。
可以理解的是,在本申请的具体实施方式中,涉及到用户信息(如数据库中的数据)等相关的数据,当本申请以上实施例运用到具体产品或技术中时,需要获得用户许可或者同意,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质可以是下述介质中的至少一种:只读存储器(英文:read-only memory,缩写:ROM)、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于设备及系统实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的设备及系统实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上所述,仅为本申请的一种具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应该以权利要求的保护范围为准。

Claims (13)

1.一种数据处理方法,其特征在于,所述方法包括:
确定数据更新指令,所述数据更新指令用于将数据库中目标数据存储位置下的数据更新为第一数据,所述数据更新指令包括用于标识所述目标数据存储位置的目标位置信息;
根据所述目标位置信息,从所述数据库的所述目标数据存储位置中获取第二数据;
根据所述数据更新指令更新所述数据库中的数据,以及根据所述目标位置信息和所述第二数据生成所述数据更新指令对应的数据回滚指令,所述数据回滚指令用于将所述数据库中所述目标数据存储位置下的数据恢复为所述第二数据;
基于所述数据库中所述目标数据存储位置的数据出现异常,针对所述数据库执行所述数据回滚指令,使所述数据库中所述目标数据存储位置下的数据恢复为所述第二数据。
2.根据权利要求1所述的方法,其特征在于,所述数据库包括配置库和运行库,所述配置库用于配置所述运行库中的数据,所述运行库用于提供实际应用的数据,所述配置库和所述运行库分别包括的数据存储位置相同,所述确定数据更新指令,包括:
根据所述配置库和所述运行库之间的数据差异,确定所述数据更新指令,所述配置库中的所述目标数据存储位置用于存储所述第一数据,所述运行库中的所述目标数据存储位置用于存储所述第二数据;
所述根据所述目标位置信息,从所述数据库的所述目标数据存储位置中获取第二数据,包括:
根据所述目标位置信息,从所述运行库的所述目标数据存储位置中获取第二数据;
所述根据所述数据更新指令更新所述数据库中的数据,包括:
根据所述数据更新指令,将所述运行库中所述目标数据存储位置的数据由所述第二数据更新为所述第一数据。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
建立所述运行库对应的第一备份数据,所述第一备份数据与所述运行库所存储的数据相同;
所述根据所述配置库和所述运行库之间的数据差异,确定所述数据更新指令,包括:
根据所述配置库和所述运行库之间的数据差异,确定初始数据更新指令,所述初始数据更新指令用于使所述运行库中的数据与所述配置库中的数据一致,所述初始数据更新指令中包括目标数据更新指令,所述目标数据更新指令用于所述目标数据存储位置下的数据更新为第一数据;
针对所述第一备份数据执行所述初始数据更新指令;
基于所述目标数据更新指令被成功执行,将所述目标数据更新指令确定为所述数据更新指令。
4.根据权利要求2所述的方法,其特征在于,所述根据所述数据更新指令,将所述运行库中所述目标数据存储位置的数据由所述第二数据更新为所述第一数据,包括:
建立所述运行库对应的第二备份数据,所述第二备份数据与所述运行库所存储的数据相同;
针对所述第二备份数据执行所述数据更新指令,使所述第二备份数据中的所述目标数据存储位置的数据更新为所述第一数据;
将所述运行库中所述目标数据存储位置的数据更新为更新后的所述第二备份数据中所述目标数据存储位置的数据。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
确定所述数据回滚指令对应的更新时序信息,所述更新时序信息用于标识所述数据回滚指令对应的更新时序,所述更新时序为根据所述数据更新指令对所述数据库的更新在针对所述数据库的多次更新中的更新时序;
所述基于所述数据库中所述目标数据存储位置的数据出现异常,针对所述数据库执行所述数据回滚指令,包括:
基于所述数据库中所述目标数据存储位置的数据出现异常,确定所述目标数据存储位置对应的多个待定数据回滚指令,所述待定数据回滚指令用于恢复所述目标数据存储位置的数据,所述多个待定数据回滚指令中包括所述数据回滚指令;
根据所述多个待定数据回滚指令分别对应的更新时序信息,确定所述多个待定数据回滚指令中所对应更新时序最晚的目标数据回滚指令;
基于所述目标数据回滚指令为所述数据回滚指令,针对所述数据库执行所述数据回滚指令。
6.根据权利要求1所述的方法,其特征在于,所述基于所述数据库中所述目标数据存储位置的数据出现异常,针对所述数据库执行所述数据回滚指令,包括:
基于所述数据库中所述目标数据存储位置的数据出现异常,获取所述数据库中所述目标数据存储位置的待分析数据;
基于所述待分析数据与所述第一数据一致,针对所述数据库执行所述数据回滚指令。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
基于所述待分析数据与所述第一数据不一致,生成指示信息,所述指示信息用于指示对所述数据库中所述目标数据存储位置的数据进行数据分析,所述数据分析用于确定所述数据库中所述目标数据存储位置对应的恢复数据;
获取通过所述数据分析确定的所述恢复数据;
将所述数据库中所述目标数据存储位置的数据更新为所述恢复数据。
8.根据权利要求7所述的方法,其特征在于,所述基于所述待分析数据与所述第一数据不一致,生成指示信息,包括:
基于所述待分析数据与所述第一数据不一致,且根据所述数据更新指令对所述数据库的更新为针对所述数据库中所述目标数据存储位置的最后一次更新,生成指示信息。
9.根据权利要求1所述的方法,其特征在于,所述数据更新指令由所述目标位置信息、所述第一数据和更新行为指令构成,所述更新行为指令用于进行数据更新,所述根据所述目标位置信息和所述第二数据生成所述数据更新指令对应的数据回滚指令,包括:
将所述数据更新指令中的所述第一数据替换为所述第二数据,生成所述数据更新指令对应的数据回滚指令。
10.一种数据处理装置,其特征在于,所述装置包括第一确定单元、第一获取单元、执行单元和回滚单元:
所述第一确定单元,用于确定数据更新指令,所述数据更新指令用于将数据库中目标数据存储位置下的数据更新为第一数据,所述数据更新指令包括用于标识所述目标数据存储位置的目标位置信息;
所述第一获取单元,用于根据所述目标位置信息,从所述数据库的所述目标数据存储位置中获取第二数据;
所述执行单元,用于根据所述数据更新指令更新所述数据库中的数据,以及根据所述目标位置信息和所述第二数据生成所述数据更新指令对应的数据回滚指令,所述数据回滚指令用于将所述数据库中所述目标数据存储位置下的数据恢复为所述第二数据;
所述回滚单元,用于基于所述数据库中所述目标数据存储位置的数据出现异常,针对所述数据库执行所述数据回滚指令,使所述数据库中所述目标数据存储位置下的数据恢复为所述第二数据。
11.一种计算机设备,其特征在于,所述计算机设备包括处理器以及存储器:
所述存储器用于存储计算机程序,并将所述计算机程序传输给所述处理器;
所述处理器用于根据所述计算机程序中的指令执行权利要求1-9中任意一项所述的数据处理方法。
12.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质用于存储计算机程序,所述计算机程序用于执行权利要求1-9中任意一项所述的数据处理方法。
13.一种包括计算机程序的计算机程序产品,当其在计算机设备上运行时,使得所述计算机设备执行权利要求1-9中任意一项所述的数据处理方法。
CN202311156896.8A 2023-09-07 2023-09-07 一种数据处理方法和相关装置 Pending CN117667955A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311156896.8A CN117667955A (zh) 2023-09-07 2023-09-07 一种数据处理方法和相关装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311156896.8A CN117667955A (zh) 2023-09-07 2023-09-07 一种数据处理方法和相关装置

Publications (1)

Publication Number Publication Date
CN117667955A true CN117667955A (zh) 2024-03-08

Family

ID=90079660

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311156896.8A Pending CN117667955A (zh) 2023-09-07 2023-09-07 一种数据处理方法和相关装置

Country Status (1)

Country Link
CN (1) CN117667955A (zh)

Similar Documents

Publication Publication Date Title
EP3493471B1 (en) Data disaster recovery method, apparatus and system
EP3499786B1 (en) Data synchronization method, apparatus, storage medium and electronic device
CN111666222B (zh) 一种测试方法和相关装置
CN108572908B (zh) 信息反馈方法及装置
CN104965721A (zh) 一种对应用程序进行更新的方法及装置
CN112148579B (zh) 一种用户界面的测试方法和装置
CN103473163A (zh) 应用程序检测方法及装置
US12093146B2 (en) Method and apparatus for generating log data having increased filterability
CN104239163B (zh) 软件修复方法和装置
CN113157496B (zh) 应用于数据恢复的处理方法、相关装置、设备及存储介质
CN110737476B (zh) 一种终端重启方法及装置
US9928134B2 (en) Method and apparatus for repairing dynamic link library file
CN113609107A (zh) 数据库管理方法、装置、电子设备及存储介质
CN117667955A (zh) 一种数据处理方法和相关装置
US20200167242A1 (en) Action undo service based on cloud platform
CN104717283A (zh) 文件下载的控制方法、终端及逻辑处理服务器
CN116841794A (zh) 一种数据的校验方法、装置以及存储介质
CN116450597A (zh) 一种日志的管理方法以及相关装置
US20230274036A1 (en) Data reading method, storage medium, and mobile terminal
CN116563041A (zh) 一种数据对账方法以及相关装置
CN112732548A (zh) 一种接口测试方法以及装置
CN116578546A (zh) 一种基于数据库的数据处理方法、系统、装置及存储介质
CN117472265A (zh) 一种数据处理方法以及相关设备
CN115934493A (zh) 一种内存泄漏的检测方法、相关装置及设备
CN105279175A (zh) 数据传输的方法和装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication