CN113032408A - 数据处理方法、系统及设备 - Google Patents
数据处理方法、系统及设备 Download PDFInfo
- Publication number
- CN113032408A CN113032408A CN201911350290.1A CN201911350290A CN113032408A CN 113032408 A CN113032408 A CN 113032408A CN 201911350290 A CN201911350290 A CN 201911350290A CN 113032408 A CN113032408 A CN 113032408A
- Authority
- CN
- China
- Prior art keywords
- log
- data object
- label
- data
- record item
- 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.)
- Granted
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 25
- 238000000034 method Methods 0.000 claims description 46
- 230000001360 synchronised effect Effects 0.000 claims description 4
- 238000007726 management method Methods 0.000 description 24
- 238000003860 storage Methods 0.000 description 20
- 238000010586 diagram Methods 0.000 description 17
- 230000006870 function Effects 0.000 description 10
- 230000008859 change Effects 0.000 description 5
- 230000004048 modification Effects 0.000 description 5
- 238000012986 modification Methods 0.000 description 5
- 230000008569 process Effects 0.000 description 4
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 1
- 239000000470 constituent Substances 0.000 description 1
- 238000013523 data management Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 239000000126 substance Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- 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
- 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/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1448—Management of the data involved in backup or backup restore
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/1805—Append-only file systems, e.g. using logs or journals to store data
- G06F16/1815—Journaling file systems
-
- 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/21—Design, administration or maintenance of databases
-
- 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/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
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)
- Computer Security & Cryptography (AREA)
- Computing Systems (AREA)
- Quality & Reliability (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Debugging And Monitoring (AREA)
Abstract
本申请实施例提供一种数据处理方法、系统及设备。本申请各实施例提供的技术方案中,为数据对象新增一个对象标号;针对数据对象的操作事件生成日志及日志标号;然后,将数据对象的对象标号与日志标号关联的保存为所述数据对象对应的记录项;再更改数据对象的对象标识;因记录项中包含有数据对象在被操作前的对象标号及主库对数据对象执行操作后生成日志的日志标号;所以备库在数据回放时,可通过比较读入内存数据对象的对象标号与记录项中的对象标号是否一致,来确认备库当前数据对象是否与主库在执行操作前主库内该数据对象一致;实现方案简单,且高效。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种数据处理方法、系统及设备。
背景技术
数据库管理系统可按照数据结构来组织、存储和管理数据。一般的,数据库管理系统包括主库和备库,主库用于提供数据管理和数据查询功能,备库用于备份主库中的数据,可在主库发生故障时代替主库提供相应的功能。备库借助主库生成的日志,对备库中的数据进行操作,以使自身的数据与主库的数据保持一致;这个过程可称为数据回放。
目前,备库在按照主库生成的日志进行数据回放的过程中,存在一个难点:如何确认是否与主库保持了一致性。
发明内容
为解决现有技术存在的难点,本申请实施例提供了一种数据处理方法、系统及设备。
在本申请的一个实施例中,提供了一种数据处理方法。该方法包括:
针对数据对象的操作事件生成与所述操作事件相关的日志及日志标号;
获取所述数据对象的对象标号;
为所述数据对象添加记录项,其中,所述记录项中包含有所述日志标号及所述对象标号;
更改所述数据对象的对象标号。
在本申请的另一个实施例中,提供了一种数据处理方法。该方法包括:
获取与数据对象相关的至少一个记录项;其中,记录项中包含有主库针对所述数据对象的操作事件生成日志的日志标号及所述操作事件发生前所述数据对象的对象标号;
根据备库记载的所述数据对象的对象标号及所述至少一个记录项,确定第一日志;
根据所述第一日志,对所述数据对象进行相应的操作;
在所述操作完成的情况下,更改所述数据对象的对象标号。
在本申请的又一个实施例中,提供了一种数据库管理系统。该数据库管理系统包括:
主库,用于针对数据对象的操作事件,生成与所述操作事件相关的日志及日志标号;获取所述数据对象的对象标号;为所述数据对象添加记录项,其中,所述记录项中包含有所述日志标号及所述对象标号;更改所述数据对象的对象标号;
备库,用于获取与数据对象相关的至少一个记录项;其中,记录项中包含有主库针对所述数据对象的操作事件生成日志的日志标号及所述操作事件发生前所述数据对象的对象标号;根据备库记载的所述数据对象的对象标号及所述至少一个记录项,确定第一日志;根据所述第一日志,对所述数据对象进行相应的操作;在所述操作完成的情况下,更改所述数据对象的对象标号。
在本申请的又一个实施例中,提供了一种数据处理方法。该方法包括:
获取与数据对象相关的至少一个记录项;其中,记录项中包含有主库针对所述数据对象的操作事件生成日志的日志标号及所述操作事件发生前所述数据对象的对象标号;
获取备库记录的所述数据对象的对象标号;
根据所述对象标号及所述至少一个记录项,判定所述主库中所述数据对象与所述备库中所述数据对象是否满足一致性要求。
在本申请的又一个实施例中,提供了一种数据处理方法。该方法包括:
获取日志的日志标号;其中,所述日志是所述主库针对数据对象的操作事件生成的;
获取所述操作事件发生前所述数据对象的对象标号;
为所述数据对象添加包含有所述日志标号及所述对象标号的记录项;
其中,所述记录项用于确定主库中所述数据对象与备库中的所述数据对象是否符合一致性要求。
在本申请的又一个实施例中,提供了一种处理设备。该处理设备包括:存储器及处理器,其中,
所述存储器,用于存储程序;
所述处理器,与所述存储器耦合,用于执行所述存储器中存储的所述程序,以用于:
针对数据对象的操作事件生成与所述操作事件相关的日志及日志标号;
获取所述数据对象的对象标号;
为所述数据对象添加记录项,其中,所述记录项中包含有所述日志标号及所述对象标号;
更改所述数据对象的对象标号。
在本申请的又一个实施例中,提供了一种处理设备。该处理设备包括:存储器及处理器,其中,
所述存储器,用于存储程序;
所述处理器,与所述存储器耦合,用于执行所述存储器中存储的所述程序,以用于:
获取与数据对象相关的至少一个记录项;其中,记录项中包含有主库针对所述数据对象的操作事件生成日志的日志标号及所述操作事件发生前所述数据对象的对象标号;
根据备库记载的所述数据对象的对象标号及所述至少一个记录项,确定第一日志;
根据所述第一日志,对所述数据对象进行相应的操作;
在所述操作完成的情况下,更改所述数据对象的对象标号。
在本申请的又一个实施例中,提供了一种处理设备。该处理设备包括:存储器及处理器,其中,
所述存储器,用于存储程序;
所述处理器,与所述存储器耦合,用于执行所述存储器中存储的所述程序,以用于:
获取与数据对象相关的至少一个记录项;其中,记录项中包含有主库在发生有针对所述数据对象的操作事件时生成日志的日志标号及所述操作事件发生前所述数据对象的对象标号;
获取备库记录的所述数据对象的对象标号;
根据所述对象标号及所述至少一个记录项,判定所述主库中所述数据对象与所述备库中所述数据对象是否满足一致性要求。
在本申请的又一个实施例中,提供了一种处理设备。该处理设备包括:存储器及处理器,其中,
所述存储器,用于存储程序;
所述处理器,与所述存储器耦合,用于执行所述存储器中存储的所述程序,以用于:
获取日志的日志标号;其中,所述日志是所述主库针对数据对象的操作事件生成的;
获取所述操作事件发生前所述数据对象的对象标号;
为所述数据对象添加包含有所述日志标号及所述对象标号的记录项;
其中,所述记录项用于确定主库中所述数据对象与备库中的所述数据对象是否符合一致性要求。
本申请一实施例提供的技术方案中,为数据对象新增一个对象标号;针对数据对象的操作事件,生成日志及日志标号;然后,将数据对象的对象标号与日志标号关联的保存为所述数据对象对应的记录项;再更改数据对象的对象标识;因记录项中保存的是数据对象在被操作前的对象标号及主库对数据对象执行操作后生成日志的日志标号;所以备库在数据回放时,可通过比较读入内存数据对象的对象标号与记录项中的对象标号是否一致,来确认备库当前数据对象是否与主库在执行操作前主库内该数据对象一致;实现方案简单,且高效。
本申请另一实施例提供的技术方案中,在备库比较出读入内存数据对象的对象标号与记录项中的对象标号一致后,再通过该记录项中保存的日志对象标识对应的日志进行数据回放,可有效的保证与主库内数据对象的一致性,提高了数据备份的准确性。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请一实施例提供的数据库管理系统的一种实现结构示意图;
图2为本申请一实施例提供的数据库管理系统的另一种实现结构示意图;
图3为本申请一实施例提供的数据处理方法的流程示意图;
图4为本申请一实施例提供的数据页的数据结构示意图;
图5为本申请一实施例提供的日志索引的原理性示意图;
图6为本申请另一实施例提供的数据处理方法的流程示意图;
图7为本申请又一实施例提供的数据处理方法的流程示意图;
图8为本申请又一实施例提供的数据处理方法的流程示意图;
图9为本申请一实施例提供的数据处理装置的结构示意图;
图10为本申请另一实施例提供的数据处理装置的结构示意图;
图11为本申请又一实施例提供的数据处理装置的结构示意图;
图12为本申请又一实施例提供的数据处理装置的结构示意图;
图13为本申请一实施例提供的处理设备的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。
在本申请的说明书、权利要求书及上述附图中描述的一些流程中,包含了按照特定顺序出现的多个操作,这些操作可以不按照其在本文中出现的顺序来执行或并行执行。操作的序号如101、102等,仅仅是用于区分各个不同的操作,序号本身不代表任何的执行顺序。另外,这些流程可以包括更多或更少的操作,并且这些操作可以按顺序执行或并行执行。需要说明的是,本文中的“第一”、“第二”等描述,是用于区分不同的消息、设备、模块等,不代表先后顺序,也不限定“第一”和“第二”是不同的类型。此外,下述各实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请一实施例提供一种数据库管理系统,该数据库管理系统包括:主库101及备库102。其中,
主库101,用于针对数据对象的操作事件,生成与所述操作事件相关的日志及日志标号;获取所述数据对象的对象标号;为所述数据对象添加记录项,其中,所述记录项中包含有所述日志标号及所述对象标号;更改所述数据对象的对象标号;
备库102,用于获取与数据对象相关的至少一个记录项;其中,记录项中包含有主库针对所述数据对象的操作事件生成日志的日志标号及所述操作事件发生前所述数据对象的对象标号;根据备库记载的所述数据对象的对象标号及所述至少一个记录项,确定第一日志;根据所述第一日志,对所述数据对象进行相应的操作;在所述操作完成的情况下,更改所述数据对象的对象标号。
本实施例提供的技术方案中,为数据对象新增一个对象标号;针对数据对象的操作事件,生成日志及日志标号;然后,将数据对象的对象标号与日志标号关联的保存为所述数据对象对应的记录项;再更改数据对象的对象标识;因记录项中保存的是数据对象在被操作前的对象标号及主库对数据对象执行操作后生成日志的日志标号;所以备库在数据回放时,可通过比较读入内存数据对象的对象标号与记录项中的对象标号是否一致,来确认备库当前数据对象是否与主库在执行操作前主库内该数据对象一致;实现方案简单,且高效。另外,在备库比较出读入内存数据对象的对象标号与记录项中的对象标号一致后,再通过该记录项中保存的日志对象标识对应的日志进行数据回放,可有效的保证与主库内数据对象的一致性,提高了数据备份的准确性。
为了简化叙述,本文中将主数据库简称为主库;将备用数据库简称为备库。本实施例提供的所述数据库管理系统可具有图1所示的系统架构。该系统架构中包括主库及备库。其中,备库可以是一个或多个。主库和备库可以是同一存储设备或存储集群中的不同存储单元(如不同磁盘、存储器等),或者主库和备库为不同的存储设备。当然,本实施例中提供的主库和备库还可以是云数据库中不同的计算节点,如图2所示。云数据库,如关系型云数据库,采用存储和计算分离的架构实现。采用多节点集群的架构,集群中包含有计算节点和存储节点,其中,如图2所示,计算节点包括主节点1(亦或称Writer节点)和从节点2(亦或称Reader节点);各节点通过分布式文件系统(PolarFileSystem)共享底层的共享存储(PolarStore)3。例如,数据由主节点1写入共享存储3,从节点2无需对共享存储3做写操作。一个集群中可包括一个主节点1以及多个从节点2,如图2所示的实例。其中,节点是虚拟化的数据库服务器,节点中可以创建和管理多个数据库。计算节点和存储节点通过网络连接,计算节点负责数据库的查找和计算功能,存储节点负责数据的存储。
在一种可实现的方案中,上述主库可创建并维护有日志索引,备库可从主库获取该日志索引;或者,备库中也维护有一个与主库同步的日志索引;其中,日志索引包含多个数据对象的对象标识及各对象标识对应的日志链表,日志链表用于存储按照添加时间顺序排列的记录项。
在另一种可实现的方案中,本实施例提供的所述系统还可包括:数据库管理装置;由数据库管理装置创建并维护有日志索引,其中,日志索引包含多个数据对象的对象标识及各对象标识对应的日志链表,日志链表用于存储按照添加时间顺序排列的记录项。相应的,所述数据库管理装置还用于在接收所述主库发送的针对所述数据对象的添加请求后,根据所述数据对象的对象标识,将所述添加请求中携带的所述记录项添加至所述对象标识对应的日志链表中;还用于在接收到所述备库发送的针对所述数据对象的获取请求后,根据所述数据对象的对象标识,从所述日志索引中查询所述对象标识对应的日志列表。
在一些实施例中,数据库管理装置可以集成在设备上具有嵌入式程序的硬件,或是安装在设备中的一个应用软件,还可以是嵌入在设备操作系统中的工具软件等。该设备可以是独立于主库和备库的第三方设备,或者是主库或备库所在设备中的至少一个。
本申请实施例提供的所述信息处理系统中各组成单元,如主库及备库的具体工作流程及之间的信令交互将在以下各实施例中作进一步的说明。
图3示出了本申请一实施例提供的数据处理方法的流程示意图。本实施例提供的所述方法的执行主体可以是数据库管理系统中的主库。具体的,所述方法包括:
201、针对数据对象的操作事件生成与所述操作事件相关的日志及日志标号。
202、获取所述数据对象的对象标号。
203、为所述数据对象添加记录项,其中,所述记录项中包含有所述日志标号及所述对象标号。
204、更改所述数据对象的对象标号。
上述201中,数据对象可以是存储在存储介质中的一个或一组数据,也可以是数据页。图4示出了一种数据页的数据结构示意图;数据页4是一些类型数据库(如SQL Server)用于组织数据库文件中数据的基本内部结构。数据页4包含有至少一个数据。数据页4可至少包括但不限于以下几个部分:页头41(标头)、数据区42(数据行和可用空间)。图4所示的数据页仅为实例性的,该数据页4中包含有页头41、以及包含数据行1、数据行2、数据行3和可用空间的数据区42。
日志标号可以是LSN(Log Sequence Number),LSN为每笔日志的唯一标号,且按照日志产生的顺序递增。主库在对自身的数据进行操作时,生成相应的操作记录并将这些操作记录记载在日志(如binlog,二进制日志)中。主库对数据的操作可包括:更新、插入、删除等。例如,主库将数据A更新为数据B时,生成将该数据A更新为数据B的操作记录,将该操作记录记载在binlog中,并根据日志产生的顺序为该binlog设置LSN。为该日志设置的LSN具体为上一次生成的日志的LSN加1。
上述202中,数据对象的对象标号是本实施例所特有的,该对象标号区别于数据对象的对象标识。对象标识用于区别与其他数据对象,数据对象只要不被删除,该数据对象的对象标识自始至终都不会改变。而本实施例中数据对象的对象标号是会发生变化的。
具体实施时,可在数据对象的数据结构中新增一个用于写入对象标号的字段。以数据对象为类似于图4所示的数据页为例,可在数据页4的页头41部分增加一个字段,该字段可用于写入数据对象的对象标号。或者,将数据对象的对象标号与数据对象关联存储,例如,建立一个如下表1所示的对象标识及对象标号的对应关系表:
具体实施时,可通过该对应关系,查询到某一对象标识对应数据对象的对象标号。
数据对象的对象标号,可是一个与LSN类似的标号;即,是一个按照产生顺序递增的一个标号。
上述203中,一个数据对象可对应有一个记录项或多个记录项。其中,记录项可简单理解为图5中所示数据对5。该数据对5包括:日志标号7及对象标号6。图5示出的是一种日志索引的原理性示意图。参见图5所示的日志索引6中包含有各对象标识对应数据对象的日志链表。例如,日志索引6中,对象标识PageN对应的日志链表中包含有两个记录项,分别为第一记录项51和第二记录项52;其中,第一记录项51包含有日志标号7和对象标号6;第二记录项52包含有日志标号9和对象标号8。
上述204中“更改所述数据对象的对象标号”,可包括:
将所述数据对象的对象标号更新为所述日志标号;或者
按照预设标号递增规则,增大所述数据对象的对象标号。
其中,预设标号递增规则,可以每更变一次递增加1或大于1的一个设定值,本实施例对此不作具体限定。
本实施例提供的技术方案中,为数据对象新增一个对象标号;针对数据对象的操作事件,生成日志及日志标号;然后,将数据对象的对象标号与日志标号关联的保存为所述数据对象对应的记录项;再更改数据对象的对象标识;因记录项中保存的是数据对象在被操作前的对象标号及主库对数据对象执行操作后生成日志的日志标号;所以备库在数据回放时,可通过比较读入内存数据对象的对象标号与记录项中的对象标号是否一致,来确认备库当前数据对象是否与主库在执行操作前主库内该数据对象一致;实现方案简单,且高效。另外,在备库比较出读入内存数据对象的对象标号与记录项中的对象标号一致后,再通过该记录项中保存的日志对象标识对应的日志进行数据回放,可有效的保证与主库内数据对象的一致性,提高了数据备份的准确性。
在一具体实现方案中,上述步骤103“为所述数据对象添加记录项”,可具体包括:
1031、获取所述数据对象对应的日志链表;
1032、将所述记录项添加到所述日志链表中;
其中,所述日志链表用于存储按照添加时间顺序排列的记录项。参见图5所示,每一个数据对象均对应有一个日志链表。具体实施时,可根据数据对象的对象标识(如页头信息),获取到该数据对象的日志链表。即,上述1031“获取所述数据对象对应的日志链表”,包括:
获取所述数据对象的对象标识;
通过日志索引,查询所述对象标识对应的日志链表。
其中,所述日志索引包含多个数据对象的对象标识及各对象标识对应的日志链表。
若数据库管理装置维护有日志索引,所述日志索引包含多个数据对象的对象标识及各对象标识对应的日志链表;且所述数据库管理装置布设在除所述主库和所述备库外的第三方设备上;相应的,本实施例中步骤“为所述数据对象添加记录项”,可包括:
向数据库管理装置发送针对所述数据对象的添加请求,以由所述数据库管理装置根据所述数据对象的对象标识,将所述添加请求中携带的所述记录项添加至所述对象标识对应的日志链表中。
进一步的,若备库也维护有日志索引,所述日志索引包含多个数据对象的对象标识及各对象标识对应的日志链表;相应的,本实施例提供的所述数据处理方法还可包括如下步骤:
向所述备库发送针对所述数据对象的同步信息,以便所述备库根据所述数据对象的对象标识,将所述同步信息中携带的所述记录项添加至所述对象标识对应的日志链表中,以完成日志索引的同步更新。
图6示出了本申请另一实施例提供的数据处理方法的流程示意图。本实施例提供的所述数据处理方法的执行主体可以备库。具体的,如图6所示,所述方法包括:
301、获取与数据对象相关的至少一个记录项;其中,记录项中包含有主库针对所述数据对象的操作事件生成日志的日志标号及所述操作事件发生前所述数据对象的对象标号。
302、根据备库记载的所述数据对象的对象标号及所述至少一个记录项,确定第一日志。
303、根据所述第一日志,对所述数据对象进行相应的操作。
304、在所述操作完成的情况下,更改所述数据对象的对象标号。
上述301中,所述数据对象可以是备库从存储区读入内存的一个或一组数据,还可以是数据页。其中,有关记录项的生成过程可参见上述实施例中的内容,此处不再赘述。
具体实施时,备库会创建一个I/O线程,通过该I/O线程读取主库保存的日志。备库可将读到的日志转换成中继日志(relay),转换的目的只是为了改变格式,当然日志转换也不是必须的步骤。备库会创建一个SQL线程,通过创建的SQL线程读取relay日志;备库根据读取到的日志,确定要进行操作的数据对象;然后,备库判断自身内存中是否已经写入了确定的数据对象,若已写入内存,则执行步骤301,即获取与所述数据对象相关的至少一个记录项;若未写入内存,则读取存储区中的所述数据对象并写入内存,再获取与所述数据对象相关的至少一个记录项。
上述302中,可通过比对对象标号与记录项中保存的对象标号的方式,来确定第一日志。例如,与数据对象相关的至少一个记录项有两个,如图5中所示的,对象标识PageN对应的日志链表中包含有两个记录项,分别为第一记录项51和第二记录项52;其中,第一记录项51包含有日志标号7和对象标号6;第二记录项52包含有日志标号9和对象标号8。备库记载的所述数据对象的对象标号为8;则比对出第二记录项52中保存的对象标号8与备库记载的数据对象的对象标号一致;此时,可根据第二记录项52中保存的日志标号9确定出对所述数据对象进行操作需基于的日志。
上述303中,备库可将日志解析为执行语句并执行,以对所述数据对象进行相应的操作。其中,解析成的执行语句中包含更新操作(update)语句、插入操作(insert)语句、删除操作(delete)语句等。
上述304中“更改所述数据对象的对象标号”,可具体包括:
将所述数据对象的对象标号更新为所述第一日志的日志标号;或者
按照预设标号递增规则,增大所述数据对象的对象标号。
本实施例提供的技术方案,利用与数据对象相关的至少一个记录项,在备库比较出读入内存数据对象的对象标号与记录项中的对象标号一致后,再通过该记录项中保存的日志对象标识对应的日志进行数据回放,可有效的保证与主库内数据对象的一致性,提高了数据备份的准确性。
进一步的,上述步骤301“获取与数据对象相关的至少一个记录项”,包括:
3011、获取所述数据对象的对象标识。
3012、获取日志索引。
3013、通过日志索引,查询所述对象标识对应的日志链表。
其中,参见图5所示,所述日志索引包含多个数据对象的对象标识及各对象标识对应的日志链表,所述日志链表用于存储按照添加时间顺序排列的记录项。
上述3012中“所述获取日志索引”,包括:
读取主库保存的所述日志索引;或者
读取数据库管理装置维护的所述日志索引;或者
获取本地存储的与所述主库同步更新的所述日志索引。
在一种可实现的技术方案中,上述步骤302中“根据备库记载的所述数据对象的对象标号及所述至少一个记录项,确定第一日志”,包括:
3021、在所述至少一个记录项中,查找第一记录项;其中,所述第一记录项中含有与备库记载的所述数据对象的对象标号相同的对象标号。
3022、根据所述第一记录项中包含的日志标号,获取所述第一日志。
进一步的,与数据对象相关的记录项为多个,且多个记录项按照添加时间顺序排列。相应的,上述步骤304“将所述数据对象的对象标号更新为所述第一日志的日志标号”之后,所述方法还包括:
305、在所述多个记录项中有比所述第一记录项的添加时间晚的第二记录项时,获取第二记录项。
306、比较所述第二记录项中包含的对象标号是否与所述数据对象的对象标号一致;
307、比较结果一致时,根据所述第二记录项中包含的日志标号,获取第二日志;并根据所述第二日志,对所述待操作对象进行相应的操作。
308、比较结果不一致时,得出主库中的所述数据对象与备库中的所述数据对象不符合一致性要求。
以图5中对象标识PageN的数据对象对应的日志列表为例,假设,第一记录项51为图5中的数据对;在日志链表中还存在有添加时间晚于第一记录项51的第二记录项52。备库在基于第一记录项51中日志标号7对应的日志完成对所述数据对象的操作后,还需继续通过上述306~308继续对该数据对象进行处理。
进一步的,本实施例提供的所述数据处理方法还可包括如下步骤:
309、根据备库记载的所述数据对象的对象标号及所述至少一个记录项确定第一日志的结果为空时,得出主库中的所述数据对象与备库中的所述数据对象不符合一致性要求。
图7示出了本申请又一实施例提供的数据处理方法的流程示意图。本实施例提供的所述方法的执行主体可以是上述系统实施例中的备库或是数据库管理装置。如图7所示,所述方法包括:
401、获取与数据对象相关的至少一个记录项;其中,记录项中包含有主库针对所述数据对象的操作事件生成日志的日志标号及所述操作事件发生前所述数据对象的对象标号。
402、获取备库记录的所述数据对象的对象标号。
403、根据所述对象标号及所述至少一个记录项,判定所述主库中所述数据对象与所述备库中所述数据对象是否满足一致性要求。
有关上述步骤401~402可参见上述实施例中的内容,此处不再赘述。
在一种可实现的技术方案中,上述步骤403“根据所述对象标号及所述至少一个记录项,判定所述主库中所述数据对象与所述备库中所述数据对象是否满足一致性要求”,包括:
4031、在所述至少一个记录项中,查询包含有所述备库记录的所述数据对象的对象标号的记录项。
4032、查询结果为空时,确定所述主库中所述数据对象与所述备库中所述数据对象不满足一致性要求。
4033、查询结果为查询到第一记录项中包含有所述备库记录的所述数据对象的对象标号时,确定所述主库中所述数据对象与所述备库中所述数据对象满足一致性要求。
进一步的,本实施例提供的所述方法还可包括如下步骤:
404、根据所述第一记录项中保存的第一日志标号,获取第一日志。
405、根据所述第一日志,对所述数据对象进行操作以保持与所述主库同步。
上述步骤404~405是承接上述步骤4033之后,即在查询结果为查询到所述第一记录项的前提下执行的。
图8示出了本申请一实施例提供的数据处理方法的流程示意图。本实施实施例提供的所述方法的执行主体可以是上述系统实施例中的主库或数据库管理装置。如图8所示,所述方法包括:
501、获取日志的日志标号;其中,所述日志是所述主库针对数据对象的操作事件生成的。
502、获取所述操作事件发生前所述数据对象的对象标号。
503、为所述数据对象添加包含有所述日志标号及所述对象标号的记录项。
其中,所述记录项用于确定主库中所述数据对象与备库中的所述数据对象是否符合一致性要求。
有关上述501~503可参见上述各实施例中的内容,此处不再赘述。
在一种可实现的技术方案中,上述步骤503“为所述数据对象添加包含有所述日志标号及所述对象标号的记录项”,包括:
5031、获取日志索引,其中,所述日志索引包含多个数据对象的对象标识及各对象标识对应的日志链表,日志链表用于存储按照添加时间顺序排列的记录项。
5032、根据所述数据对象的对象标识,获取所述数据对象的日志链表。
5033、将所述记录项添加到所述数据对象的日志链表中。
下面以采用LSN值作为对象标号,且数据对象为数据页为例,对本申请提供的技术方案进行说明。本方案创建基于数据页的日志索引,日志索引中包含有对象标识(即页标识)及日志链表,如图5所示。下面将分别从主库和从库的角度,分别进行说明:
主库数据处理流程包括:
S11、主库记录数据页当前的LSN1;
S12、主库对数据页进行写操作,生成相应的一笔日志和该笔日志的LSN2;
S13、主库在数据页的日志链表中添加一笔记录项,保存当前日志的LSN2和当前数据页的LSN1。
具体实施时,当前数据页的LSN1也叫作Previous LSN。
S14、主库更新数据页的LSN1为当前日志的LSN2。
备库侧的处理流程包括:
S21、备库基于日志索引,得到当前内存写入数据页的日志链表;
S22、备库基于日志链表和当前备库记载的数据页的LSN3,找到回放的起始点。
实质上,寻找回放起始点就是在日志链表中查找包含有所述LSN3的记录项A。包含有LSN3的记录项即为回放起始点。
S23、备库找到起始点后,根据起始点记录项A中保存的LSN4,获取日志A;然后根据该日志A,对所述数据页进行回放操作;并将数据页的LSN3更新为LSN4。若起始点后还有记录项B,则进入S24;否则,将回放操作后的所述数据页返回。
S24、备库比较记录项B中保存的对象标识是否是LSN4,若是,则根据记录项B中保存的LSN5,获取日志B;并根据日志B,对所述数据页进行回放操作;并将数据页的LSN4更新为LSN5。
S25、备库未找到起始点,则判定备库中所述数据页与主库中的数据页不一致,回放失败。
上述实施例中,为每个数据页增设了一个LSN,这个LSN能唯一标识数据页的版本,能反映过去时间数据页的变化。利用基于数据页的日志索引将数据页版本变化与相应日志对应,便于备库通过查询以判断是否与主库一致,且能在与主库保持一致的前提下完成数据页的回放。
图9示出了本申请一实施例提供的数据处理装置的结构示意图。如图9所示,所述数据处理装置包括:生成模块11、获取模块12、添加模块13及更改模块14。其中,所述生成模块11用于针对数据对象的操作事件生成与所述操作事件相关的日志及日志标号。所述获取模块12用于获取所述数据对象的对象标号。所述添加模块13用于为所述数据对象添加记录项,其中,所述记录项中包含有所述日志标号及所述对象标号。所述更改模块14用于更改所述数据对象的对象标号。
本实施例提供的技术方案中,为数据对象新增一个对象标号;针对数据对象的操作事件,生成日志及日志标号;然后,将数据对象的对象标号与日志标号关联的保存为所述数据对象对应的记录项;再更改数据对象的对象标识;因记录项中保存的是数据对象在被操作前的对象标号及主库对数据对象执行操作后生成日志的日志标号;所以备库在数据回放时,可通过比较读入内存数据对象的对象标号与记录项中的对象标号是否一致,来确认备库当前数据对象是否与主库在执行操作前主库内该数据对象一致;实现方案简单,且高效。另外,在备库比较出读入内存数据对象的对象标号与记录项中的对象标号一致后,再通过该记录项中保存的日志对象标识对应的日志进行数据回放,可有效的保证与主库内数据对象的一致性,提高了数据备份的准确性。
进一步的,所述添加模块13还用于:获取所述数据对象对应的日志链表;将所述记录项添加到所述日志链表中;其中,所述日志链表用于存储按照添加时间顺序排列的记录项。
进一步的,所述添加模块13还用于:获取所述数据对象的对象标识;通过日志索引,查询所述对象标识对应的日志链表。其中,所述日志索引包含多个数据对象的对象标识及各对象标识对应的日志链表。
进一步的,所述更改模块14还用于:将所述数据对象的对象标号更新为所述日志标号;或者按照预设标号递增规则,增大所述数据对象的对象标号。
进一步的,数据库管理装置维护有日志索引,所述日志索引包含多个数据对象的对象标识及各对象标识对应的日志链表。相应的,所述添加模块13还用于:向数据库管理装置发送针对所述数据对象的添加请求,以由所述数据库管理装置根据所述数据对象的对象标识,将所述添加请求中携带的所述记录项添加至所述对象标识对应的日志链表中。
进一步的,备库维护有日志索引,所述日志索引包含多个数据对象的对象标识及各对象标识对应的日志链表。相应的,所述数据处理装置还包括发送模块,该发送模块用于:向所述备库发送针对所述数据对象的同步信息,以便所述备库根据所述数据对象的对象标识,将所述同步信息中携带的所述记录项添加至所述对象标识对应的日志链表中,以完成日志索引的同步更新。
进一步的,所述数据对象为数据页,所述数据页包含有至少一个数据。
这里需要说明的是:上述实施例提供的数据处理装置可实现上述各方法实施例中描述的技术方案,上述各模块或单元具体实现的原理可参见上述各方法实施例中的相应内容,此处不再赘述。
图10示出了本申请一实施例提供的数据处理装置的结构示意图。如图10所示,所述数据处理装置包括:获取模块21、确定模块22、操作模块23及更改模块24。其中,所述获取模块21用于获取与数据对象相关的至少一个记录项;其中,记录项中包含有主库针对所述数据对象的操作事件生成日志的日志标号及所述操作事件发生前所述数据对象的对象标号。所述确定模块22用于根据备库记载的所述数据对象的对象标号及所述至少一个记录项,确定第一日志。所述操作模块23用于根据所述第一日志,对所述数据对象进行相应的操作。所述更改模块24用于在所述操作完成的情况下,更改所述数据对象的对象标号。
本实施例提供的技术方案中,在比较备库记载的数据对象的对象标号与记录项中的对象标号一致后,再通过该记录项中保存的日志对象标识对应的日志进行数据回放,可有效的保证与主库内数据对象的一致性,提高了数据备份的准确性。
进一步的,所述获取模块21还用于:获取所述数据对象的对象标识;获取日志索引;通过日志索引,查询所述对象标识对应的日志链表;其中,所述日志索引包含多个数据对象的对象标识及各对象标识对应的日志链表,所述日志链表用于存储按照添加时间顺序排列的记录项。
进一步的,所述获取模块21还用于:
读取主库保存的所述日志索引;或者
读取数据库管理装置维护的所述日志索引;或者
获取本地存储的与所述主库同步更新的所述日志索引。
进一步的,所述确定模块22还用于:在所述至少一个记录项中,查找第一记录项;其中,所述第一记录项中含有与备库记载的所述数据对象的对象标号相同的对象标号;根据所述第一记录项中包含的日志标号,获取所述第一日志。
进一步的,与数据对象相关的记录项为多个,且多个记录项按照添加时间顺序排列;相应的,本实施例提供的所述数据处理装置中:
所述获取模块21,还用于在所述多个记录项中有比所述第一记录项的添加时间晚的第二记录项时,获取第二记录项;
所述确定模块22,还用于比较所述第二记录项中包含的对象标号是否与所述数据对象的对象标号一致;比较结果一致时,根据所述第二记录项中包含的日志标号,获取第二日志;并根据所述第二日志,对所述待操作对象进行相应的操作;比较结果不一致时,得出主库中的所述数据对象与备库中的所述数据对象不符合一致性要求。
进一步的,所述确定模块22还用于:
根据备库记载的所述数据对象的对象标号及所述至少一个记录项确定第一日志的结果为空时,得出主库中的所述数据对象与备库中的所述数据对象不符合一致性要求。
进一步的,所述更改模块24还用于:
将所述数据对象的对象标号更新为所述第一日志的日志标号;或者
按照预设标号递增规则,增大所述数据对象的对象标号。
进一步的,所述数据对象为从存储区读入内存的数据页。
这里需要说明的是:上述实施例提供的数据处理装置可实现上述各方法实施例中描述的技术方案,上述各模块或单元具体实现的原理可参见上述各方法实施例中的相应内容,此处不再赘述。
图11示出了本申请一实施例提供的数据处理装置的结构示意图。如图11所示,所述数据处理装置包括:获取模块31及判定模块32。其中,所述获取模块31用于获取与数据对象相关的至少一个记录项;其中,记录项中包含有主库针对所述数据对象的操作事件生成日志的日志标号及所述操作事件发生前所述数据对象的对象标号;获取备库记录的所述数据对象的对象标号。所述判定模块32用于根据所述对象标号及所述至少一个记录项,判定所述主库中所述数据对象与所述备库中所述数据对象是否满足一致性要求。
本实施例提供的技术方案中,为数据对象新增一个对象标号;针对数据对象的操作事件,生成日志及日志标号;然后,将数据对象的对象标号与日志标号关联的保存为所述数据对象对应的记录项;再更改数据对象的对象标识;因记录项中保存的是数据对象在被操作前的对象标号及主库对数据对象执行操作后生成日志的日志标号;所以备库在数据回放时,可通过比较读入内存数据对象的对象标号与记录项中的对象标号是否一致,来确认备库当前数据对象是否与主库在执行操作前主库内该数据对象一致;实现方案简单,且高效。
进一步的,所述判定模块32还用于:
在所述至少一个记录项中,查询包含有所述备库记录的所述数据对象的对象标号的记录项;
查询结果为空时,确定所述主库中所述数据对象与所述备库中所述数据对象不满足一致性要求;
查询结果为查询到第一记录项中包含有所述备库记录的所述数据对象的对象标号时,确定所述主库中所述数据对象与所述备库中所述数据对象满足一致性要求。
进一步的,所述数据处理装置还可包括:
所述获取模块31,用于根据所述第一记录项中保存的第一日志标号,获取第一日志;
操作模块,用于根据所述第一日志,对所述数据对象进行操作以保持与所述主库同步。
进一步的,所述数据对象为从存储区读入内存的数据页。
这里需要说明的是:上述实施例提供的数据处理装置可实现上述各方法实施例中描述的技术方案,上述各模块或单元具体实现的原理可参见上述各方法实施例中的相应内容,此处不再赘述。
图12示出了本申请一实施例提供的数据处理装置的结构示意图。如图12所示,所述数据处理装置包括:获取模块41及添加模块42。其中,所述获取模块41用于获取日志的日志标号;其中,所述日志是所述主库针对数据对象的操作事件生成的;获取所述操作事件发生前所述数据对象的对象标号。所述添加模块42用于为所述数据对象添加包含有所述日志标号及所述对象标号的记录项;其中,所述记录项用于确定主库中所述数据对象与备库中的所述数据对象是否符合一致性要求。
本实施例提供的技术方案中,为数据对象新增一个对象标号;针对数据对象的操作事件,生成日志及日志标号;然后,将数据对象的对象标号与日志标号关联的保存为所述数据对象对应的记录项;再更改数据对象的对象标识;因记录项中保存的是数据对象在被操作前的对象标号及主库对数据对象执行操作后生成日志的日志标号;所以备库在数据回放时,可通过比较读入内存数据对象的对象标号与记录项中的对象标号是否一致,来确认备库当前数据对象是否与主库在执行操作前主库内该数据对象一致;实现方案简单,且高效。
进一步的,所述添加模块42还用于:
获取日志索引,其中,所述日志索引包含多个数据对象的对象标识及各对象标识对应的日志链表,日志链表用于存储按照添加时间顺序排列的记录项;
根据所述数据对象的对象标识,获取所述数据对象的日志链表;
将所述记录项添加到所述数据对象的日志链表中。
这里需要说明的是:上述实施例提供的数据处理装置可实现上述各方法实施例中描述的技术方案,上述各模块或单元具体实现的原理可参见上述各方法实施例中的相应内容,此处不再赘述。
图13示出了本申请一实施例提供的处理设备的结构示意图。如图13所示,所述处理设备包括:存储器51及处理器52,其中,
所述存储器51,用于存储程序;
所述处理器52,与所述存储器51耦合,用于执行所述存储器51中存储的所述程序,以用于:
针对数据对象的操作事件生成与所述操作事件相关的日志及日志标号;
获取所述数据对象的对象标号;
为所述数据对象添加记录项,其中,所述记录项中包含有所述日志标号及所述对象标号;
更改所述数据对象的对象标号。
上述存储器51可被配置为存储其它各种数据以支持在处理设备上的操作。这些数据的示例包括用于在处理设备上操作的任何应用程序或方法的指令。存储器51可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
上述处理器52在执行存储器51中的程序时,除了上面的功能之外,还可实现其它功能,具体可参见前面各实施例的描述。
进一步,如图13所示,客户端设备还包括:通信组件53、显示器54、电源组件55、音频组件56等其它组件。图13中仅示意性给出部分组件,并不意味着处理设备只包括图13所示组件。
本申请另一实施例还提供了一种处理设备。本实施例提供的所述处理设备的结构同上述处理设备类同,可参见图13所示。具体的,所述处理设备包括:存储器及处理器,其中,
所述存储器,用于存储程序;
所述处理器,与所述存储器耦合,用于执行所述存储器中存储的所述程序,以用于:
获取与数据对象相关的至少一个记录项;其中,记录项中包含有主库针对所述数据对象的操作事件生成日志的日志标号及所述操作事件发生前所述数据对象的对象标号;
根据备库记载的所述数据对象的对象标号及所述至少一个记录项,确定第一日志;
根据所述第一日志,对所述数据对象进行相应的操作;
在所述操作完成的情况下,更改所述数据对象的对象标号。
其中,处理器在执行存储器中的程序时,除了上面的功能之外,还可实现其它功能,具体可参见前面各实施例的描述。
本申请又一实施例还提供了一种处理设备。该处理设备在结构上与上述图13所示的处理设备类同。具体的,所述处理设备包括:存储器及处理器,其中,
所述存储器,用于存储程序;
所述处理器,与所述存储器耦合,用于执行所述存储器中存储的所述程序,以用于:
获取与数据对象相关的至少一个记录项;其中,记录项中包含有主库针对所述数据对象的操作事件生成日志的日志标号及所述操作事件发生前所述数据对象的对象标号;
获取备库记录的所述数据对象的对象标号;
根据所述对象标号及所述至少一个记录项,判定所述主库中所述数据对象与所述备库中所述数据对象是否满足一致性要求。
进一步的,处理器在执行存储器中的程序时,除了上面的功能之外,还可实现其它功能,具体可参见前面各实施例的描述。
本申请又一个实施例还提供了一种处理设备。该处理设备在结构上与上述图13所示的处理设备类同。具体的,所述处理设备包括:存储器及处理器,其中,
所述存储器,用于存储程序;
所述处理器,与所述存储器耦合,用于执行所述存储器中存储的所述程序,以用于:
获取日志的日志标号;其中,所述日志是所述主库针对数据对象的操作事件生成的;
获取所述操作事件发生前所述数据对象的对象标号;
为所述数据对象添加包含有所述日志标号及所述对象标号的记录项;
其中,所述记录项用于确定主库中所述数据对象与备库中的所述数据对象是否符合一致性要求。
相应地,本申请实施例还提供一种存储有计算机程序的计算机可读存储介质,所述计算机程序被计算机执行时能够实现上述各实施例提供的数据处理方法的步骤或功能。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。
Claims (27)
1.一种数据处理方法,其特征在于,包括:
针对数据对象的操作事件生成与所述操作事件相关的日志及日志标号;
获取所述数据对象的对象标号;
为所述数据对象添加记录项,其中,所述记录项中包含有所述日志标号及所述对象标号;
更改所述数据对象的对象标号。
2.根据权利要求1所述的方法,其特征在于,为所述数据对象添加记录项,包括:
获取所述数据对象对应的日志链表;
将所述记录项添加到所述日志链表中;
其中,所述日志链表用于存储按照添加时间顺序排列的记录项。
3.根据权利要求2所述的方法,其特征在于,获取所述数据对象对应的日志链表,包括:
获取所述数据对象的对象标识;
通过日志索引,查询所述对象标识对应的日志链表;
其中,所述日志索引包含多个数据对象的对象标识及各对象标识对应的日志链表。
4.根据权利要求1至3中任一项所述的方法,其特征在于,更改所述数据对象的对象标号,包括:
将所述数据对象的对象标号更新为所述日志标号;或者
按照预设标号递增规则,增大所述数据对象的对象标号。
5.根据权利要求1至3中任一项所述的方法,其特征在于,数据库管理装置维护有日志索引,所述日志索引包含多个数据对象的对象标识及各对象标识对应的日志链表;以及
为所述数据对象添加记录项,包括:
向数据库管理装置发送针对所述数据对象的添加请求,以由所述数据库管理装置根据所述数据对象的对象标识,将所述添加请求中携带的所述记录项添加至所述对象标识对应的日志链表中。
6.根据权利要求1至3中任一项所述的方法,其特征在于,备库维护有日志索引,所述日志索引包含多个数据对象的对象标识及各对象标识对应的日志链表;以及
所述方法,还包括:
向所述备库发送针对所述数据对象的同步信息,以便所述备库根据所述数据对象的对象标识,将所述同步信息中携带的所述记录项添加至所述对象标识对应的日志链表中,以完成日志索引的同步更新。
7.根据权利要求1至3中任一项所述的方法,其特征在于,所述数据对象为数据页,所述数据页包含有至少一个数据。
8.一种数据处理方法,其特征在于,包括:
获取与数据对象相关的至少一个记录项;其中,记录项中包含有主库针对所述数据对象的操作事件生成日志的日志标号及所述操作事件发生前所述数据对象的对象标号;
根据备库记载的所述数据对象的对象标号及所述至少一个记录项,确定第一日志;
根据所述第一日志,对所述数据对象进行相应的操作;
在所述操作完成的情况下,更改所述数据对象的对象标号。
9.根据权利要求8所述的方法,其特征在于,获取与数据对象相关的至少一个记录项,包括:
获取所述数据对象的对象标识;
获取日志索引;
通过日志索引,查询所述对象标识对应的日志链表;
其中,所述日志索引包含多个数据对象的对象标识及各对象标识对应的日志链表,所述日志链表用于存储按照添加时间顺序排列的记录项。
10.根据权利要求9所述的方法,其特征在于,所述获取日志索引,包括:
读取主库保存的所述日志索引;或者
读取数据库管理装置维护的所述日志索引;或者
获取本地存储的与所述主库同步更新的所述日志索引。
11.根据权利要求8至10中任一项所述的方法,其特征在于,根据备库记载的所述数据对象的对象标号及所述至少一个记录项,确定第一日志,包括:
在所述至少一个记录项中,查找第一记录项;其中,所述第一记录项中含有与备库记载的所述数据对象的对象标号相同的对象标号;
根据所述第一记录项中包含的日志标号,获取所述第一日志。
12.根据权利要求11所述的方法,其特征在于,与数据对象相关的记录项为多个,且多个记录项按照添加时间顺序排列,以及
将所述数据对象的对象标号更新为所述第一日志的日志标号之后,所述方法还包括:
在所述多个记录项中有比所述第一记录项的添加时间晚的第二记录项时,获取第二记录项;
比较所述第二记录项中包含的对象标号是否与所述数据对象的对象标号一致;
比较结果一致时,根据所述第二记录项中包含的日志标号,获取第二日志;并根据所述第二日志,对所述待操作对象进行相应的操作;
比较结果不一致时,得出主库中的所述数据对象与备库中的所述数据对象不符合一致性要求。
13.根据权利要求8至10中任一项所述的方法,其特征在于,还包括:
根据备库记载的所述数据对象的对象标号及所述至少一个记录项确定第一日志的结果为空时,得出主库中的所述数据对象与备库中的所述数据对象不符合一致性要求。
14.根据权利要求8至10中任一项所述的方法,其特征在于,更改所述数据对象的对象标号,包括:
将所述数据对象的对象标号更新为所述第一日志的日志标号;或者
按照预设标号递增规则,增大所述数据对象的对象标号。
15.根据权利要求8至10中任一项所述的方法,其特征在于,所述数据对象为从存储区读入内存的数据页。
16.一种数据库管理系统,其特征在于,包括:
主库,用于针对数据对象的操作事件生成与所述操作事件相关的日志及日志标号;获取所述数据对象的对象标号;为所述数据对象添加记录项,其中,所述记录项中包含有所述日志标号及所述对象标号;更改所述数据对象的对象标号;
备库,用于获取与数据对象相关的至少一个记录项;其中,记录项中包含有主库针对所述数据对象的操作事件生成日志的日志标号及所述操作事件发生前所述数据对象的对象标号;根据备库记载的所述数据对象的对象标号及所述至少一个记录项,确定第一日志;根据所述第一日志,对所述数据对象进行相应的操作;在所述操作完成的情况下,更改所述数据对象的对象标号。
17.根据权利要求16所述的数据库管理系统,其特征在于,还包括:
数据库管理装置,用于维护日志索引,所述日志索引包含多个数据对象的对象标识及各对象标识对应的日志链表,日志链表用于存储按照添加时间顺序排列的记录项;
还用于在接收所述主库发送的针对所述数据对象的添加请求后,根据所述数据对象的对象标识,将所述添加请求中携带的所述记录项添加至所述对象标识对应的日志链表中;
还用于在接收到所述备库发送的针对所述数据对象的获取请求后,根据所述数据对象的对象标识,从所述日志索引中查询所述对象标识对应的日志列表。
18.一种数据处理方法,其特征在于,包括:
获取与数据对象相关的至少一个记录项;其中,记录项中包含有主库针对所述数据对象的操作事件生成日志的日志标号及所述操作事件发生前所述数据对象的对象标号;
获取备库记录的所述数据对象的对象标号;
根据所述对象标号及所述至少一个记录项,判定所述主库中所述数据对象与所述备库中所述数据对象是否满足一致性要求。
19.根据权利要求18所述的方法,其特征在于,根据所述对象标号及所述至少一个记录项,判定所述主库中所述数据对象与所述备库中所述数据对象是否满足一致性要求,包括:
在所述至少一个记录项中,查询包含有所述备库记录的所述数据对象的对象标号的记录项;
查询结果为空时,确定所述主库中所述数据对象与所述备库中所述数据对象不满足一致性要求;
查询结果为查询到第一记录项中包含有所述备库记录的所述数据对象的对象标号时,确定所述主库中所述数据对象与所述备库中所述数据对象满足一致性要求。
20.根据权利要求18所述的方法,其特征在于,还包括:
根据所述第一记录项中保存的第一日志标号,获取第一日志;
根据所述第一日志,对所述数据对象进行操作以保持与所述主库同步。
21.根据权利要求18至20中任一项所述的方法,其特征在于,所述数据对象为从存储区读入内存的数据页。
22.一种数据处理方法,其特征在于,包括:
获取日志的日志标号;其中,所述日志是所述主库针对数据对象的操作事件生成的;
获取所述操作事件发生前所述数据对象的对象标号;
为所述数据对象添加包含有所述日志标号及所述对象标号的记录项;
其中,所述记录项用于确定主库中所述数据对象与备库中的所述数据对象是否符合一致性要求。
23.根据权利要求22所述的方法,其特征在于,为所述数据对象添加包含有所述日志标号及所述对象标号的记录项,包括:
获取日志索引,其中,所述日志索引包含多个数据对象的对象标识及各对象标识对应的日志链表,日志链表用于存储按照添加时间顺序排列的记录项;
根据所述数据对象的对象标识,获取所述数据对象的日志链表;
将所述记录项添加到所述数据对象的日志链表中。
24.一种处理设备,其特征在于,包括:存储器及处理器,其中,
所述存储器,用于存储程序;
所述处理器,与所述存储器耦合,用于执行所述存储器中存储的所述程序,以用于:
针对数据对象的操作事件生成与所述操作事件相关的日志及日志标号;
获取所述数据对象的对象标号;
为所述数据对象添加记录项,其中,所述记录项中包含有所述日志标号及所述对象标号;
更改所述数据对象的对象标号。
25.一种处理设备,其特征在于,包括:存储器及处理器,其中,
所述存储器,用于存储程序;
所述处理器,与所述存储器耦合,用于执行所述存储器中存储的所述程序,以用于:
获取与数据对象相关的至少一个记录项;其中,记录项中包含有主库针对所述数据对象的操作事件生成日志的日志标号及所述操作事件发生前所述数据对象的对象标号;
根据备库记载的所述数据对象的对象标号及所述至少一个记录项,确定第一日志;
根据所述第一日志,对所述数据对象进行相应的操作;
在所述操作完成的情况下,更改所述数据对象的对象标号。
26.一种处理设备,其特征在于,包括:存储器及处理器,其中,
所述存储器,用于存储程序;
所述处理器,与所述存储器耦合,用于执行所述存储器中存储的所述程序,以用于:
获取与数据对象相关的至少一个记录项;其中,记录项中包含有主库针对所述数据对象的操作事件生成日志的日志标号及所述操作事件发生前所述数据对象的对象标号;
获取备库记录的所述数据对象的对象标号;
根据所述对象标号及所述至少一个记录项,判定所述主库中所述数据对象与所述备库中所述数据对象是否满足一致性要求。
27.一种处理设备,其特征在于,包括:存储器及处理器,其中,
所述存储器,用于存储程序;
所述处理器,与所述存储器耦合,用于执行所述存储器中存储的所述程序,以用于:
获取日志的日志标号;其中,所述日志是所述主库针对数据对象的操作事件生成的;
获取所述操作事件发生前所述数据对象的对象标号;
为所述数据对象添加包含有所述日志标号及所述对象标号的记录项;
其中,所述记录项用于确定主库中所述数据对象与备库中的所述数据对象是否符合一致性要求。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911350290.1A CN113032408B (zh) | 2019-12-24 | 2019-12-24 | 数据处理方法、系统及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911350290.1A CN113032408B (zh) | 2019-12-24 | 2019-12-24 | 数据处理方法、系统及设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113032408A true CN113032408A (zh) | 2021-06-25 |
CN113032408B CN113032408B (zh) | 2024-05-07 |
Family
ID=76451932
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911350290.1A Active CN113032408B (zh) | 2019-12-24 | 2019-12-24 | 数据处理方法、系统及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113032408B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115577197A (zh) * | 2022-12-07 | 2023-01-06 | 杭州城市大数据运营有限公司 | 组件发现的方法、系统和装置 |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1784677A (zh) * | 2004-03-31 | 2006-06-07 | 微软公司 | 用于数据库备份的一致性检验的系统和方法 |
CN101916300A (zh) * | 2010-09-01 | 2010-12-15 | 中国地质大学(武汉) | 基于数据内容的三维空间数据自适应日志管理方法 |
CN102693174A (zh) * | 2012-06-06 | 2012-09-26 | 武汉大学 | 一种面向对象代理数据库约束的备份方法 |
US20160321142A1 (en) * | 2015-04-28 | 2016-11-03 | International Business Machines Corporation | Database recovery and index rebuilds |
US9558077B1 (en) * | 2016-06-16 | 2017-01-31 | International Business Machines Corporation | Relational database recovery |
CN106933703A (zh) * | 2015-12-30 | 2017-07-07 | 阿里巴巴集团控股有限公司 | 一种数据库数据备份的方法、装置及电子设备 |
CN107402963A (zh) * | 2017-06-20 | 2017-11-28 | 阿里巴巴集团控股有限公司 | 搜索数据的构建方法、增量数据的推送方法及装置和设备 |
WO2018093094A1 (ko) * | 2016-11-16 | 2018-05-24 | 주식회사 실크로드소프트 | 데이터베이스 관리 시스템에서의 데이터 복제 기법 |
US20180246948A1 (en) * | 2017-02-28 | 2018-08-30 | Sap Se | Replay of Redo Log Records in Persistency or Main Memory of Database Systems |
CN108763578A (zh) * | 2018-06-07 | 2018-11-06 | 腾讯科技(深圳)有限公司 | 一种索引文件更新的方法以及服务器 |
CN109783200A (zh) * | 2017-11-13 | 2019-05-21 | 阿里巴巴集团控股有限公司 | 数据处理方法、装置及设备 |
CN110471909A (zh) * | 2019-08-26 | 2019-11-19 | 上海达梦数据库有限公司 | 一种数据库管理方法、装置、服务器及存储介质 |
-
2019
- 2019-12-24 CN CN201911350290.1A patent/CN113032408B/zh active Active
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1784677A (zh) * | 2004-03-31 | 2006-06-07 | 微软公司 | 用于数据库备份的一致性检验的系统和方法 |
CN101916300A (zh) * | 2010-09-01 | 2010-12-15 | 中国地质大学(武汉) | 基于数据内容的三维空间数据自适应日志管理方法 |
CN102693174A (zh) * | 2012-06-06 | 2012-09-26 | 武汉大学 | 一种面向对象代理数据库约束的备份方法 |
US20160321142A1 (en) * | 2015-04-28 | 2016-11-03 | International Business Machines Corporation | Database recovery and index rebuilds |
CN106933703A (zh) * | 2015-12-30 | 2017-07-07 | 阿里巴巴集团控股有限公司 | 一种数据库数据备份的方法、装置及电子设备 |
US9558077B1 (en) * | 2016-06-16 | 2017-01-31 | International Business Machines Corporation | Relational database recovery |
WO2018093094A1 (ko) * | 2016-11-16 | 2018-05-24 | 주식회사 실크로드소프트 | 데이터베이스 관리 시스템에서의 데이터 복제 기법 |
US20180246948A1 (en) * | 2017-02-28 | 2018-08-30 | Sap Se | Replay of Redo Log Records in Persistency or Main Memory of Database Systems |
CN107402963A (zh) * | 2017-06-20 | 2017-11-28 | 阿里巴巴集团控股有限公司 | 搜索数据的构建方法、增量数据的推送方法及装置和设备 |
CN109783200A (zh) * | 2017-11-13 | 2019-05-21 | 阿里巴巴集团控股有限公司 | 数据处理方法、装置及设备 |
CN108763578A (zh) * | 2018-06-07 | 2018-11-06 | 腾讯科技(深圳)有限公司 | 一种索引文件更新的方法以及服务器 |
CN110471909A (zh) * | 2019-08-26 | 2019-11-19 | 上海达梦数据库有限公司 | 一种数据库管理方法、装置、服务器及存储介质 |
Non-Patent Citations (1)
Title |
---|
杜晔;郭丽丽;: "空间实时内存数据库恢复机制研究与实现", 计算机工程与设计, no. 02, 16 February 2013 (2013-02-16) * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115577197A (zh) * | 2022-12-07 | 2023-01-06 | 杭州城市大数据运营有限公司 | 组件发现的方法、系统和装置 |
CN115577197B (zh) * | 2022-12-07 | 2023-10-27 | 杭州城市大数据运营有限公司 | 组件发现的方法、系统和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN113032408B (zh) | 2024-05-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108121782B (zh) | 查询请求的分配方法、数据库中间件系统以及电子设备 | |
CN106815218B (zh) | 数据库访问方法、装置和数据库系统 | |
US20150213100A1 (en) | Data synchronization method and system | |
US8195606B2 (en) | Batch data synchronization with foreign key constraints | |
US20130110873A1 (en) | Method and system for data storage and management | |
CN108509462B (zh) | 一种同步活动事务表的方法及装置 | |
CN106933703A (zh) | 一种数据库数据备份的方法、装置及电子设备 | |
CN104750755B (zh) | 一种数据库主备切换后的数据回补方法及系统 | |
CN113987064A (zh) | 数据处理方法、系统及设备 | |
CN111414424B (zh) | 一种配置数据自动同步redis的方法、系统、介质及设备 | |
CN111917834A (zh) | 一种数据同步方法、装置、存储介质及计算机设备 | |
CN111680017A (zh) | 一种数据同步的方法及装置 | |
CN110008197A (zh) | 一种数据处理方法、系统及电子设备和存储介质 | |
CN112328702A (zh) | 数据同步方法及系统 | |
CN115114370B (zh) | 主从数据库的同步方法、装置、电子设备和存储介质 | |
CN114416868B (zh) | 一种数据同步方法、装置、设备及存储介质 | |
CN113254460B (zh) | 数据处理方法、系统、电子设备及存储介质 | |
US20170270149A1 (en) | Database systems with re-ordered replicas and methods of accessing and backing up databases | |
CN113032408B (zh) | 数据处理方法、系统及设备 | |
CN116049306A (zh) | 数据同步方法、装置、电子设备以及可读存储介质 | |
Goncalves et al. | DottedDB: Anti-entropy without merkle trees, deletes without tombstones | |
CN114816247A (zh) | 一种逻辑数据获取方法及装置 | |
US20200249876A1 (en) | System and method for data storage management | |
CN103685350B (zh) | 存储系统的同步方法及相关的设备 | |
CN111444194A (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 |