CN115373898A - 数据库容灾备份方法、装置、计算机设备、存储介质 - Google Patents
数据库容灾备份方法、装置、计算机设备、存储介质 Download PDFInfo
- Publication number
- CN115373898A CN115373898A CN202210968043.3A CN202210968043A CN115373898A CN 115373898 A CN115373898 A CN 115373898A CN 202210968043 A CN202210968043 A CN 202210968043A CN 115373898 A CN115373898 A CN 115373898A
- Authority
- CN
- China
- Prior art keywords
- incremental data
- data
- database
- merged
- disaster recovery
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/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
- 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/1458—Management of the backup or restore process
- G06F11/1469—Backup restoration techniques
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开涉及一种数据库容灾备份方法、装置、计算机设备、存储介质。所述方法包括:接收所述源端数据库传输的增量数据;响应于接收到所述源端数据库发送的事务提交标识符,根据所述增量数据中定位标识符合并所述增量数据,得到合并增量数据,其中,所述事务提交标识符表征所述源端数据库中事务的完成;将所述合并增量数据和/或所述增量数据以日志的数据格式存储在所述容灾组件的存储介质中。采用本方法能够避免重大灾难发生后目标端数据库中数据缺失过多导致的容灾失败。
Description
技术领域
本公开涉及数据库备份技术领域,特别是涉及一种数据库容灾备份方法、装置、计算机设备、存储介质。
背景技术
随着大数据的不断发展,数据库作为大数据中存储数据的核心部件,承载了对于应用系统的事务支持和数据管理的基础工作,目前应用系统都需要通过数据库来保证各种业务的完整性因此在系统容灾的建设过程中,数据库容灾成为最为核心的部分。
目前几乎所有数据库集群的异地容灾系统几乎都是由源端数据库直接将增量数据发送到目标端数据库后,由目标端数据库对增量数据进行重放后进行数据同步,从而实现金融数据库的容灾。
然而,目前的数据库容灾系统是直接在源端数据库和目标端数据之间进行复制的方式实现容灾,但是在金融数据库多中心部署的架构下,异地数据库集群间的数据同步过程存在许多不确定因素:诸如由于源端数据与目标端数据库集群的物理距离,源端数据库的日志创建速度,目标端数据库的增量日志重放速度,以及网络延时,丢包,抖动导致数据同步延迟的累积增长等,造成重大灾难发生后容灾设备中数据缺失过多无法满足金融数据库对于数据的丢失量的容忍程度导致容灾失败。
发明内容
基于此,有必要针对上述技术问题,提供一种能够避免重大灾难发生后目标端数据库中数据缺失过多导致的容灾失败的数据库容灾备份方法、装置、计算机设备、存储介质。
第一方面,本公开提供了一种数据库容灾备份方法。应用于容灾组件,所述容灾组件部署在源端数据库和目标端数据库之间;所述方法包括:
接收所述源端数据库传输的增量数据;
响应于接收到所述源端数据库发送的事务提交标识符,根据所述增量数据中定位标识符合并所述增量数据,得到合并增量数据,其中,所述事务提交标识符表征所述源端数据库中事务的完成;
将所述合并增量数据和/或所述增量数据以日志的数据格式存储在所述容灾组件的存储介质中。
在其中一个实施例中,所述响应于接收到所述源端数据库发送的事务提交标识符,根据所述增量数据中定位标识符合并所述增量数据,得到合并增量数据,包括:
在接收到源端数据库发送的事务提交标识符的情况下,通过所述增量数据中相同的定位标识符确定同一行记录的所述增量数据;
利用归并算法将同一行记录的所述增量数据合并为一条增量数据,得到合并增量数据。
在其中一个实施例中,所述容灾组件中至少存储如下内容:增量数据的修改时间对应的时间戳、所述目标端数据库的数据处理能力、以及所述增量数据对应的数据库名、数据表名、行标识符、历史值、更新值;所述方法包括:在所述容灾组件故障恢复后,利用所述增量数据的修改时间对应的时间戳,继续接收所述源端数据库中的增量数据。
在其中一个实施例中,所述将所述合并增量数据和/或所述增量数据以日志的数据格式存储在所述容灾组件的存储介质中之后,所述方法还包括:
根据所述合并增量数据对应的数据库名、数据表名和行标识符定位修改记录;
将所述合并增量数据中所述修改记录、以及所述修改记录对应的历史值和更新值,组装成结构化查询语句;
利用所述结构化查询语句将所述合并增量数据应用至所述目标端数据库。
在其中一个实施例中,所述利用所述结构化查询语句将所述合并增量数据应用至所述目标端数据库,包括:
根据所述目标端数据库的数据处理能力计算发送所述合并增量数据的速率;
利用所述结构化查询语句并通过所述速率将所述合并增量数据发送至所述目标端数据库。
在其中一个实施例中,所述容灾组件距离所述源端数据库在第一预设范围内;所述接收所述源端数据库传输的增量数据,包括:
接收所述源端数据库并发传输的同一个事务所对应的增量数据。
第二方面,本公开还提供了一种数据库容灾备份装置。应用于容灾组件,所述容灾组件部署在源端数据库和目标端数据库之间,所述装置包括:
数据接收模块,用于接收所述源端数据库传输的增量数据;
数据合并模块,用于响应于接收到所述源端数据库发送的事务提交标识符,根据所述增量数据中定位标识符合并所述增量数据,得到合并增量数据,其中,所述事务提交标识符表征所述源端数据库中事务的完成;
数据存储模块,用于将所述合并增量数据和/或所述增量数据以日志的数据格式存储在所述容灾组件的存储介质中。
在所述装置的其中一个实施例中,所述数据合并模块,包括:标识符定位模块,用于在接收到源端数据库发送的事务提交标识符的情况下,通过所述增量数据中相同的定位标识符确定同一行记录的所述增量数据;
归并算法处理模块,用于利用归并算法将同一行记录的所述增量数据合并为一条增量数据,得到合并增量数据。
在所述装置的其中一个实施例中,所述容灾组件中至少存储如下内容:增量数据的修改时间对应的时间戳、所述目标端数据库的数据处理能力、以及所述增量数据对应的数据库名、数据表名、行标识符、历史值、更新值;所述数据接收模块,还用于在所述容灾组件故障恢复后,利用所述增量数据的修改时间对应的时间戳,继续接收所述源端数据库中的增量数据。
在所述装置的其中一个实施例中,所述装置还包括:修改记录定位模块,用于根据所述合并增量数据对应的数据库名、数据表名和行标识符定位修改记录;
查询语句组装模块,用于将所述合并增量数据中所述修改记录、以及所述修改记录对应的历史值和更新值,组装成结构化查询语句;
增量数据发送模块,用于利用所述结构化查询语句将所述合并增量数据应用至所述目标端数据库。
在所述装置的其中一个实施例中,所述增量数据发送模块,包括:速率计算模块,用于根据所述目标端数据库的数据处理能力计算发送所述合并增量数据的速率;
数据发送子模块,用于利用所述结构化查询语句并通过所述速率将所述合并增量数据发送至所述目标端数据库。
第三方面,本公开还提供了一种计算机设备。所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述任一方法实施例的步骤。
第四方面,本公开还提供了一种计算机可读存储介质。所述计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时上述任一方法实施例的步骤。
第五方面,本公开还提供了一种计算机程序产品。所述计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述任一方法实施例的步骤。
上述各实施例中,通过接收源端数据库传输的增量数据,进而根据接收到的源端数据库发送的事务提交标识符,能够将增量数据合并为合并增量数据,保证数据的一致性,可以减小增量数据在目标端数据库的重放,落盘的压力。并且在合并为增量数据之后,后续在传输时,可以减少容灾组件向目标端数据库传输时的网络资源消耗。另外将合并增量数据以日志数据的格式村粗在容灾组件的存储介质中,不会因为系统意外关机重启等问题导致数据丢失,保证源端数据库在遭受重大灾难后即使容灾组件意外宕机后仍能够在重启后继续进行目标端数据库的恢复工作。
附图说明
为了更清楚地说明本公开具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本公开的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为源端数据库和目标端数据之间的数据备份示意图;
图2为一个实施例中数据库容灾备份方法的应用环境示意图;
图3为一个实施例中数据库容灾备份方法的流程示意图;
图4为一个实施例中S204步骤的流程示意图;
图5为一个实施例中S206步骤之后的流程示意图;
图6为一个实施例中S506步骤的流程示意图;
图7为另一个实施例中数据库容灾备份方法的流程示意图;
图8为一个实施例中数据库容灾备份装置的结构示意框图;
图9为一个实施例中计算机设备的内部结构示意图。
具体实施方式
为了使本公开的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本公开进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本公开,并不用于限定本公开。
需要说明的是,本文的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本文的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、装置、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
在本文中,术语“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系。例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
正如背景技术所述,如图1所示,以MySQL的主从复制机为例,其中,MySQL源端数据库需要开启二进制日志对所有增量数据进行归档;目标端数据库的IO线程连接源端数据库后发送增量数据请求,源端数据库接收请求后根据请求中指定的日志位点读取增量二进制日志内容,返回日志信息以及该日志在源端数据库中的二进制文件名称以及具体的位置;目标端数据库的IO线程接收到信息后,将接收到的日志内容追加写入到本地中继日志的末尾,并将源端数据库返回的二进制日志文件名以及位点信息保存在元信息文件中,用于指示目标端下一次请求的日志位点;最后,目标端的SQL线程定时检查中继日志中的更改内容并在数据库中进行重放。
由于金融数据库对于容灾系统恢复后的数据丢失量有严格的要求,如果遭受重大灾难后容灾系统恢复后目标端数据库中数据缺失过多,那么就无法继续承接相应的业务,导致容灾失败;另外金融数据库对于数据的一致性有严格的要求,如果源端数据库遭受重大灾难后通过容灾系统恢复后目标端数据库的数据不能够保证事务的一致性,那么同样无法继续承接相应的业务,导致容灾失败。
因此,为解决上述问题,本公开实施例提供了一种数据库容灾备份方法,可以应用于如图2所示的应用环境中。其中,容灾组件102通过有线或者无线的方式与源端数据库104和目标端数据库106进行通信,容灾组件102部署在源端数据库104和目标端数据库106之间。容灾组件102接收源端数据库104传输的增量数据。响应于容灾组件102接收到源端数据库104发送的事务提交标识符。容灾组件102根据增量数据中定位标识符合并所述增量数据,得到合并增量数据。其中,事务提交标识符表征源端数据库104中事务的完成。容灾组件102将合并增量数据以日志的数据格式存储在容灾组件102的存储介质中。其中,终端102可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑等。源端数据库104和目标端数据库可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
在一个实施例中,如图3所示,提供了一种数据库容灾备份方法,以该方法应用于图2中的容灾组件102为例进行说明,容灾组件部署在源端数据库和目标端数据库之间,所述方法包括以下步骤:
S202,接收所述源端数据库传输的增量数据。
其中,源端数据库是当前正在使用的生产系统,目标端数据库是作为备份系统在源端数据库受灾后接替对外继续提供服务。增量数据实际上存储的内容是源端数据库对于指定的库中的指定表中的某一行数据记录的修改(将某行数据记录的值从旧值修改为新值),修改后的值可以为增量数据。
具体地,容灾组件通过指定的请求接口向源端数据库请求发送增量数据。源端数据库接收到容灾组件的请求后,发送增量数据至容灾组件。容灾组件接收源端数据库传输的增量数据。另外,该请求接口通常情况下是特定的接口,可以用来发送增量数据,因此只要使用的接口正确就能保证从源端数据库接收到的一定是增量数据。
S204,响应于接收到所述源端数据库发送的事务提交标识符,根据所述增量数据中定位标识符合并所述增量数据,得到合并增量数据,其中,所述事务提交标识符表征所述源端数据库中事务的完成。
其中,事务标识符通常可以是容灾组件向源端数据库请求增量数据的过程中由源端数据库发送的,通过事务提交标识符能够确定这一个事务的完成。数据库事务(transaction)是访问并可能操作各种数据项的一个数据库操作序列,这些操作要么全部执行,要么全部不执行,是一个不可分割的工作单位。每个事务通常是由事务开始与事务结束之间执行的全部数据库操作组成。通常情况下一个表中的一行记录会有一个唯一的定位标识符,对于同一行记录的修改的增量数据拥有相同的行标识符(定位标识符),通过该标识符(定位标识符)可以确定两条增量数据是否修改的是同一行记录。
具体地,当容灾组件接收到源端数据库发送的事务提交标识符时,代表该增量数据所对应的事务完成了。因此,之前接收到的增量数据通常为同一个事务的增量数据。可以利用增量数据中的定位标识符确定同一行记录修改的增量数据,将该增量数据进行合并为一条数据,合并后可以得到合并增量数据。通常情况下,容灾组件会以自己最大的传输速度接收增量数据。
S206,将所述合并增量数据和/或所述增量数据以日志的数据格式存储在所述容灾组件的存储介质中。
其中,日志的数据格式通常为通用的数据格式,通常可以为日志文件,例如以记录为单位的日志文件和以数据块为单位的日志文件。
具体地,可以将合并增量数据持久化,以消息日志的数据格式持久化容灾组件的存储介质中,或者并未将增量数据进行合并,也可以将增量数据持久化,以消息日志的数据格式持久化容灾组件的存储介质中。
上述数据库容灾备份方法中,通过接收源端数据库传输的增量数据,进而根据接收到的源端数据库发送的事务提交标识符,能够将增量数据合并为合并增量数据,保证数据的一致性,可以减小增量数据在目标端数据库的重放,落盘的压力。并且在合并为增量数据之后,后续在传输时,可以减少容灾组件向目标端数据库传输时的网络资源消耗。另外将合并增量数据以日志数据的格式村粗在容灾组件的存储介质中,不会因为系统意外关机重启等问题导致数据丢失,保证源端数据库在遭受重大灾难后即使容灾组件意外宕机后仍能够在重启后继续进行目标端数据库的恢复工作。
在一个实施例中,如图4所示,所述响应于接收到所述源端数据库发送的事务提交标识符,根据所述增量数据中定位标识符合并所述增量数据,得到合并增量数据,包括:
S302,在接收到源端数据库发送的事务提交标识符的情况下,通过所述增量数据中相同的定位标识符确定同一行记录的所述增量数据。
S304,利用归并算法将同一行记录的所述增量数据合并为一条增量数据,得到合并增量数据。
其中,归并算法通常可以是归并排序(Merge sort)是建立在归并操作上的一种有效的排序算法,归并排序对序列的元素进行逐层折半分组,然后从最小分组开始比较排序,合并成一个大的分组,逐层进行,最终所有的元素都是有序的。
具体的,在容灾组件接收到源端数据库发送的事务提交标识符的情况下,通过定位标识符确定多条增量数据是不是修改的是同一行的记录。若定位标识符相同,则可以确定多条增量数据修改的是同一行的记录。利用归并算法将同一行的多个增量数据压缩合并为一条增量数据,减少容灾组件向目标端数据库传输是的网络资源消耗。
在一个实施例中,所述容灾组件中至少存储如下内容:增量数据的修改时间对应的时间戳、所述目标端数据库的数据处理能力、以及所述增量数据对应的数据库名、数据表名、行标识符、历史值、更新值;所述方法包括:在所述容灾组件故障恢复后,利用所述增量数据的修改时间对应的时间戳,继续接收所述源端数据库中的增量数据。
其中,增量数据的修改时间对应的时间戳可以是获取到增量数据的时间。目标端数据库的数据处理能力通常可以包括:CPU的性能、输入输出的性能或者其他的性能指标,其能够计算出目标端数据库可以接收的最大的数据量和传输速度。
具体地,在容灾组件遭受到故障又恢复后,因为将合并增量数据存储在存储介质中,所以存储在容灾组件并且尚未发送至目标端数据库的增量数据不会因此丢失。因此,可以利用增量数据的修改时间最新的对应的时间戳继续向源端数据库请求增量数据,继续接收源端数据库中的增量数据。
在本实施例中,通过时间戳能够保证源端数据库在遭受重大灾难后即使容灾组件意外宕机后仍能够在重启后继续进行目标端数据库的恢复工作。
在一个实施例中,如图5所示,所述将所述合并增量数据和/或所述增量数据以日志的数据格式存储在所述容灾组件的存储介质中之后,所述方法还包括:
S402,根据所述合并增量数据对应的数据库名、数据表名和行标识符定位修改记录;
S404,将所述合并增量数据中所述修改记录、以及所述修改记录对应的历史值和更新值,组装成结构化查询语句;
S406,利用所述结构化查询语句将所述合并增量数据应用至所述目标端数据库。
其中,结构化查询语句通常可以是数据库可以识别的语句,结构化查询语言(SQL)是一种专用编程语言,是一种数据库查询和编程语言,用于访问数据、查询、更新和管理关系数据库系统。
具体地,因为合并增量数据通常情况下是同一行的记录。因此,可以根据合并增量数据中对应的数据库名,数据表名、行标识符定位该合并增加数据对应的修改记录。根据修改记录和合并增量数据中修改记录对应的历史值和更新值拼接组装成为数据库可以识别的结构化查询语句。通过该语句,容灾组件可以将合并增量数据对于记录的修改应用至目标端数据库。可以是将合并增量数据发送至目标端数据库。
在一个实施例中,如图6所示,所述利用所述结构化查询语句将所述合并增量数据应用至所述目标端数据库,包括:
S602,根据所述目标端数据库的数据处理能力计算发送所述合并增量数据的速率;
S604,利用所述结构化查询语句并通过所述速率将所述合并增量数据发送至所述目标端数据库。
具体地,可以根据目标端数据库当前的CPU利用率,I/O利用率以及其他系统资源占用的指标值,计算当前容灾组件可以发送的合并增量数据的速率。计算出对应的速率后,容灾可以利用所述结构化查询语句并通过所述速率将所述合并增量数据发送至所述目标端数据库。能够灵活控制源端和目标端数据传输时的速率从而减小数据库的业务压力。
在一个实施例中,所述容灾组件距离所述源端数据库在第一预设范围内;所述接收所述源端数据库传输的增量数据,包括:
接收所述源端数据库并发传输的同一个事务所对应的增量数据。
具体地,第一预设范围通常情况下可以根据源端数据库和目标端数据之间的距离确定的。通常情况下,过于临近源端数据库会导致在源端数据库受灾的同时临近源端数据库所处区域也有较大概率会受灾或者受到影响,进而可能会影响到受灾组件,过于疏远源端数据库则会导致传输距离过长,组件向源端数据库请求增量数据时会受到严重的网络延迟问题。因此。容灾组件部署应当位于源端数据库、目标端数据库的中间区域,并且具体源端数据库一定的预设范围。在接收增量数据时,允许源端数据库对于同一个事务中的增量数据并发传输至容灾组件,保证源端数据库宕机时容灾组件中已经存储了足量的同步数据,满足金融数据库对于数据丢失的容忍度。并且容灾组件自身需要具备一定的高可用性,高可用性(High availability)是指在容灾组件能够保证在指定的一段时间正常运行,不会由于断点重启等因素导致容灾组件出现一段时间的服务不可用。
在一个实施例中,如图7所示,本公开实施例还提供了另一种数据库容灾备份方法,包括如下步骤:
S702,接收所述源端数据库并发传输的同一个事务所对应的增量数据。
S704,在接收到源端数据库发送的事务提交标识符的情况下,通过所述增量数据中相同的定位标识符确定同一行记录的所述增量数据。
S706,利用归并算法将同一行记录的所述增量数据合并为一条增量数据,得到合并增量数据。
S708,所述容灾组件中至少存储如下内容:增量数据的修改时间对应的时间戳、所述目标端数据库的数据处理能力、以及所述增量数据对应的数据库名、数据表名、行标识符、历史值、更新值;所述方法包括:在所述容灾组件故障恢复后,利用所述增量数据的修改时间对应的时间戳,继续接收所述源端数据库中的增量数据。
S710,将所述合并增量数据和/或所述增量数据以日志的数据格式存储在所述容灾组件的存储介质中。
S712,根据所述合并增量数据对应的数据库名、数据表名和行标识符定位修改记录。
S714,将所述合并增量数据中所述修改记录、以及所述修改记录对应的历史值和更新值,组装成结构化查询语句;
S716,根据所述目标端数据库的数据处理能力计算发送所述合并增量数据的速率。
S718,利用所述结构化查询语句并通过所述速率将所述合并增量数据发送至所述目标端数据库。
关于本实施例中的具体实施方式和限定可以参见上述实施例,在此不进行重复赘述。
应该理解的是,虽然如上所述的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上所述的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
基于同样的发明构思,本公开实施例还提供了一种用于实现上述所涉及的数据库容灾备份方法的数据库容灾备份装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个数据库容灾备份装置实施例中的具体限定可以参见上文中对于数据库容灾备份方法的限定,在此不再赘述。
在一个实施例中,如图8所示,提供了一种数据库容灾备份装置800,应用于容灾组件,所述容灾组件部署在源端数据库和目标端数据库之间,所述装置包括:数据接收模块802、数据合并模块804和数据存储模块806,其中:
数据接收模块802,用于接收所述源端数据库传输的增量数据;
数据合并模块804,用于响应于接收到所述源端数据库发送的事务提交标识符,根据所述增量数据中定位标识符合并所述增量数据,得到合并增量数据,其中,所述事务提交标识符表征所述源端数据库中事务的完成;
数据存储模块806,用于将所述合并增量数据和/或所述增量数据以日志的数据格式存储在所述容灾组件的存储介质中。
在所述装置的一个实施例中,所述数据合并模块804,包括:标识符定位模块,用于在接收到源端数据库发送的事务提交标识符的情况下,通过所述增量数据中相同的定位标识符确定同一行记录的所述增量数据;
归并算法处理模块,用于利用归并算法将同一行记录的所述增量数据合并为一条增量数据,得到合并增量数据。
在所述装置的一个实施例中,所述容灾组件中至少存储如下内容:增量数据的修改时间对应的时间戳、所述目标端数据库的数据处理能力、以及所述增量数据对应的数据库名、数据表名、行标识符、历史值、更新值;所述数据接收模块802,还用于在所述容灾组件故障恢复后,利用所述增量数据的修改时间对应的时间戳,继续接收所述源端数据库中的增量数据。
在所述装置的一个实施例中,所述装置还包括:修改记录定位模块,用于根据所述合并增量数据对应的数据库名、数据表名和行标识符定位修改记录;
查询语句组装模块,用于将所述合并增量数据中所述修改记录、以及所述修改记录对应的历史值和更新值,组装成结构化查询语句;
增量数据发送模块,用于利用所述结构化查询语句将所述合并增量数据应用至所述目标端数据库。
在所述装置的一个实施例中,所述增量数据发送模块,包括:速率计算模块,用于根据所述目标端数据库的数据处理能力计算发送所述合并增量数据的速率;
数据发送子模块,用于利用所述结构化查询语句并通过所述速率将所述合并增量数据发送至所述目标端数据库。
上述数据库容灾备份装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图9所示。该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质和内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储增量数据和合并增量数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种数据库容灾备份方法。
本领域技术人员可以理解,图9中示出的结构,仅仅是与本公开方案相关的部分结构的框图,并不构成对本公开方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述任一方法实施例中的步骤。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述任一方法实施例中的步骤。
在一个实施例中,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述任一方法实施例中的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本公开所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-OnlyMemory,ROM)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(ReRAM)、磁变存储器(Magnetoresistive Random Access Memory,MRAM)、铁电存储器(Ferroelectric Random Access Memory,FRAM)、相变存储器(Phase Change Memory,PCM)、石墨烯存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器等。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic RandomAccess Memory,DRAM)等。本公开所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本公开所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本公开的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本公开专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本公开构思的前提下,还可以做出若干变形和改进,这些都属于本公开的保护范围。因此,本公开的保护范围应以所附权利要求为准。
Claims (14)
1.一种数据库容灾备份方法,其特征在于,应用于容灾组件,所述容灾组件部署在源端数据库和目标端数据库之间;所述方法包括:
接收所述源端数据库传输的增量数据;
响应于接收到所述源端数据库发送的事务提交标识符,根据所述增量数据中定位标识符合并所述增量数据,得到合并增量数据,其中,所述事务提交标识符表征所述源端数据库中事务的完成;
将所述合并增量数据和/或所述增量数据以日志的数据格式存储在所述容灾组件的存储介质中。
2.根据权利要求1所述的方法,其特征在于,所述响应于接收到所述源端数据库发送的事务提交标识符,根据所述增量数据中定位标识符合并所述增量数据,得到合并增量数据,包括:
在接收到源端数据库发送的事务提交标识符的情况下,通过所述增量数据中相同的定位标识符确定同一行记录的所述增量数据;
利用归并算法将同一行记录的所述增量数据合并为一条增量数据,得到合并增量数据。
3.根据权利要求1所述的方法,其特征在于,所述容灾组件中至少存储如下内容:增量数据的修改时间对应的时间戳、所述目标端数据库的数据处理能力、以及所述增量数据对应的数据库名、数据表名、行标识符、历史值、更新值;所述方法包括:在所述容灾组件故障恢复后,利用所述增量数据的修改时间对应的时间戳,继续接收所述源端数据库中的增量数据。
4.根据权利要求3所述的方法,其特征在于,所述将所述合并增量数据和/或所述增量数据以日志的数据格式存储在所述容灾组件的存储介质中之后,所述方法还包括:
根据所述合并增量数据对应的数据库名、数据表名和行标识符定位修改记录;
将所述合并增量数据中所述修改记录、以及所述修改记录对应的历史值和更新值,组装成结构化查询语句;
利用所述结构化查询语句将所述合并增量数据应用至所述目标端数据库。
5.根据权利要求4所述的方法,其特征在于,所述利用所述结构化查询语句将所述合并增量数据应用至所述目标端数据库,包括:
根据所述目标端数据库的数据处理能力计算发送所述合并增量数据的速率;
利用所述结构化查询语句并通过所述速率将所述合并增量数据发送至所述目标端数据库。
6.根据权利要求1所述的方法,其特征在于,所述容灾组件距离所述源端数据库在第一预设范围内;所述接收所述源端数据库传输的增量数据,包括:
接收所述源端数据库并发传输的同一个事务所对应的增量数据。
7.一种数据库容灾备份装置,其特征在于,应用于容灾组件,所述容灾组件部署在源端数据库和目标端数据库之间,所述装置包括:
数据接收模块,用于接收所述源端数据库传输的增量数据;
数据合并模块,用于响应于接收到所述源端数据库发送的事务提交标识符,根据所述增量数据中定位标识符合并所述增量数据,得到合并增量数据,其中,所述事务提交标识符表征所述源端数据库中事务的完成;
数据存储模块,用于将所述合并增量数据和/或所述增量数据以日志的数据格式存储在所述容灾组件的存储介质中。
8.根据权利要求7所述的装置,其特征在于,所述数据合并模块,包括:标识符定位模块,用于在接收到源端数据库发送的事务提交标识符的情况下,通过所述增量数据中相同的定位标识符确定同一行记录的所述增量数据;
归并算法处理模块,用于利用归并算法将同一行记录的所述增量数据合并为一条增量数据,得到合并增量数据。
9.根据权利要求7所述的装置,其特征在于,所述容灾组件中至少存储如下内容:增量数据的修改时间对应的时间戳、所述目标端数据库的数据处理能力、以及所述增量数据对应的数据库名、数据表名、行标识符、历史值、更新值;所述数据接收模块,还用于在所述容灾组件故障恢复后,利用所述增量数据的修改时间对应的时间戳,继续接收所述源端数据库中的增量数据。
10.根据权利要求7所述的装置,其特征在于,所述装置还包括:修改记录定位模块,用于根据所述合并增量数据对应的数据库名、数据表名和行标识符定位修改记录;
查询语句组装模块,用于将所述合并增量数据中所述修改记录、以及所述修改记录对应的历史值和更新值,组装成结构化查询语句;
增量数据发送模块,用于利用所述结构化查询语句将所述合并增量数据应用至所述目标端数据库。
11.根据权利要求10所述的装置,其特征在于,所述增量数据发送模块,包括:速率计算模块,用于根据所述目标端数据库的数据处理能力计算发送所述合并增量数据的速率;
数据发送子模块,用于利用所述结构化查询语句并通过所述速率将所述合并增量数据发送至所述目标端数据库。
12.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至6中任一项所述的方法的步骤。
13.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至6中任一项所述的方法的步骤。
14.一种计算机程序产品,包括计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1至6中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210968043.3A CN115373898A (zh) | 2022-08-12 | 2022-08-12 | 数据库容灾备份方法、装置、计算机设备、存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210968043.3A CN115373898A (zh) | 2022-08-12 | 2022-08-12 | 数据库容灾备份方法、装置、计算机设备、存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115373898A true CN115373898A (zh) | 2022-11-22 |
Family
ID=84065147
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210968043.3A Pending CN115373898A (zh) | 2022-08-12 | 2022-08-12 | 数据库容灾备份方法、装置、计算机设备、存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115373898A (zh) |
-
2022
- 2022-08-12 CN CN202210968043.3A patent/CN115373898A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20190146946A1 (en) | Method and device for archiving block data of blockchain and method and device for querying the same | |
US10831614B2 (en) | Visualizing restoration operation granularity for a database | |
US11120152B2 (en) | Dynamic quorum membership changes | |
CN101809558B (zh) | 远程异步数据复制系统和方法 | |
WO2019154394A1 (zh) | 分布式数据库集群系统、数据同步方法及存储介质 | |
US8285689B2 (en) | Distributed file system and data block consistency managing method thereof | |
KR100471567B1 (ko) | 이중화 시스템 환경에서 데이터 동기화를 위한 트랜잭션관리 방법 | |
CN102158540A (zh) | 分布式数据库实现系统及方法 | |
US7761431B2 (en) | Consolidating session information for a cluster of sessions in a coupled session environment | |
CN110825698B (zh) | 元数据管理方法及相关装置 | |
CN115599747B (zh) | 一种分布式存储系统的元数据同步方法、系统及设备 | |
CN110147203B (zh) | 一种文件管理方法、装置、电子设备及存储介质 | |
US10223184B1 (en) | Individual write quorums for a log-structured distributed storage system | |
US20150331760A1 (en) | Performance during playback of logged data storage operations | |
CN113885809B (zh) | 数据管理系统及方法 | |
US11042454B1 (en) | Restoration of a data source | |
CN113076298A (zh) | 分布式小文件存储系统 | |
CN116303789A (zh) | 多分片多副本数据库并行同步方法、装置及可读介质 | |
CN113515518A (zh) | 数据存储方法、装置、计算机设备和存储介质 | |
CN112905676A (zh) | 一种数据文件的导入方法及装置 | |
CN115373898A (zh) | 数据库容灾备份方法、装置、计算机设备、存储介质 | |
CN115878381A (zh) | 基于srm盘的数据恢复方法及装置、存储介质、电子装置 | |
CN104679883A (zh) | 一种利用分区置换实现数据快速归档降存储空间的方法 | |
CN117950597B (zh) | 数据修改写方法、数据修改写装置以及计算机存储介质 | |
WO2024093263A1 (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 |