CN116126620A - 数据库日志处理方法、数据库变更查询方法及相关装置 - Google Patents
数据库日志处理方法、数据库变更查询方法及相关装置 Download PDFInfo
- Publication number
- CN116126620A CN116126620A CN202210769590.9A CN202210769590A CN116126620A CN 116126620 A CN116126620 A CN 116126620A CN 202210769590 A CN202210769590 A CN 202210769590A CN 116126620 A CN116126620 A CN 116126620A
- Authority
- CN
- China
- Prior art keywords
- event
- change
- index
- log
- database
- 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/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3006—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is distributed, e.g. networked systems, clusters, multiprocessor systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3051—Monitoring arrangements for monitoring the configuration of the computing system or of the computing system component, e.g. monitoring the presence of processing resources, peripherals, I/O links, software programs
-
- 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/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
-
- 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
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Quality & Reliability (AREA)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Debugging And Monitoring (AREA)
Abstract
本申请公开了一种数据库日志处理方法、数据库表更查询方法及相关装置,用于解决现有的数据库变更检索方案存在的效率和准确率低的问题。所述数据库日志处理方法包括:解析业务数据库的数据变更日志,得到所述业务数据库的变更事件的事件信息,所述变更事件用于表示对所述业务数据库执行的数据变更操作,所述变更事件的事件信息包括所述变更事件的执行时间和所述变更事件所变更的业务数据表的元数据信息;创建所述业务数据库的变更事件对应的索引节点,所述索引节点用于存储对应的变更事件所变更的业务数据表的元数据信息;基于所述索引节点和所述变更事件的执行时间,创建事件索引表。
Description
技术领域
本申请涉及数据库技术领域,尤其涉及一种数据库日志处理方法、数据库变更查询方法及相关装置。
背景技术
随着互联网应用的高速发展,各类数据库应运而生并得到了规模的应用。数据库管理员(Database Administrator,DBA)在业务数据库运维着大量的数据库实例,因而不仅要掌握每个数据库实例的运行状态,还需要响应业务线的各种数据处理需求,比如导出某个时间范围内的变更事件相关数据、同步某段时间数据到其他数据库等。在DBA的日常管理中,经常会遇到检索业务数据库在过去某段时间内的数据变更操作数据等,以便对业务数据库进行备份和还原等。
目前,对于数据变更操作数据的检索,需要由DBA手动使用相关数据库工具对大量的业务数据库日志进行过滤检索,然后再将过滤出的日志进行解析和还原,才能得到业务数据库在过去某段时间内的数据变更操作数据。然而,这种人工检索和解析的方式高度依赖于人为经验,效率和准确率较低。
发明内容
本申请实施例的目的是提供一种数据库日志处理方法、数据库表更查询方法及相关装置,用于解决现有的数据库变更检索方案存在的效率和准确率低的问题。
为了实现上述目的,本申请实施例采用下述技术方案:
第一方面,本申请实施例提供一种数据库日志处理方法,包括:
解析业务数据库的数据变更日志,得到所述业务数据库的变更事件的事件信息,所述变更事件用于表示对所述业务数据库执行的数据变更操作,所述变更事件的事件信息包括所述变更事件的执行时间和所述变更事件所变更的业务数据表的元数据信息;
创建所述业务数据库的变更事件对应的索引节点,所述索引节点用于存储对应的变更事件所变更的业务数据表的元数据信息;
基于所述索引节点和所述变更事件的执行时间,创建事件索引表。
可以看出,本申请实施例中,由于业务数据库的数据变更日志以事件的形式记录了对业务数据库执行的数据变更操作,通过对业务数据库的数据变更日志进行解析,即可得到业务数据库的变更事件的执行时间及变更事件所变更的业务数据表的元数据信息等事件信息;进一步,通过为变更事件创建对应的索引节点来存储变更事件所变更的业务数据表的元数据信息,并基于索引节点及索引节点对应的变更事件的执行时间,创建事件索引表,这样,基于事件索引表即可快速查询到在过去某时间执行的变更事件及其所变更的业务数据表的元数据信息,进而基于查询到的变更事件及其所变更的业务数据表的元数据信息,即可快速确定出对业务数据库所执行的数据变更操作。可见,整个过程无需人工参与,也不需要增加额外的逻辑处理和日志数据还原处理等,实现简单、快捷,效率和准确率高。
第二方面,本申请实施例提供一种数据库变更查询方法,包括:
基于目标时间查询事件索引表,得到所述目标时间对应的目标索引节点,其中,所述事件索引表是基于业务数据库的变更事件对应的索引节点和所述变更事件的执行时间创建的,所述索引节点用于存储对应的变更事件所变更的业务数据表的元数据信息,所述变更事件的执行时间和所述变更事件所变更的业务数据表的元数据信息为通过解析所述业务数据库的数据变更日志得到;
基于所述目标索引节点对应的目标变更事件的事件类型和所述目标变更事件所变更的目标业务数据表的元数据信息,确定所述目标变更事件对应的数据操作语句。
可以看出,本申请实施例中,由于事件索引表中的索引节点存储了其所对应的变更事件所变更的业务数据表的元数据信息,通过查询事件索引表即可确定出在目标时间执行的目标变更事件及其所变更的业务数据表的元数据信息,进而基于目标变更事件及其所变更的业务数据表的元数据信息,即可快速确定出对业务数据库所执行的数据操作语句,可见,整个过程无需人工参与,也不需要增加额外的逻辑处理和日志数据还原处理等,实现简单、快捷,效率和准确率高。
第三方面,本申请实施例提供一种数据库日志处理装置,包括:
解析单元,用于解析业务数据库的数据变更日志,得到所述业务数据库的变更事件的事件信息,所述变更事件用于表示对所述业务数据库执行的数据变更操作,所述变更事件的事件信息包括所述变更事件的执行时间和所述变更事件所变更的业务数据表的元数据信息;
第一创建单元,用于创建所述业务数据库的变更事件对应的索引节点,所述索引节点用于存储对应的变更事件所变更的业务数据表的元数据信息;
第二创建单元,用于基于所述索引节点和所述变更事件的执行时间,创建事件索引表。
第四方面,本申请实施例提供一种数据库变更查询装置,包括:
查询单元,用于基于目标时间查询事件索引表,得到所述目标时间对应的目标索引节点,其中,所述事件索引表是基于业务数据库的变更事件对应的索引节点和所述变更事件的执行时间创建的,所述索引节点用于存储对应的变更事件所变更的业务数据表的元数据信息,所述变更事件的执行时间和所述变更事件所变更的业务数据表的元数据信息为通过解析所述业务数据库的数据变更日志得到;
第一语句确定单元,用于基于所述目标索引节点对应的目标变更事件的事件类型和所述目标变更事件所变更的目标业务数据表的元数据信息,确定所述目标变更事件对应的数据操作语句。
第五方面,本申请实施例提供一种电子设备,包括:
处理器;
用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述指令,以实现如第一方面或第二方面所述的方法。
第六方面,本申请实施例提供一种计算机可读存储介质,当所述存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行如第一方面或第二方面所述的方法。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1为本申请实施例提供的方法所适用的一种应用场景的示意图;
图2为本申请实施例提供的方法所适用的另一种应用场景的示意图;
图3本申请的一个实施例提供的一种数据库日志处理方法的流程示意图;
图4为本申请的一个实施例提供的一种事件索引表的结构示意图;
图5为本申请的一个实施例提供的一种数据库变更查询方法的流程示意图;
图6为本申请的另一个实施例提供的一种数据库变更查询方法的流程示意图;
图7为本申请的一个实施例提供的一种数据库日志处理装置的结构示意图;
图8为本申请的一个实施例提供的一种数据库变更查询装置的结构示意图;
图9为本申请的一个实施例提供的一种电子设备的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本说明书和权利要求书中的术语“第一”、“第二”等是用于区别类似的对象,而不用于描述特定的顺序或先后次序。应理解,这样使用的数据在适当情况下可以互换,以便本申请实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,本说明书和权利要求书中“和/或”表示所连接对象的至少其中之一,字符“/”一般表示前后关联对象是一种“或”的关系。
部分概念说明:
MYSQL:是业界最流行的关系型数据库系统之一,具有开源、性能优秀、系统功能扩展灵活等特点。
DML:Data Manipulation Language,简称数据操作语句,主要包括数据记录的添加语句、删除语句、更新语句和查询语句等。
BINLOG:MYSQL在执行数据库事务过程中记录事务变更的日志。BINLOG记录了所有的数据库模式定义语言(Data Definition Language,DDL)和DML,且以事件(EVENT)的形式记录。
CDC:Change Data Capture,简称变更数据获取。可以基于BINLOG日志,无侵入来完成获取数据库的增量变化数据。
如前所述,目前,对于数据变更操作数据的检索,需要由DBA手动使用相关数据库工具对大量的业务数据库日志进行过滤检索,然后再将过滤出的日志进行解析和还原,才能得到业务数据库在过去某段时间内的数据变更操作数据。然而,这种人工检索和解析的方式高度依赖于人为经验,效率和准确率较低。
为了解决现有的数据库变更检索方案存在的效率和准确率低的问题,本申请实施例提出了一种数据库日志处理方案和数据库表变更查询方案。本申请实施例提出的数据库日志处理方案,由于业务数据库的数据变更日志以事件的形式记录了对业务数据库执行的数据变更操作,通过对业务数据库的数据变更日志进行解析,即可得到业务数据库的变更事件的执行时间及变更事件所变更的业务数据表的元数据信息等事件信息;进一步,通过为变更事件创建对应的索引节点来存储变更事件所变更的业务数据表的元数据信息,并基于索引节点及索引节点对应的变更事件的执行时间,创建事件索引表,这样,基于事件索引表即可快速查询到在过去某时间执行的变更事件及其所变更的业务数据表的元数据信息,进而基于查询到的变更事件及其所变更的业务数据表的元数据信息,即可快速确定出对业务数据库所执行的数据变更操作。可见,整个过程无需人工参与,也不需要增加额外的逻辑处理和日志数据还原处理等,实现简单、快捷,效率和准确率高。
基于本申请实施例提出的数据库日志处理方案所创建的事件索引表,本申请实施例还提出一种数据库变更查询方法,由于事件索引表中的索引节点存储了其所对应的变更事件所变更的业务数据表的元数据信息,通过查询事件索引表即可确定出在目标时间执行的目标变更事件及其所变更的业务数据表的元数据信息,进而基于目标变更事件及其所变更的业务数据表的元数据信息,即可快速确定出对业务数据库所执行的数据操作语句,可见,整个过程无需人工参与,也不需要增加额外的逻辑处理和日志数据还原处理等,实现简单、快捷,效率和准确率高。
应理解,本申请实施例提供的数据库日志处理方法和数据库变更查询方法,均可以由电子设备或安装在电子设备中的软件执行。此处所谓的电子设备可以包括终端设备,比如智能手机、平板电脑、笔记本电脑、台式计算机、智能语音交互设备、智能家电、智能手表、车载终端、飞行器等;或者,电子设备还可以包括服务器,比如独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云计算服务的云服务器等。
以下结合附图,详细说明本申请各实施例提供的技术方案。
本申请实施例提供的数据库日志处理方法和数据库变更查询方法的,均可以应用于图1和图2所示的应用场景中,该应用场景包括:数据库系统1和数据库管理平台2。
其中,数据库系统1部署有业务数据库11。业务数据库11中存储有至少一个业务数据表,业务数据表用于记录业务处理过程中的各种业务数据,比如用户信息表用于记录业务处理过程中各种已授权的用户信息(比如用户名、用户标识、用户所属区域、用户消费等级等)。业务处理过程中,业务处理方不免会对业务数据库11进行数据操作,比如数据添加操作(即向业务数据库的业务数据表中添加数据)、数据删除操作(即删除业务数据库的业务数据表中记录的数据)、数据更新操作(即更新业务数据库的业务数据表中记录的数据)以及数据查询操作(即查询业务数据库的业务数据表中记录的数据)等。
数据库系统1基于对业务数据库11执行的数据操作,生成相应的数据变更日志12,该数据变更日志12以事件的形式,记录对业务数据库11执行的数据操作信息,比如变更的业务数据表和实现变更操作的数据操作语句等。
实际应用中,数据库系统1可以为任意适当的类型,具体可根据实际需要进行设置,本申请实施例对此不作限定。示例地,业务数据库系统1可以为MYSQL,相应地,生成的数据变更日志12可以为BINLOG,数据操作语句可以为结构化查询语句(Structured QueryLanguage,SQL)等。
如图1所示,数据库管理平台2可以部署于电子设备中。电子设备可以包括终端设备,或者,电子设备还可以包括服务器,比如独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云计算服务的云服务器等。
具体而言,数据库管理平台2可以具有任意适当的架构,具体可根据实际需要进行设置,本申请实施例对此不作限定。在一种可选的实现方式中,数据库管理平台2可以包括DB_CDC组件、INDEX组件、FILE_SAVER组件以及QUERY组件。
其中,DB_CDC组件可用于从数据库系统1中获取业务数据库11的数据变更日志12,并对数据变更日志12进行解析,得到业务数据库11的变更事件的事件信息。示例地,变更事件的事件信息可以例如包括但不限于变更事件的执行时间、变更事件的事件类型、变更事件所属的数据变更日志信息、变更事件在其所属的数据变更日志中的偏移量、变更事件的长度、变更事件所变更的业务数据表的元数据信息。其中,事件类型包括数据添加事件、数据删除事件以及数据变更事件等。
INDEX组件可用于基于业务数据库11的变更事件的事件信息,创建事件索引表。具体而言,如图2所示,事件索引表包括多个索引节点(比如图2中的索引节点E0、E1、E2等)及其索引值(index_val),索引节点与变更事件一一对应,每个索引节点用于存储其对应的变更事件的事件信息。示例地,每个索引节点的索引值可以为每个索引节点对应的变更事件的执行时间,每个索引节点可以包括Index Entry表和Table Entry表,其中,Index Entry可以包括但不限于index_val、binlog_file、size、table_schema、level[]以及next[]等字段,字段index_val用于记录索引节点的索引值,字段binlog_file用于记录索引节点对应的变更事件所属的数据变更日志12,字段size用于记录索引节点对应的变更事件的长度,字段table_schema用于记录索引节点对应的变更事件所变更的业务数据表,level[]用于记录索引节点的索引层数量,next[]用于记录索引节点所指向的下一个索引节点;Table Entry表可以包括但不限于tabname、col_id、col_name、col_type以及col_value等多个字段,字段tabname用于记录索引节点对应的变更事件所变更的业务数据表的表名,字段col_id用于记录该业务数据表中的字段的字段标识,字段col_name用于记录该业务数据表中的字段的字段名,字段col_type用于记录该业务数据表中的字段的字段类型,字段col_value用于记录该业务数据表中的字段的字段大小等。
实际应用中,事件索引表可以具有任意适当的结构,具体可根据实际需要进行选择,比如有序链表、跳表(Skiplist)等,本申请实施例对此不作限定。当然,应理解的是,若事件索引表为跳表,那么,每个索引节点还可以存储其自身的索引层数量(level[])和每个索引层指向的下一个索引节点(next[])等。
FILE_SAVER组件可用于对业务数据库11的数据变更日志12进行本地持久化存储,以及基于存储结果生成相应的日志清单,该日志清单用于记录业务数据库11的数据变更日志12的相关信息。示例地,如图2所示,日志清单可以包括file_name、file_size、file_local_path等多个字段,其中,字段file_name用于记录已存储的数据变更日志12的文件名,字段file_size用于记录已存储的数据变更日志12的大小,字段file_local_path用于记录已存储的数据变更日志12在本地持久化存储区的存储位置。
QUERY组件可用于从事件索引表中查询业务数据库11在指定时间的变更事件及其事件信息,而后基于指定时间的变更事件及其事件信息,确定出在指定时间对业务数据库11所执行的数据变更操作。
本申请实施例提供的数据库日志处理方法将详细描述数据库管理平台2如何建立事件索引表,本申请实施例提供的数据库变更查询方法将详细描述数据库管理平台2如何确定指定时间对业务数据库11执行的数据操作等。
请参考图3,为本申请的一个实施例提供的一种数据库日志处理方法的流程示意图,该方法可以应用于电子设备,具体可以应用于电子设备中部署的数据库管理平台(比如图1和图2中的数据库管理平台2),该方法可以包括如下步骤:
S302,解析业务数据库的数据变更日志,得到业务数据库的变更事件的事件信息。
本申请实施例中,变更事件用于表示对业务数据库执行的数据变更操作,比如数据删除操作、数据更新操作和数据添加操作等。变更事件的事件信息包括变更事件的执行时间和变更事件所变更的业务数据表的元数据信息,当然,可选地,通过解析业务数据库的数据变更日志,得到的变更事件的事件信息还可以包括变更事件的事件类型、变更事件的长度、变更事件所属的数据变更日志信息、变更事件在其所属的数据变更日志中的偏移量等。其中,变更事件所变更的业务数据表的元数据信息具体可以例如包括但不限于变更事件所变更的业务数据表的表名、业务数据表中发生变更的字段的字段标识、字段名、字段类型以及字段大小等。
通常情况下,业务数据库的数据变更日志包含日志文件头和一系列的变更事件,且数据变更日志中每个变更事件包含事件头和事件类型特定的数据部分(即事件体),变更事件的事件头中记录有变更事件的执行时间(timestamp)、事件类型(event_type)、源数据库系统主机的标识(serverid)、事件大小(event_size)、下一个变更事件的位置(log_pos)等,事件体记录有下一个数据变更日志记录的第一个变更事件的位置、下一个数据变更日志的文件名以及变更事件所针对的业务数据表的元数据信息等,基于此,通过对数据变更日志进行解析,即可快速、准确获得业务数据库的变更事件的事件信息。
具体而言,在一种可选的实现方式中,上述S302可以包括如下步骤:
S321,解析业务数据库的数据变更日志,得到数据变更日志记录的变更事件的事件头和事件体。
示例地,通过上述数据库管理平台2中的DB_CDC组件,基于业务数据库的类型,从业务数据库的数据变更日志中解析出该数据变更日志记录的一系列变更事件的事件头,比如MYSQL数据库的数据变更日志中,从每个变更事件在数据变更日志中的偏移量起的前23个字节通常为事件头;然后,基于事件头中记录的事件体长度,从数据变更日志中提取相应的字节数作为变更事件的事件体,事件头及其对应的事件体即为一个完整的变更事件。
S322,解析变更事件的事件头,得到变更事件的执行时间。
S323,解析变更事件的事件体,得到变更事件所变更的业务数据表。
数据库管理平台在通过DB_CDC组件得到变更事件的事件头和事件体之后,可将变更事件的事件头和事件体发送给INDEX组件,通过INDEX组件解析变更事件的事件头,得到其中记录的变更事件的执行时间,以及通过INDEX组件解析变更事件的事件体,得到其中记录的变更事件所变更的业务数据表的表标识(${table})。
S324,基于变更事件所变更的业务数据表,查询业务数据库,得到变更事件所变更的业务数据表的元数据信息。
数据库管理平台可通过INDEX组件,基于变更事件所变更的业务数据表的表标识,查询业务数据库,从中获取变更事件所针对的业务数据表的元数据信息。
本申请实施例在此示出了上述S302的一种具体实现方式。当然,应理解,上述S302也可以采用其它的方式实现,本申请实施例对此不作限定。
实际应用中,可选地,数据库管理平台可以在需要时从数据库系统获取业务数据库的数据变更日志,然后通过上述S302对业务数据库的数据变更日志进行解析,得到业务数据库的变更事件的事件信息。
可选地,为实现对业务数据库的动态监控,以确保后续创建的事件索引表的实时性,从而为后续对业务数据库的备份和恢复提供可靠保障,数据库管理平台也可以从数据库系统获取业务数据库实时产生的数据变更日志。具体而言,数据库管理平台可通过DB_CDC组件,按照数据库系统的通讯协议要求,向数据库系统发送DUMP_GTID命令,以指示数据库系统向数据库管理平台实时推送业务数据库的数据变更日志。
进一步地,为保证业务数据库的数据变更日志长期保存,从而为后续业务数据库的运维提供可靠保障,在获取到业务数据库的数据变更日志之后,可将业务数据库的数据变更日志存储至本地持久化存储区。示例地,本地持久化存储区可以是数据管理平台的磁盘中的指定区域,数据库管理平台可通过FILE_SAVER组件,使用FDATASYNC模型,将业务数据库的数据变更日志存储至其磁盘中的指定区域。
更为具体地,针对数据库管理平台从数据库系统获取业务数据库实时产生的数据变更日志的情况,数据库管理平台每获取到一个数据变更日志,则通过FILE_SAVER组件将当前获取的数据变更日志存储至本地持久化存储区。示例地,数据库管理平台可按照数据变更日志的获取顺序或者数据变更日志的文件名,将获取的数据变更日志存储至本地持久化存储区。
数据库管理平台在通过FILE_SAVER将获取的数据变更日志存储至本地持久化存储区之后,可得到数据变更日志在本地持久化存储区的存储位置,进一步地,为便于从本地持久化存储区中快速、准确获取数据变更日志,在将当前获取的数据变更日志存储至本地持久化存储区之后,本申请实施例提供的数据库日志处理方法还可以包括:基于当前获取的数据变更日志的属性信息和当前获取的数据变更日志在本地持久化存储区的存储位置,更新日志清单的内容。其中,数据变更日志的属性信息可以例如包括但不限于数据变更日志的文件名、大小、产生时间等。
其中,日志清单可以是数据库管理平台通过FILE_SAVER组件在获取业务数据库的数据变更日志之前预先创建的,并在对获取的数据变更日志进行存储之后进行更新。日志清单可用于记录已存储的数据变更日志。
日志清单可以具有任意适当的形式,具体可根据实际需要进行设置,本申请实施例对此不作限定。示例地,如图2所示,日志清单可以包括file_name、file_size、file_local_path等多个字段,其中,字段file_name用于记录已存储的数据变更日志的文件名,字段file_size用于记录已存储的数据变更日志的大小,字段file_local_path用于记录已存储的数据变更日志在本地持久化存储区的存储位置。又如,日志清单也可以如下述表1所示,其中,/home/data/表示已存储的数据变更日志在本地持久化存储区的存储位置,binlog.000001和binlog.000017表示已存储的数据变更日志的文件名,0000001F000000F表示数据变更日志binlog.000001的大小,00000020F45470F表示数据变更日志binlog.000017的大小。
表1
可以理解的是,通过将已存储的数据变更日志的属性信息和数据变更日志在本地持久化存储区的存储位置写入日志清单,使得后续通过查询日志清单,即可从本地持久化存储区中快速获取所需的数据变更日志。
实际应用中,数据库管理平台可采用多种存储方式对当前获取的数据变更日志进行本地持久化存储。
可选地,数据库管理平台可直接将当前获取的数据变更日志存储至本地持久化存储区。在此情况下,数据库管理平台在完成对数据变更日志的存储之后,可直接将该数据变更日志的属性信息和该数据变更日志在本地持久化存储区的存储位置写入日志清单中。
可选地,为了充分利用本地持久化存储区的存储空间,数据库管理平台还可基于当前获取的数据变更日志的大小,将当前获取的数据变更日志存至本地持久化存储区。示例地,若当前获取的数据变更日志的大小超过预设阈值,则将当前获取的数据变更日志拆分为多个子日志,进一步将多个子日志存储至本地持久化存储区。在此情况下,为确保日志清单的内容的准确性,以便通过日志清单能够从本地持久化存储区准确获取指定的数据变更日志,数据库管理平台可分别获取每个子日志的属性信息和每个子日志在本地持久化存储区的存储位置,并将每个子日志的属性信息和每个子日志在本地持久化存储区的存储位置写入日志清单中。
示例地,数据库管理平台在对当前获取的数据变更日志进行拆分时,可按照该数据变更日志记录的变更事件的执行顺序,将该数据变更日志拆分为多个子日志,每个子日志记录一个或多个变更事件。相应地,数据库管理平台在更新日志清单时,可按照每个子日志记录的变更事件的执行顺序,确定每个子日志的记录顺序,进而按照每个子日志的记录顺序,将每个子日志的属性信息和每个子日志在本地持久化存储区的存储位置写入日志清单中。
S304,创建业务数据库的变更事件对应的索引节点。
本申请实施例中,索引节点与变更事件之间一一对应,索引节点用于存储对应的变更事件所变更的业务数据表的元数据信息。当然,可选地,索引节点还可用于存储变更事件的事件类型、执行时间、长度、变更事件所属的数据变更日志以及变更事件在其所属的数据变更日志中的偏移量等其他事件信息。
本申请实施例中,索引节点可以具有任意适当的结构,例如图2所示的索引节点,具体可根据实际需要进行设置,本申请实施例对此不作限定。
S306,基于索引节点和变更事件的执行时间,创建事件索引表。
具体而言,为便于候选查询在指定时间对业务数据库执行的变更事件的事件信息,基于业务数据库的变更事件的执行时间,创建业务数据库的变更事件对应的索引节点之间的索引顺序,进而得到事件索引表。
本申请实施例中,事件索引表可以具有任意适当的结构,具体可根据实际需要进行设置,本申请实施例对此不作限定。在一种可选的实现方式中,上述S306包括:
S361,基于业务数据库的变更事件的执行时间,在业务数据库的变更事件对应的索引节点之间创建指针。
可选地,为实现对指定时间的变更事件的事件信息的快速查询,事件索引表可以为有序链表,索引节点之间通过指针连接。相应地,在上述S361中,可将各个索引节点对应的变更事件的执行时间作为各个索引节点的索引值,按照索引值从小到大的顺序,对各个索引节点进行排序;然后,在相邻两个索引节点之间创建指针,指针从索引值较小的索引节点指向索引值较大的索引节点。
可选地,考虑到在基于有序链表进行变更事件查询时,需要从第一个索引节点开始遍历有序链表,直到找到所需的变更事件,这种方式复杂度较高,效率低,为减少查询过程的复杂度,提高查询效率,事件索引表可以为跳表,每个索引节点可以有一个或多个索引层,每个索引节点的索引层之间通过指针连接。相应地,在上述S361中,可基于业务数据库的各个变更事件的执行时间,确定各个变更事件对应的索引节点的索引值和索引层数量,进一步,基于各个索引节点的索引值和索引层数量,在满足预设索引条件的不同索引节点之间创建指针。其中,若两个索引节点的索引层数量相同,则判定这两个索引节点满足预设索引条件。需要说明的是,对于每个索引节点而言,在索引层数量为多个的情况下,每个索引层的顺序按照从下到上的顺序排列。例如,索引节点的索引层数量为3,那么,最下面的索引层为第一个索引层,中间的索引层为第二个索引层,最上面的索引层为第三个索引层。
示例地,可以将各个索引节点对应的变更事件的执行时间,作为各个索引节点的索引值,用随机函数得到每个索引节点的索引层数量。以图4所示的跳表形式是事件索引表为例,初始时,新建空链表;接着,为索引值为3的索引节点(以下称为索引节点3)随机生成索引层数量=1,将索引节点3加入索引表的开头节点与结尾节点NIL之间,并在开头节点的第一个索引层(最下面)与该索引节点3的之间创建指向该索引节点3的指针;然后,为索引值为6的索引节点(以下称为索引节点6)随机生成索引层数量=2,将索引值为6的索引节点加入索引节点3之后,并在索引节点3与索引节点6的第一个索引层之间创建指向索引节点6的指针,以及在开头节点与索引节点6的第二个索引层之间创建指向索引节点6的指针;依次类推,由此得到如图4所示的各个索引节点之间的指针。
S362,基于索引节点和索引节点之间的指针,创建事件索引表。
事件索引表即可包括业务数据库的变更事件对应的索引节点和索引节点之间的指针。这样,当需要查询指定时间的变更事件时,可基于索引节点之间的指针,遍历事件索引表中的索引节点,基于当前遍历的索引节点对应的变更事件的执行时间与指定时间之间的先后顺序,获取指定时间的变更事件的事件信息。
本申请实施例在此示出了上述S306的一种具体实现方式。当然,应理解,上述S306也可以采用其它的方式实现,本申请实施例对此不作限定。
本申请实施例提供的数据库日志处理方法,由于业务数据库的数据变更日志以事件的形式记录了对业务数据库执行的数据变更操作,通过对业务数据库的数据变更日志进行解析,即可得到业务数据库的变更事件的执行时间及变更事件所变更的业务数据表的元数据信息等事件信息;进一步,通过为变更事件创建对应的索引节点来存储变更事件所变更的业务数据表的元数据信息,并基于索引节点及索引节点对应的变更事件的执行时间,创建事件索引表,这样,基于事件索引表即可快速查询到在过去某时间执行的变更事件及其所变更的业务数据表的元数据信息,进而基于查询到的变更事件及其所变更的业务数据表的元数据信息,即可快速确定出对业务数据库所执行的数据变更操作。可见,整个过程无需人工参与,也不需要增加额外的逻辑处理和日志数据还原处理等,实现简单、快捷,效率和准确率高。
基于上述数据库日志处理方法创建的事件索引表,本申请实施例还提供一种数据库变更查询方法。请参考图5,为本申请的一个实施例提供的一种数据库变更查询方法的流程示意图,该方法可以应用于电子设备,具体可以应用于电子设备中部署的数据库管理平台(比如图1和图2中的数据库管理平台2),该方法可以包括如下步骤:
S502,基于目标时间查询事件索引表,得到目标时间对应的目标索引节点。
其中,事件索引表是基于所述业务数据库的变更事件对应的索引节点和变更事件的执行时间创建的。索引节点用于存储对应的变更事件所变更的业务数据表的元数据信息,变更事件的执行时间和变更事件所变更的业务数据表的元数据信息为通过解析业务数据库的数据变更日志得到。
本申请实施例中,目标时间是指所要查询的指定时间。具体而言,在上述S502中,可以按照事件索引表中各索引节点的索引层之间的指针,从事件索引表中查找索引值与目标时间匹配的索引节点,作为目标时间对应的目标索引节点。
示例地,以图4所示的事件索引表为例,若目标时间=12,那么,从事件索引表的开头节点的第三个索引层(顶层的索引层)开始,查找到开头节点的第三个索引层指向的索引节点为索引节点9(即索引值为9的索引节点),并比较目标时间与索引节点9的索引值之间的大小关系;由于目标时间大于索引节点9的索引值,于是,从索引节点9的第三个索引层开始,查找到该索引层指向索引节点21(即索引值为21的索引节点)的第三个索引层,并比较目标时间与索引节点21的索引值之间的大小关系;由于目标时间小于索引节点21的索引值,于是,再从索引节点9的第二个索引层(中间索引层)开始,查找到该索引层指向索引节点17(即索引值为17的索引节点)的第二个索引层,并比较目标时间与索引节点17的索引值之间的大小关系,由于目标时间小于索引节点17的索引值,于是,再从索引节点9的第三个索引层(底层的索引层)开始,查找到该索引层指向索引节点12(即索引值为12的索引节点),由于目标时间与索引节点12的索引值相等,于是,将索引节点12确定为目标时间对应的目标索引节点。
S504,基于目标索引节点对应的目标变更事件的事件类型和目标变更事件所变更的目标业务数据表的元数据信息,确定目标变更事件对应的数据操作语句。
在确定出目标索引节点之后,可从目标索引节点中获取在目标时间执行的目标变更事件的事件信息,具体可以包括目标变更事件的事件类型和目标变更事件所变更的目标业务数据表的元数据信息。
示例地,可以查询目标索引节点的Index Entry表中用于记录事件类型的字段,得到目标变更事件的事件类型,以及查询目标索引节点的Index Entry表中用于记录变更事件所变更的业务数据表的字段(比如图2所示的table_schema字段),确定出目标索引节点对应的目标变更事件所变更的目标业务数据表,而后在目标索引节点的Table Entry表的tabname、col_id、col_name、col_type以及col_value等多个字段中,查询目标业务数据表的表名、目标业务数据表中的字段的字段标识、目标业务数据表中的字段的字段名、目标业务数据表中的字段的字段类型以及目标业务数据表中的字段的字段大小等元数据信息。
由于对业务数据库的业务数据表执行的数据操作语句通常具体一定的语法结构,且数据操作语句中通常会指明所要变更的业务数据表的元数据信息,比如以SQL语句为例,用于向业务数据表中添加数据的数据操作语句通常为‘INSERTINTO业务数据表的表名(字段名)VALUES(字段值)’,其中,tabname表示业务数据表的表名,列1和列2分别表示字段名,为此,基于目标变更事件的事件类型和目标变更事件所变更的目标业务数据表的元数据信息,即可反向推导出目标变更事件对应的数据操作语句。
示例地,以SQL语句为例,若目标变更事件的事件类型为数据添加操作,那么,可反向推导出目标变更事件对应的数据操作语句为‘INSERTINTO业务数据表的表名(字段名)VALUES(字段值)’;若目标变更事件的事件类型为数据删除操作,那么,可反向推导出目标变更事件对应的数据操作语句为‘DELETEFROM业务数据表的表名WHERE字段名=字段值’;若目标变更事件的事件类型为数据更新操作,那么,可反向推导出目标变更事件对应的数据操作语句为‘UPDATE业务数据表的表名SET字段名=新字段值WHERE字段名=原字段值’,等等。
为便于对业务数据库进行还原,在本申请的另一个实施例中,如图6所示,在上述S504之后,本申请实施例提供的数据库变更查询方法还可以包括:基于目标变更事件对应的数据操作语句,确定用于还原目标业务数据表的回退语句。这样,通过对业务数据库执行回退语句,即可将业务数据库还原到目标时间对应的原始状态。
具体而言,可基于数据操作语句所变更的业务数据表及对业务数据表所做的变更操作以及数据操作语句遵循的语句语法,确定出相应的回退语句。示例地,若数据操作语句为向业务数据表中添加某个字段的字段值,那么,可确定出相应的回退语句为从业务数据表中对该字段添加的字段值,且回退语句具有与数据操作语句相同的语句语法;若数据操作语句为从业务数据表中删除某个字段的字段值,那么,可确定出相应的回退语句为向业务数据表中添加对该字段所删除的字段值,且回退语句具有与数据操作语句相同的语句语法;若数据操作语句为将业务数据表中某个字段的字段值1更新为字段值2,那么,可确定出相应的回退语句为将业务数据表中某个字段的字段值2更新为字段值,且回退语句具有与数据操作语句相同的语句语法。
本申请实施例提供的数据库变更查询方法,由于事件索引表中的索引节点存储了其所对应的变更事件所变更的业务数据表的元数据信息,通过查询事件索引表即可确定出在目标时间执行的目标变更事件及其所变更的业务数据表的元数据信息,进而基于目标变更事件及其所变更的业务数据表的元数据信息,即可快速确定出对业务数据库所执行的数据操作语句,可见,整个过程无需人工参与,也不需要增加额外的逻辑处理和日志数据还原处理等,实现简单、快捷,效率和准确率高。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
与上述图3所示的数据库日志处理方法相对应地,本申请实施例还提供一种数据库日志处理装置。请参考图7,为本申请的一个实施例提供的一种数据库日志处理装置700的结构示意图,该装置700包括:
解析单元710,用于解析业务数据库的数据变更日志,得到所述业务数据库的变更事件的事件信息,所述变更事件用于表示对所述业务数据库执行的数据变更操作,所述变更事件的事件信息包括所述变更事件的执行时间和所述变更事件所变更的业务数据表的元数据信息;
第一创建单元720,用于创建所述业务数据库的变更事件对应的索引节点,所述索引节点用于存储对应的变更事件所变更的业务数据表的元数据信息;
第二创建单元730,用于基于所述索引节点和所述变更事件的执行时间,创建事件索引表。
可选地,所述第二创建单元包括:
指针创建子单元,用于基于所述业务数据库的变更事件的执行时间,在所述索引节点之间创建指针;
索引表创建子单元,用于基于所述索引节点和所述索引节点之间的指针,创建所述事件索引表。
可选地,所述指针创建子单元具体用于:
基于所述变更事件的执行时间,确定所述索引节点的索引值和索引层数量;
基于所述索引节点的索引值和索引层数量,在满足预设索引条件的不同索引节点的索引层之间创建指针。
可选地,所述解析单元包括:
第一解析子单元,用于解析所述业务数据库的数据变更日志,得到所述数据变更日志记录的变更事件的事件头和事件体;
第二解析子单元,用于解析所述变更事件的事件头,得到所述变更事件的执行时间;
第三解析子单元,用于解析所述变更事件的事件体,得到所述变更事件所变更的业务数据表;
元数据查询子单元,用于基于所述业务数据表,查询所述业务数据库,得到所述业务数据表的元数据信息。
可选地,所述装置700还包括:
日志获取单元,用于在所述解析单元解析业务数据库的数据变更日志,得到所述业务数据库的变更事件的事件信息之前,获取所述业务数据库实时产生的数据变更日志;
存储单元,用于将当前获取的所述数据变更日志存储至本地持久化存储区。
可选地,所述装置700还包括:
清单更新单元,用于在所述存储单元将当前获取的所述数据变更日志存储至本地持久化存储区之后,基于当前获取的所述数据变更日志的属性信息和当前获取的所述数据变更日志在所述本地持久化存储区的存储位置,更新日志清单的内容,所述日志清单用于记录已存储的数据变更日志。
可选地,所述存储单元具体用于:
若当前获取的所述数据变更日志的大小超过预设阈值,则将所述数据变更日志拆分为多个子日志,将所述多个子日志存储至所述本地持久化存储区;
所述清单更新单元具体用于:
获取每个所述子日志的属性信息和每个所述子日志在所述本地持久化存储区的存储位置;
在所述日志清单中记录每个所述子日志的属性信息和每个所述子日志在所述本地持久化存储区的存储位置。
显然,本申请实施例提供的数据库日志处理装置可以作为上述图3所示的数据库日志处理方法的执行主体,因此能够实现数据库日志处理方法在上述图3所实现的功能。由于原理相同,在此不再赘述。
本申请实施例提供的数据库日志处理装置,由于业务数据库的数据变更日志以事件的形式记录了对业务数据库执行的数据变更操作,通过对业务数据库的数据变更日志进行解析,即可得到业务数据库的变更事件的执行时间及变更事件所变更的业务数据表的元数据信息等事件信息;进一步,通过为变更事件创建对应的索引节点来存储变更事件所变更的业务数据表的元数据信息,并基于索引节点及索引节点对应的变更事件的执行时间,创建事件索引表,这样,基于事件索引表即可快速查询到在过去某时间执行的变更事件及其所变更的业务数据表的元数据信息,进而基于查询到的变更事件及其所变更的业务数据表的元数据信息,即可快速确定出对业务数据库所执行的数据变更操作。可见,整个过程无需人工参与,也不需要增加额外的逻辑处理和日志数据还原处理等,实现简单、快捷,效率和准确率高。
与上述图5所示的数据库变更查询方法相对应地,本申请实施例还提供一种数据库变更查询装置。请参考图8,为本申请的一个实施例提供的一种数据库变更查询装置800的结构示意图,该装置800包括:
查询单元810,用于基于目标时间查询事件索引表,得到所述目标时间对应的目标索引节点,其中,所述事件索引表是基于业务数据库的变更事件对应的索引节点和所述变更事件的执行时间创建的,所述索引节点用于存储对应的变更事件所变更的业务数据表的元数据信息,所述变更事件的执行时间和所述变更事件所变更的业务数据表的元数据信息为通过解析所述业务数据库的数据变更日志得到;
第一语句确定单元820,用于基于所述目标索引节点对应的目标变更事件的事件类型和所述目标变更事件所变更的目标业务数据表的元数据信息,确定所述目标变更事件对应的数据操作语句。
可选地,所述装置800还包括:
第二语句确定单元,用于在所述第一语句确定单元基于所述目标索引节点对应的目标变更事件的事件类型和所述目标变更事件所变更的目标业务数据表的元数据信息,确定所述目标变更事件对应的数据操作语句之后,基于所述数据操作语句,确定用于还原所述目标业务数据表的回退语句。
显然,本申请实施例的数据库变更查询装置可以作为上述图5所示的数据库变更查询方法的执行主体,因此能够实现数据库变更查询方法在上述图5所实现的功能。由于原理相同,在此不再赘述。
本申请实施例提供的数据库变更查询装置,由于事件索引表中的索引节点存储了其所对应的变更事件所变更的业务数据表的元数据信息,通过查询事件索引表即可确定出在目标时间执行的目标变更事件及其所变更的业务数据表的元数据信息,进而基于目标变更事件及其所变更的业务数据表的元数据信息,即可快速确定出对业务数据库所执行的数据操作语句,可见,整个过程无需人工参与,也不需要增加额外的逻辑处理和日志数据还原处理等,实现简单、快捷,效率和准确率高。
图9是本申请的一个实施例电子设备的结构示意图。请参考图9,在硬件层面,该电子设备包括处理器,可选地还包括内部总线、网络接口、存储器。其中,存储器可能包含内存,例如高速随机存取存储器(Random-Access Memory,RAM),也可能还包括非易失性存储器(non-volatile memory),例如至少1个磁盘存储器等。当然,该电子设备还可能包括其他业务所需要的硬件。
处理器、网络接口和存储器可以通过内部总线相互连接,该内部总线可以是ISA(Industry Standard Architecture,工业标准体系结构)总线、PCI(PeripheralComponent Interconnect,外设部件互连标准)总线或EISA(Extended Industry StandardArchitecture,扩展工业标准结构)总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图9中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
存储器,用于存放程序。具体地,程序可以包括程序代码,所述程序代码包括计算机操作指令。存储器可以包括内存和非易失性存储器,并向处理器提供指令和数据。
处理器从非易失性存储器中读取对应的计算机程序到内存中然后运行,在逻辑层面上形成数据库日志处理装置。处理器,执行存储器所存放的程序,并具体用于执行以下操作:
解析业务数据库的数据变更日志,得到所述业务数据库的变更事件的事件信息,所述变更事件用于表示对所述业务数据库执行的数据变更操作,所述变更事件的事件信息包括所述变更事件的执行时间和所述变更事件所变更的业务数据表的元数据信息;
创建所述业务数据库的变更事件对应的索引节点,所述索引节点用于存储对应的变更事件所变更的业务数据表的元数据信息;
基于所述索引节点和所述变更事件的执行时间,创建事件索引表。
或者,处理器从非易失性存储器中读取对应的计算机程序到内存中然后运行,在逻辑层面上形成数据库变更查询装置。处理器,执行存储器所存放的程序,并具体用于执行以下操作:
基于目标时间查询事件索引表,得到所述目标时间对应的目标索引节点,其中,所述事件索引表是基于业务数据库的变更事件对应的索引节点和所述变更事件的执行时间创建的,所述索引节点用于存储对应的变更事件所变更的业务数据表的元数据信息,所述变更事件的执行时间和所述变更事件所变更的业务数据表的元数据信息为通过解析所述业务数据库的数据变更日志得到;
基于所述目标索引节点对应的目标变更事件的事件类型和所述目标变更事件所变更的目标业务数据表的元数据信息,确定所述目标变更事件对应的数据操作语句。
上述如本申请图3所示实施例揭示的数据库日志处理装置执行的方法或者上述如本申请如图5所示实施例揭示的数据库变更查询装置执行的方法可以应用于处理器中,或者由处理器实现。处理器可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。
该电子设备还可执行图3的方法,并实现数据库日志处理装置在图3所示实施例的功能,或者,该电子设备还可执行图5的方法,并实现数据库变更查询装置在图5所示实施例的功能,本申请实施例在此不再赘述。
当然,除了软件实现方式之外,本申请的电子设备并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。
本申请实施例还提出了一种计算机可读存储介质,该计算机可读存储介质存储一个或多个程序,该一个或多个程序包括指令,该指令当被包括多个应用程序的便携式电子设备执行时,能够使该便携式电子设备执行图3所示实施例的方法,并具体用于执行以下操作:
解析业务数据库的数据变更日志,得到所述业务数据库的变更事件的事件信息,所述变更事件用于表示对所述业务数据库执行的数据变更操作,所述变更事件的事件信息包括所述变更事件的执行时间和所述变更事件所变更的业务数据表的元数据信息;
创建所述业务数据库的变更事件对应的索引节点,所述索引节点用于存储对应的变更事件所变更的业务数据表的元数据信息;
基于所述索引节点和所述变更事件的执行时间,创建事件索引表。
或者,该指令当被包括多个应用程序的便携式电子设备执行时,能够使该便携式电子设备执行图5所示实施例的方法,并具体用于执行以下操作:
基于目标时间查询事件索引表,得到所述目标时间对应的目标索引节点,其中,所述事件索引表是基于业务数据库的变更事件对应的索引节点和所述变更事件的执行时间创建的,所述索引节点用于存储对应的变更事件所变更的业务数据表的元数据信息,所述变更事件的执行时间和所述变更事件所变更的业务数据表的元数据信息为通过解析所述业务数据库的数据变更日志得到;
基于所述目标索引节点对应的目标变更事件的事件类型和所述目标变更事件所变更的目标业务数据表的元数据信息,确定所述目标变更事件对应的数据操作语句。
总之,以上所述仅为本申请的较佳实施例而已,并非用于限定本申请的保护范围。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
Claims (12)
1.一种数据库日志处理方法,其特征在于,包括:
解析业务数据库的数据变更日志,得到所述业务数据库的变更事件的事件信息,所述变更事件用于表示对所述业务数据库执行的数据变更操作,所述变更事件的事件信息包括所述变更事件的执行时间和所述变更事件所变更的业务数据表的元数据信息;
创建所述业务数据库的变更事件对应的索引节点,所述索引节点用于存储对应的变更事件所变更的业务数据表的元数据信息;
基于所述索引节点和所述变更事件的执行时间,创建事件索引表。
2.根据权利要求1所述的方法,其特征在于,所述基于所述索引节点和所述变更事件的执行时间,创建事件索引表,包括:
基于所述业务数据库的变更事件的执行时间,在所述索引节点之间创建指针;
基于所述索引节点和所述索引节点之间的指针,创建所述事件索引表。
3.根据权利要求2所述的方法,其特征在于,所述基于所述业务数据库的变更事件的执行时间,在所述索引节点之间创建指针,包括:
基于所述变更事件的执行时间,确定所述索引节点的索引值和索引层数量;
基于所述索引节点的索引值和索引层数量,在满足预设索引条件的不同索引节点的索引层之间创建指针。
4.根据权利要求1所述的方法,其特征在于,解析业务数据库的数据变更日志,得到所述业务数据库的变更事件的事件信息包括:
解析所述业务数据库的数据变更日志,得到所述数据变更日志记录的变更事件的事件头和事件体;
解析所述变更事件的事件头,得到所述变更事件的执行时间;
解析所述变更事件的事件体,得到所述变更事件所变更的业务数据表;
基于所述业务数据表,查询所述业务数据库,得到所述业务数据表的元数据信息。
5.根据权利要求1所述的方法,其特征在于,在解析业务数据库的数据变更日志,得到所述业务数据库的变更事件的事件信息之前,所述方法还包括:
获取所述业务数据库实时产生的数据变更日志;
将当前获取的所述数据变更日志存储至本地持久化存储区。
6.根据权利要求5所述的方法,其特征在于,在将当前获取的所述数据变更日志存储至本地持久化存储区之后,所述方法还包括:
基于当前获取的所述数据变更日志的属性信息和当前获取的所述数据变更日志在所述本地持久化存储区的存储位置,更新日志清单的内容,所述日志清单用于记录已存储的数据变更日志。
7.根据权利要求6所述的方法,其特征在于,将当前获取的所述数据变更日志存储至本地持久化存储区,包括:
若当前获取的所述数据变更日志的大小超过预设阈值,则将所述数据变更日志拆分为多个子日志,将所述多个子日志存储至所述本地持久化存储区;
所述基于当前获取的所述数据变更日志的属性信息和当前获取的所述数据变更日志在所述本地持久化存储区的存储位置,更新日志清单的内容,包括:
获取每个所述子日志的属性信息和每个所述子日志在所述本地持久化存储区的存储位置;
在所述日志清单中记录每个所述子日志的属性信息和每个所述子日志在所述本地持久化存储区的存储位置。
8.一种数据库变更查询方法,其特征在于,包括:
基于目标时间查询事件索引表,得到所述目标时间对应的目标索引节点,其中,所述事件索引表是基于业务数据库的变更事件对应的索引节点和所述变更事件的执行时间创建的,所述索引节点用于存储对应的变更事件所变更的业务数据表的元数据信息,所述变更事件的执行时间和所述变更事件所变更的业务数据表的元数据信息为通过解析所述业务数据库的数据变更日志得到;
基于所述目标索引节点对应的目标变更事件的事件类型和所述目标变更事件所变更的目标业务数据表的元数据信息,确定所述目标变更事件对应的数据操作语句。
9.根据权利要求8所述的方法,其特征在于,在基于所述目标索引节点对应的目标变更事件的事件类型和所述目标变更事件所变更的目标业务数据表的元数据信息,确定所述目标变更事件对应的数据操作语句之后,所述方法还包括:
基于所述数据操作语句,确定用于还原所述目标业务数据表的回退语句。
10.一种数据库日志处理装置,其特征在于,包括:
解析单元,用于解析业务数据库的数据变更日志,得到所述业务数据库的变更事件的事件信息,所述变更事件用于表示对所述业务数据库执行的数据变更操作,所述变更事件的事件信息包括所述变更事件的执行时间和所述变更事件所变更的业务数据表的元数据信息;
第一创建单元,用于创建所述业务数据库的变更事件对应的索引节点,所述索引节点用于存储对应的变更事件所变更的业务数据表的元数据信息;
第二创建单元,用于基于所述索引节点和所述变更事件的执行时间,创建事件索引表。
11.一种电子设备,其特征在于,包括:
处理器;
用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述指令,以实现如权利要求1至9中任一项所述的方法。
12.一种计算机可读存储介质,其特征在于,当所述存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行如权利要求1至9中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210769590.9A CN116126620A (zh) | 2022-07-01 | 2022-07-01 | 数据库日志处理方法、数据库变更查询方法及相关装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210769590.9A CN116126620A (zh) | 2022-07-01 | 2022-07-01 | 数据库日志处理方法、数据库变更查询方法及相关装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116126620A true CN116126620A (zh) | 2023-05-16 |
Family
ID=86297846
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210769590.9A Pending CN116126620A (zh) | 2022-07-01 | 2022-07-01 | 数据库日志处理方法、数据库变更查询方法及相关装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116126620A (zh) |
-
2022
- 2022-07-01 CN CN202210769590.9A patent/CN116126620A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11182356B2 (en) | Indexing for evolving large-scale datasets in multi-master hybrid transactional and analytical processing systems | |
CN106484906B (zh) | 一种分布式对象存储系统闪回方法及装置 | |
CN107657049B (zh) | 一种基于数据仓库的数据处理方法 | |
US8924373B2 (en) | Query plans with parameter markers in place of object identifiers | |
US8527556B2 (en) | Systems and methods to update a content store associated with a search index | |
US9418094B2 (en) | Method and apparatus for performing multi-stage table updates | |
CN106407360B (zh) | 一种数据的处理方法及装置 | |
CN106874281B (zh) | 实现数据库读写分离的方法和装置 | |
CN111259004B (zh) | 一种存储引擎中数据索引的方法以及相关装置 | |
CN111046036A (zh) | 数据同步方法、装置、系统及存储介质 | |
US9390111B2 (en) | Database insert with deferred materialization | |
KR20030031283A (ko) | 객체관계형 데이터베이스 관리 시스템 및 그것의 클래스인스턴스 삭제 방법 | |
CN112970011A (zh) | 记录查询优化中的谱系 | |
CN113468209A (zh) | 一种电网监控系统高速内存数据库访问方法 | |
CN111753141B (zh) | 一种数据管理方法及相关设备 | |
CN108256019A (zh) | 数据库主键生成方法、装置、设备及其存储介质 | |
CN114595286A (zh) | 一种数据同步方法、装置、电子设备及存储介质 | |
CN113918535A (zh) | 一种数据读取方法、装置、设备及存储介质 | |
CN116126620A (zh) | 数据库日志处理方法、数据库变更查询方法及相关装置 | |
CN113127660A (zh) | 一种时序图形数据库存储方法及装置 | |
CN114816247A (zh) | 一种逻辑数据获取方法及装置 | |
CN114218277A (zh) | 一种关系数据库的高效查询方法和装置 | |
CN112699129A (zh) | 一种数据处理系统、方法及装置 | |
CN115543993A (zh) | 数据处理方法、装置、电子设备及存储介质 | |
CN113553320B (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 |