CN111400097A - 数据的备份方法、装置、***和计算机可读存储介质 - Google Patents
数据的备份方法、装置、***和计算机可读存储介质 Download PDFInfo
- Publication number
- CN111400097A CN111400097A CN202010180809.2A CN202010180809A CN111400097A CN 111400097 A CN111400097 A CN 111400097A CN 202010180809 A CN202010180809 A CN 202010180809A CN 111400097 A CN111400097 A CN 111400097A
- Authority
- CN
- China
- Prior art keywords
- backup
- data
- database
- processing
- backed
- 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/1464—Management of the backup or restore process for networked environments
-
- 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
-
- 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)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Quality & Reliability (AREA)
- Data Mining & Analysis (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开涉及一种数据的备份方法、装置、***和计算机可读存储介质,涉及数据处理技术领域。该方法包括:根据第一数据库中数据变化的情况,生成报文;判断数据变化是否源于第二数据库向第一数据库的备份操作;在数据变化是源于第二数据库的备份操作情况下,在报文中添加标识,用于标记数据变化无需进行备份处理;在述数据变化不是源于第二数据库的备份操作情况下,根据报文向所述第二数据库进行备份处理。
Description
技术领域
本公开涉及数据处理技术领域,特别涉及一种数据的备份方法、数据的备份装置、数据的备份***和计算机可读存储介质。
背景技术
为防止出现操作失误或***故障导致数据丢失,可以通过数据备份技术将全***或部分数据集合,从应用主机的硬盘或阵列复制到其他存储介质。例如,可以将一个数据库中的数据,备份到另一个数据库中。
在相关技术中,为单独对外提供服务的主数据库,设置一个仅用于备份的从数据库。基于PostgreSQL提供的逻辑流复制(流复制)技术,实现主数据库向从数据库的数据同步(数据备份)。
发明内容
本公开的发明人发现上述相关技术中存在如下问题:仅能实现主数据库向从数据库的单向备份,否则会导致由于各数据库中数据不断变化造成的循环备份问题,从而降低了数据备份的性能。
鉴于此,本公开提出了一种数据的备份技术方案,能够解决循环备份的问题,实现数据库之间的双向备份,从而提高数据备份的性能。
根据本公开的一些实施例,提供了一种数据的备份方法,包括:根据第一数据库中数据变化的情况,生成报文;判断所述数据变化是否源于第二数据库向所述第一数据库的备份操作;在所述数据变化是源于所述第二数据库的备份操作情况下,在所述报文中添加标识,用于标记所述数据变化无需进行备份处理;在所述数据变化不是源于所述第二数据库的备份操作情况下,根据所述报文向所述第二数据库进行备份处理。
在一些实施例中,所述在所述数据变化不是源于所述第二数据库的备份操作情况下,根据所述报文向所述第二数据库进行备份处理包括:根据所述备份处理中各备份操作的时序需求,确定是否进行并行处理;在进行并行处理的情况下,根据各待备份数据的主键字段,将各相应的备份操作分配到不同的备份子线程,以便并行执行所述备份处理;在不进行并行处理的情况下,将各备份操作分配到同一个线程,以便串行执行所述备份处理。
在一些实施例中,所述在进行并行处理的情况下,根据各待备份数据的主键字段,将各相应的备份操作分配到不同的备份子线程包括:根据各待备份数据的主键字段和待备份数据表的名称,确定各待备份数据的备份哈希值,所述各待备份数据为所述待备份数据表中的各数据记录;根据各备份哈希值和各备份子线程对应的分配哈希值,为所述各备份数据的相应备份操作分配不同的备份子线程。
在一些实施例中,所述根据各备份哈希值和各备份子线程对应的分配哈希值,为所述各备份数据的相应备份操作分配不同的备份子线程包括:根据哈希模参数,对各分配哈希值进行取模处理;根据各取模处理结果和各分配哈希值,为所述各备份数据的相应备份操作分配不同的备份子线程。
在一些实施例中,所述在不进行并行处理的情况下,将各备份操作分配到同一个线程,以便串行执行所述备份处理包括:根据所述各备份操作的处理时序,生成备份操作队列;利用所述同一个线程,依次处理所述备份操作队列中的各备份操作。
在一些实施例中,所述的备份方法还包括:在备份处理失败的情况下,将该备份处理存储为失败记录;定时读取各失败记录,判断是否存在满足重新处理条件的失败记录;对满足所述重新处理条件的失败记录重新进行相应的备份处理。
在一些实施例中,所述重新处理条件包括下述条件中的至少一个:失败记录相应的备份处理未重新处理成功;失败记录相应的数据在所述第一数据库中未被更新。
在一些实施例中,所述重新处理条件,根据所述各失败记录中包括的相应备份处理的事务标识判断。
在一些实施例中,所述根据第一数据库中数据变化的情况,生成报文包括:根据业务需求,在发生变化的数据中筛选出待备份数据;根据所述待备份数据,生成所述报文。
在一些实施例中,所述在所述数据变化不是源于所述第二数据库的备份操作情况下,根据所述报文向所述第二数据库进行备份处理包括:在所述第二数据库为与所述第一数据库不同类型的关系型数据库的情况下,将所述备份处理的相应SQL(Structured QueryLanguage,结构化查询语言)语句转换为所述第二数据库能够识别的语句,以执行所述备份处理。
在一些实施例中,所述在所述数据变化不是源于所述第二数据库的备份操作情况下,根据所述报文向所述第二数据库进行备份处理包括:在所述第二数据库为文件处理***的数据库的情况下,将所述备份处理的相应DML语句保存在所述文件处理***相应的文本文件中;将所述文本文件存储在所述第二数据库中。
在一些实施例中,所述报文包括所述数据变化相应的备份操作标识、相应的事务标识、待备份数据的标识、待备份数据的存储位置、待备份数据的主键中的至少一项和DML(Data Manipulation Language,数据操纵语言)语句。
根据本公开的另一些实施例,提供一种数据的备份装置,包括:生成单元,用于根据第一数据库中数据变化的情况,生成报文;判断单元,用于判断所述数据变化是否源于第二数据库向所述第一数据库的备份操作;添加单元,用于在所述数据变化是源于所述第二数据库的备份操作情况下,在所述报文中添加标识,用于标记所述数据变化无需进行备份处理;备份单元,用于在所述数据变化不是源于所述第二数据库的备份操作情况下,根据所述报文向所述第二数据库进行备份处理。
在一些实施例中,备份单元根据所述备份处理中各备份操作的时序需求,确定是否进行并行处理;在进行并行处理的情况下,根据各待备份数据的主键字段,将各相应的备份操作分配到不同的备份子线程,以便并行执行所述备份处理;在不进行并行处理的情况下,将各备份操作分配到同一个线程,以便串行执行所述备份处理。
在一些实施例中,备份单元根据各待备份数据的主键字段和待备份数据表的名称,确定各待备份数据的备份哈希值,所述各待备份数据为所述待备份数据表中的各数据记录;根据各备份哈希值和各备份子线程对应的分配哈希值,为所述各备份数据的相应备份操作分配不同的备份子线程。
在一些实施例中,备份单元根据哈希模参数,对各分配哈希值进行取模处理;根据各取模处理结果和各分配哈希值,为所述各备份数据的相应备份操作分配不同的备份子线程。
在一些实施例中,备份单元根据所述各备份操作的处理时序,生成备份操作队列;利用所述同一个线程,依次处理所述备份操作队列中的各备份操作。
在一些实施例中,备份单元在备份处理失败的情况下,将该备份处理存储为失败记录;判断单元定时读取各失败记录,判断是否存在满足重新处理条件的失败记录;备份单元对满足所述重新处理条件的失败记录重新进行相应的备份处理。
在一些实施例中,所述重新处理条件包括下述条件中的至少一个:失败记录相应的备份处理未重新处理成功;失败记录相应的数据在所述第一数据库中未被更新。
在一些实施例中,所述重新处理条件,根据所述各失败记录中包括的相应备份处理的事务标识判断。
在一些实施例中,生成单元根据业务需求,在发生变化的数据中筛选出待备份数据;根据所述待备份数据,生成所述报文。
在一些实施例中,备份单元在所述第二数据库为与所述第一数据库不同类型的关系型数据库的情况下,将所述备份处理的相应SQL语句转换为所述第二数据库能够识别的语句,以执行所述备份处理。
在一些实施例中,备份单元在所述第二数据库为文件处理***的数据库的情况下,将所述备份处理的相应DML语句保存在所述文件处理***相应的文本文件中;将所述文本文件存储在所述第二数据库中。
在一些实施例中,所述报文包括所述数据变化相应的备份操作标识、相应的事务标识、待备份数据的标识、待备份数据的存储位置、待备份数据的主键中的至少一项和DML语句。
根据本公开的又一些实施例,提供一种数据的备份装置,包括:存储器;和耦接至所述存储器的处理器,所述处理器被配置为基于存储在所述存储器装置中的指令,执行上述任一个实施例中的数据的备份方法。
根据本公开的再一些实施例,提供一种数据的备份***,包括:第一数据库、第二数据库;以及数据的备份装置,用于执行上述任一个实施例中的数据的备份方法。
在一些实施例中,所述第一数据库进行本中心应用的数据库读写访问和跨中心应用的数据库读写访问;所述第二数据库进行本中心应用的数据库读写访问和跨中心应用的数据库读写访问。
根据本公开的再一些实施例,提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述任一个实施例中的数据的备份方法。
在上述实施例中,通过对报文进行标记,区分源于本数据库的数据变化和源于其他数据库的备份操作的数据变化,解决了循环备份的问题。这样,能够实现数据库之间的双向备份,提高数据备份的性能。
附图说明
构成说明书的一部分的附图描述了本公开的实施例,并且连同说明书一起用于解释本公开的原理。
参照附图,根据下面的详细描述,可以更加清楚地理解本公开,其中:
图1示出本公开的数据的备份方法的一些实施例的流程图;
图2示出本公开的数据的备份方法的一些实施例的示意图;
图3示出图1中步骤140的一些实施例的流程图;
图4示出本公开的数据的备份方法的另一些实施例的流程图;
图5示出本公开的数据的备份装置的一些实施例的示意图;
图6示出本公开的数据的备份装置的另一些实施例的示意图;
图7示出本公开的数据的备份装置的一些实施例的框图;
图8示出本公开的数据的备份装置的另一些实施例的框图;
图9示出本公开的数据的备份装置的又一些实施例的框图;
图10示出本公开的数据的备份***的一些实施例的框图。
具体实施方式
现在将参照附图来详细描述本公开的各种示例性实施例。应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本公开的范围。
同时,应当明白,为了便于描述,附图中所示出的各个部分的尺寸并不是按照实际的比例关系绘制的。
以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本公开及其应用或使用的任何限制。
对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为授权说明书的一部分。
在这里示出和讨论的所有示例中,任何具体值应被解释为仅仅是示例性的,而不是作为限制。因此,示例性实施例的其它示例可以具有不同的值。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
如前所述,PostgreSQL数据库本身的流复制技术,受到复制效率、循环备份等问题的制约,无法实现跨城域之间的数据库主从双活。主从双活即不分主从,两个以上的数据库均可以单独对外提供服务(如与各应用进行读写访问)。
也就是说,流复制技术只能以主库单独对外提供服务,从库只能提供部分功能或者单纯作为数据的备份来使用。
另外,流复制技术还具有只能采用串行方式进行备份、没有重发机制、没有备份识别监控功能、不支持表结构同步、无法将数据复制到其他类型的数据库中等问题。
在一些实施例中,针对上述技术问题,本公开可以利用数据库(如PostgreSQL)的扩展插件技术、多维度并发处理算法,实现主从数据库的数据高速复制,或者数据库之间的数据互相复制。
由于采用了多维度并发执行数据复制,本公开的技术方案能够提高数据备份效率;而且,本公开的技术方案能够实现主从数据库的双活。
在一些实施例中,本公开的技术方案可以基于以下技术实现:预写日志及逻辑流复制技术;插件扩展技术;源数据标记技术;数据的分片和多维度并发处理算法。例如,可以通过如下的实施例实现。
图1示出本公开的数据的备份方法的一些实施例的流程图。
如图1所示,该方法包括:步骤110,生成报文;步骤120,判断数据变化是否源于其他数据库;步骤130,添加标识;和步骤140,进行备份处理。
在步骤110中,根据第一数据库中数据变化的情况,生成报文。例如,报文可以包括数据变化相应的备份操作标识、相应的事务标识、待备份数据的标识、待备份数据的存储位置、待备份数据的主键中的至少一项和DML语句。
在一些实施例中,可以利用数据库的同步插件组装与数据同步模块之间的通讯报文,可以利用socket方式,将组装完成的报文字符流发送给数据同步模块。
例如,数据库中的数据采用数据表的形式存储。每个数据表中包括至少一条数据记录。每条数据记录可以包括多个字段,其中包括可以作为记录唯一标识的主键字段(如用户身份证号等)。这种数据表、数据记录、主键的数据结构,能够实现数据表的备份。
通讯报文的格式可以如下:[操作标识(长度为1字节)][事务ID长度(共包括4位),事务ID][表名长度(共包括4位),表名][where条件长度(共包括4位),where条件][主键长度(共包括4位),主键][DML语句]。
例如,每次备份处理为一次事务,具有唯一的事务ID;每次备份处理包括至少一个备份理操作。备份操作的标识可以包括B(begin命令)、C(commit命令)、I(insert命令)、U(update命令)、D(delete命令)。where条件用于定位需要进行备份操作的记录、字段等。
在一些实施例中,根据业务需求,在发生变化的数据中筛选出待备份数据;根据待备份数据,生成报文。例如,可以利用数据库的同步插件,判断是否开启数据备份的订阅模式(发布模式),并标记数据表中哪些发生变化的记录为发布记录,哪些为非发布记录;如果开启发布模式,则过滤非发布记录,只同步发布记录。
例如,可以利用PostgreSQL数据库“create publication”语句将需要同步的记录进行发布;同步插件程序模块会对发布记录进行封装,并发送给数据同步装置。
在步骤120中,判断数据变化是否源于第二数据库向第一数据库的备份操作。在数据变化是源于第二数据库的备份操作情况下,执行步骤130;在数据变化不是源于第二数据库的备份操作情况下,执行步骤140。
在一些实施例中,第一数据库和第二数据库处于双活状态。也就是说,第一数据库和第二数据库没有主从之分,均单独对外提供服务,且可以互相备份数据。例如,可以通过图2中的实施例配置双活状态。
图2示出本公开的数据的备份方法的一些实施例的示意图。
如图2所示,对于两个业务中心:A中心和B中心,分别配备有各自的应用和数据库。
A中心应用可以与A中心数据库进行本中心数据库的读写访问;B中心应用可以与B中心数据库进行本中心数据库的读写访问。A中心应用可以与B中心数据库进行跨中心数据库的读写访问;B中心应用可以与A中心数据库进行跨中心数据库的读写访问。
在一些实施例中,在A中心数据库发生数据变化的情况下,A中心数据同步程序模块可以将数据变化备份到B中心数据库。但是,A中心数据库的这种备份处理会造成B中心数据库的数据变化,从而导致B中心数据库将该数据变化重新备份到A中心数据库。进而,A中心数据库又会发生数据变化,并将该数据变化备份给B中心数据库。
也就是说,在双活状态下,可能发生上述的循环备份问题。例如,可以采用图1中的步骤解决循环备份问题。
在步骤130中,在报文中添加标识,用于标记数据变化无需进行备份处理。例如,发现此次数据变化源于其他数据库的备份处理,可以标注此次会话无需备份。
在一些实施例中,在数据变化是源于第二数据库的备份操作情况下,可以需要在子线程建立数据库之间的连接后,标记本次会话的数据变化不需同步。这样,这类数据变化不会再发送到数据库的同步插件中,从而避免了双活状态下数据的循环同步。
在步骤140中,根据报文向第二数据库进行备份处理。例如,可以根据备份处理中各备份操作的时序需求,确定是否进行并行处理。可以通过图3中的实施例实现步骤140。
图3示出图1中步骤140的一些实施例的流程图。
如图3所示,步骤140包括:步骤1410,获取时序需求;步骤1420,判断是否进行并行处理;步骤1430,分配多个子线程;和步骤1440,分配同一个线程。
在步骤1410中,获取当前业务的相应备份处理的时序需求。例如,对于银行***,一些用户账面数据的转入转出操作的处理顺序是关键信息,这种备份处理需要高时序需求;一些用户属性数据的修改操作的处理顺序并不重要,这种备份处理不需要高时序需求。
在步骤1420中,根据备份处理中各备份操作的时序需求,确定是否进行并行处理。在进行并行处理的情况下,执行步骤1430;在不进行并行处理的情况下,执行步骤1440。
在步骤1430中,根据各待备份数据的主键字段,将各相应的备份操作分配到不同的备份子线程,以便并行执行备份处理。
在一些实施例中,根据配置的工作线程数启动工作线程,并每一个工作线程建立自己的消息队列。例如,工作线程启动后,可以监听主线程和子线程之间的管道句柄,等待主线程的任务通知消息。
在一些实施例中,根据各待备份数据的主键字段和待备份数据表的名称,确定各待备份数据的备份哈希值。各待备份数据为待备份数据表中的各数据记录。
根据各备份哈希值和各备份子线程对应的分配哈希值,为各备份数据的相应备份操作分配不同的备份子线程。例如,根据哈希模参数,对各分配哈希值进行取模处理。根据各取模处理结果和各分配哈希值,为各备份数据的相应备份操作分配不同的备份子线程。
在一些实施例中,在进行并行处理的情况下,计算“表名+记录主键”的hash数值(备份哈希值),用该hash数值与hash_mask(哈希模参数)取模运算;如果返回值与子线程所在的hash_slot(分配哈希值)一致,则利用该子线程同步该条记录;否则不利用该子线程同步该记录。
例如,并行处理过程可以称为自由模式的备份任务。在这种情况下,可以对封装好的任务按数据的“表名+记录主键”进行hash计算,以确定备份哈希值;通过对备份哈希值和队列数进行取模操作来进行分组,从而将任务放置到不同的队列当中并行处理。这样,每个队列有单独的工作线程进行处理,从而达到并发同步的效果。
例如,主线程将任务推送到分组的队列之后,通过主线程和子线程之间的管道发送通知消息给子线程;子线程收到消息后,开始读取自己对应的队列,收取任务信息。
在步骤1440中,将各备份操作分配到同一个线程,以便串行执行备份处理。
在一些实施例中,根据各备份操作的处理时序,生成备份操作队列;利用同一个线程,依次处理备份操作队列中的各备份操作。
例如,串行处理过程可以称为固定模式的备份任务。可以建立一个用于处理固定模式备份任务的全局线程和全局队列。在固定模式下,所有的同步任务都会通过该队列进行排队,由同一个全局工作线程逐个任务的进行处理。
图4示出本公开的数据的备份方法的另一些实施例的流程图。
如图4所示,该方法还包括:步骤410,存储失败记录;步骤420,判断是否妈妈族重新处理条件;步骤430,重新备份;和步骤440,不重新备份。
在步骤410中,在备份处理失败的情况下,将该备份处理存储为失败记录。
在步骤420中,定时读取各失败记录,判断是否存在满足重新处理条件的失败记录。重新处理条件包括下述条件中的至少一个:失败记录相应的备份处理未重新处理成功;失败记录相应的数据在所述第一数据库中未被更新。
在一些实施例中,备份程序启动后,解析配置文件中的时间间隔配置项。例如,可以利用数据库的libevent的时间事件机制来实现定时器,用于按配置的时间间隔定时访问异常数据登记信息,查询同步失败记录。
在一些实施例中,重新处理条件,根据各失败记录中包括的相应备份处理的事务标识判断。
例如,可以逐条处理通过定时访问取出的读取结果,并判断当前失败记录所在事务在其他处的记录同步情况。例如,可以判断当前失败记录所在事务中,该记录是否***作多次。如果操作多次,并且后续操作已经同步成功,则本记录不再处理。
判断当前失败记录是否在同步失败后,在原数据库中被更新。例如,可以通过判断原数据库中该记录的xmin字段是否与本事务ID一致来判断是否更新。
在存在满足重新处理条件的失败记录的情况下,执行步骤430;在不存在满足重新处理条件的失败记录的情况下,执行步骤440。
在步骤430中,对满足重新处理条件的失败记录重新进行相应的备份处理。
在步骤440中,确定不存在未处理成功的失败记录,不进行重新备份处理。
在一些实施例中,如果SQL操作出现异常,则将该事务标记为异常任务,并发送给异常处理线程;异常处理线程收到异常任务后,在从数据库(如第二数据库)中查询该操作记录状态是否与该异常任务中的SQL操作结果一致(如是否均为备份识别);如果不一致,则登记异常处理记录表(失败记录表),异常处理模块会进行后续处理。
在一些实施例中,在第二数据库为与第一数据库不同类型的关系型数据库的情况下,将备份处理的相应SQL语句转换为第二数据库能够识别的语句,以执行备份处理。
在一些实施例中,在第二数据库为文件处理***(如Office***)的数据库的情况下,将备份处理的相应DML语句保存在文件处理***相应的文本文件中;将文本文件存储在第二数据库中。
例如,备份处理的相应工作线程可以根据配置信息来判断,同步的目标是关系型数据库还是文件***。如果是关系型数据库,则执行相应的SQL语句进行转换(转换为目标数据库识别的标准SQL语句来执行);如果同步目标是文件***,则将该DML语句信息并保存到文件当中。
在一些实施例中,基于上述实施例中的备份方法的备份装置可以应用于双活状态的不同数据库***,也可以应用于主从状态的不同数据库***。例如,可以通过图5中的实施例实现双活状态下的备份装置。
图5示出本公开的数据的备份装置的一些实施例的示意图。
如图5所示,备份装置可以从功能上分为三个部分:插件程序模块、同步程序模块、异常处理程序模块。
在一些实施例中,对于两个均能够单独对外提供服务的主数据库,各数据库的插件程序模块可以通过数据库扩展接口与PostgreSQL框架(framework)交互;PostgreSQL框架包括WAL(Write-Ahead Logging,预写日志***)的Redo(重做日志)和共享内存,并能够与文件***交互。
例如,插件程序模块可以通过PostgreSQL数据库支持的扩展插件实现。通过插件程序模块可以对流复制的元数据进行加工、组装、过滤等处理,并实现与数据同步程序模块之间的报文通讯协议。
在一些实施例中,在同步程序模块的启动过程中,会与发起数据备份的数据库进行交互,由该数据库调用插件程序模块进行初始化。例如,插件程序模块解析报文中如下信息中的至少一项:是否开启过滤机制、是否开启发布模式、发布名称、是否开启hash模式(并行处理模式)。插件程序模块还可以解析hash_slot、hash_mask等参数,并保存在全局变量中。
在一些实施例中,数据库同步程序模块接收插件程序模块的WAL数据流,并通过执行SOL语句向其他数据库备份数据。
例如,数据同步程序模块收到数据流以后,完成对数据报文的解析、分组、SQL语句的执行以及异常情况下的登记处理。
在一些实施例中,数据同步模块启动后,解析启动参数和配置信息并连接各数据库。例如,在连接数据库之前,数据同步模块需要先注册数据库操作接口,以保证在使用统一的数据库操作接口时,调用正确的底层数据库驱动程序。
在一些实施例中,数据同步程序模块还可以对程序运行的过程进行信息统计,并对外提供基于telnet(远程终端)协议的管理命令。用户可以使用telnet方式,实时查看本装置的各种数据备份的统计信息。统计信息包括当前运行信息、***配置信息、调试信息、***处理效率等几大类统计信息中的至少一项。
在一些实施例中,数据同步程序模块可以执行相应的数据库维护命令,完成对各数据库中数据库对象的维护功能。
在一些实施例中,数据同步程序模块还可以判断是否添加双活标识、启动工作线程、建立固定模式下的全局队列等。
在一些实施例中,主线程发送数据同步请求命令到主数据库。响应成功后,同步程序模块开始监听网络套接字,等待并实时接收主数据库(发起备份的数据库)数据流信息。
在一些实施例中,主线程接收到数据流后对报文进行解析,按每一个事务作为一个分发任务进行封装任务信息。例如,每个任务包含一个命令列表。列表中的每个元素是一个数据库DML语句和该语句的操作类型、记录当前***时间戳、该事务的id、命令类型、命令的长度等信息。
在一些实施例中,同步程序模块根据不同的数据分发模式将封装的任务分发到不同队列中。如果选择的是固定模式,则将所有事务信息发送到一个全局队列中,由一个全局工作线程进行处理;如果是自由模式,则根据上述任一个实施例中的方法处理。
在一些实施例中,工作线程取到任务后,解析任务列表中的SQL语句并将SQL语句在从数据库中执行,完成数据的同步操作。
在一些实施例中,数据同步程序模块可以向异常处理程序模块同步失败等级数据库。例如,异常处理程序模块可以处理数据同步失败的数据记录,最大程度的保证主从数据库之间的数据一致性和完整性。
在一些实施例中,本装置也可以应用于主从状态的不同数据库***。也就是说,只有主库配置有数据同步程序模块和异常处理程序模块,从库仅用于备份主库的数据。
在一些实施例中,备份装置还具有监控***运行和执行数据库维护语句的功能。例如,用户可以使用telnet命令连接到本装置发送命令,用于监控线程解析并处理相应命令。
命令可以包括统计类命令、维护类命令、数据库维护类命令、帮助信息中的至少一类。通过这些命令可以随时监控***运行情况。例如,成功记录数、失败记录数、***处理效率、内存使用情况等信息。
统计类型命令可以直接将***的实时统计信息返回。如果是数据库维护命令,监控线程会将SQL语句先在主库上执行再到从库上执行。如果有一个库上的操作失败,则两个数据库上的相关操作全部回滚,保证主从数据库的同步对象结构一致。
在一些实施例中,同步程序模块中还可以设置SQL_API模块,用于设置各种接口函数,并声明相应类型数据库的数据库操作变量。例如,接口函数可以包括数据库连接相关函数、数据库操作相关函数、事务操作相关函数中的至少一项。
异常处理程序模块主要是处理由于网络、***资源紧张等异常情况导致的从库数据同步失败的情况。
在一些实施例中,异常处理程序模块启动后,可以定时访问异常数据登记信息并逐条处理。失败记录不满足重新备份处理条件,则放弃本次操作;失败记录满足重新备份处理条件,则继续执行异常处理操作。
在一些实施例中,异常处理程序模块解析DML语句进行数据库操作或文件操作。操作成功后,异常处理程序模块更新相应记录的操作状态,防止该记录被重复处理。
图6示出本公开的数据的备份装置的另一些实施例的示意图。
如图6所示,备份装置可以应用于主从数据库模式。发起数据备份的主数据库,向从数据库或文件处理***进行备份。
在一些实施例中,主数据库发起数据备份后,数据接收模块可以逻辑解析数据流,并将任务分发给各工作线程(1~n)。例如,可以将任务划分为多个队列(1~n),分别分配给个工作线程。
在一些实施例中,各工作线程执行SQL指令,以完成数据同步操作。同步操作的目标可以是从数据库或文件处理***中的文件。
在一些实施例中,在同步失败的情况下,可以生成异常处理队列,并由异常处理线程进行处理。例如,异常处理线程可以执行SQL指令,以重新完成数据同步操作。异常处理线程还可以在一场处理数据库中登记异常信息(失败记录)。
本公开的技术方案可以应用在双活模式或主从模式的数据库***中。
在一些实施例中,监控线程可以监控***的运行信息。维护人员可以通过telnet协议,查看***运行信息或维护命令。
在上述实施例中,采用了并发、数据排队同步的方式备份数据,能够提高数据同步效率。尤其在跨城域的两个数据中心之间进行数据同步的情况下,网络耗时较大,数据传输时延较多,更加能够体现本技术方案的并行传输效果。
在上述实施例中,由于数据同步的效率提高,并且有数据同步异常处理模块对数据一致性进行保证,降低了应用***的两地双中心故障切换时间。而且,采用双活模式的数据同步程序,可以让应用***的RPO(Recovery Point Objective,复原点目标)降低到秒级甚至是毫秒级。
在上述实施例中,实现了异地双中心的双活模式,双中心的数据库具备同时对外提供服务能力,降低了***的业务中断风险。这样,***的业务连续性得到了提高;
在上述实施例中,能够保证各数据库的数据完整性和一致性。这样,在应用***某个数据中心发生故障时,可以由另一个数据中心迅速接管整个业务,提高了整个业务***的高可用性。
在上述实施例中,利用统一的数据库访问接口进行数据库访问,能够降低应用***的设计复杂度,提高***的可扩展性。
图7示出本公开的数据的备份装置的一些实施例的框图。
如图7所示,数据的备份装置7包括:生成单元71、判断单元72、添加单元73和备份单元74。
生成单元71根据第一数据库中数据变化的情况,生成报文。
判断单元72判断数据变化是否源于第二数据库向第一数据库的备份操作。
添加单元73在数据变化是源于所述第二数据库的备份操作情况下,在报文中添加标识,用于标记所述数据变化无需进行备份处理。
备份单元74在数据变化不是源于第二数据库的备份操作情况下,根据报文向所述第二数据库进行备份处理。
在一些实施例中,备份单元74根据备份处理中各备份操作的时序需求,确定是否进行并行处理;在进行并行处理的情况下,根据各待备份数据的主键字段,将各相应的备份操作分配到不同的备份子线程,以便并行执行所述备份处理;在不进行并行处理的情况下,将各备份操作分配到同一个线程,以便串行执行备份处理。
在一些实施例中,备份单元74根据各待备份数据的主键字段和待备份数据表的名称,确定各待备份数据的备份哈希值。各待备份数据为待备份数据表中的各数据记录。备份单元74根据各备份哈希值和各备份子线程对应的分配哈希值,为各备份数据的相应备份操作分配不同的备份子线程。
在一些实施例中,备份单元74根据哈希模参数,对各分配哈希值进行取模处理;根据各取模处理结果和各分配哈希值,为各备份数据的相应备份操作分配不同的备份子线程。
在一些实施例中,备份单元74根据各备份操作的处理时序,生成备份操作队列;利用同一个线程,依次处理所述备份操作队列中的各备份操作。
在一些实施例中,备份单元74在备份处理失败的情况下,将该备份处理存储为失败记录。判断单元72定时读取各失败记录,判断是否存在满足重新处理条件的失败记录。备份单元74对满足重新处理条件的失败记录重新进行相应的备份处理。
在一些实施例中,重新处理条件包括下述条件中的至少一个:失败记录相应的备份处理未重新处理成功;失败记录相应的数据在所述第一数据库中未被更新。
在一些实施例中,重新处理条件根据各失败记录中包括的相应备份处理的事务标识判断。
在一些实施例中,生成单元71根据业务需求,在发生变化的数据中筛选出待备份数据;根据待备份数据,生成报文。
在一些实施例中,备份单元74在第二数据库为与第一数据库不同类型的关系型数据库的情况下,将备份处理的相应SQL语句转换为第二数据库能够识别的语句,以执行备份处理。
在一些实施例中,备份单元74在第二数据库为文件处理***的数据库的情况下,将备份处理的相应DML语句保存在文件处理***相应的文本文件中;将文本文件存储在第二数据库中。
在一些实施例中,报文包括数据变化相应的备份操作标识、相应的事务标识、待备份数据的标识、待备份数据的存储位置、待备份数据的主键中的至少一项和DML语句。
图8示出本公开的数据的备份装置的另一些实施例的框图。
如图8所示,该实施例的数据的备份装置8包括:存储器81以及耦接至该存储器81的处理器82,处理器52被配置为基于存储在存储器81中的指令,执行本公开中任意一个实施例中的数据的备份方法。
其中,存储器81例如可以包括***存储器、固定非易失性存储介质等。***存储器例如存储有操作***、应用程序、引导装载程序(Boot Loader)、数据库以及其他程序等。
图9示出本公开的数据的备份装置的又一些实施例的框图。
如图9所示,该实施例的数据的备份装置9包括:存储器910以及耦接至该存储器910的处理器920,处理器920被配置为基于存储在存储器910中的指令,执行前述任意一个实施例中的数据的备份方法。
存储器910例如可以包括***存储器、固定非易失性存储介质等。***存储器例如存储有操作***、应用程序、引导装载程序(Boot Loader)以及其他程序等。
数据的备份装置9还可以包括输入输出接口930、网络接口940、存储接口950等。这些接口930、940、950以及存储器910和处理器920之间例如可以通过总线960连接。其中,输入输出接口930为显示器、鼠标、键盘、触摸屏等输入输出设备提供连接接口。网络接口940为各种联网设备提供连接接口。存储接口950为SD卡、U盘等外置存储设备提供连接接口。
图10示出本公开的数据的备份***的一些实施例的框图。
如图10所示,数据的备份***10包括第一数据库1010、第二数据库1020、数据的备份装置1030。备份装置1030执行上述任一个实施例中的数据的备份方法。
在一些实施例中,第一数据库1010心应用的数据库读写访问和跨中心应用的数据库读写访问;第二数据库1020心应用的数据库读写访问和跨中心应用的数据库读写访问。
本领域内的技术人员应当明白,本公开的实施例可提供为方法、***、或计算机程序产品。因此,本公开可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本公开可采用在一个或多个其中包含有计算机可用程序代码的计算机可用非瞬时性存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
至此,已经详细描述了根据本公开的数据的备份方法、数据的备份装置、数据的备份***和计算机可读存储介质。为了避免遮蔽本公开的构思,没有描述本领域所公知的一些细节。本领域技术人员根据上面的描述,完全可以明白如何实施这里公开的技术方案。
可能以许多方式来实现本公开的方法和***。例如,可通过软件、硬件、固件或者软件、硬件、固件的任何组合来实现本公开的方法和***。用于所述方法的步骤的上述顺序仅是为了进行说明,本公开的方法的步骤不限于以上具体描述的顺序,除非以其它方式特别说明。此外,在一些实施例中,还可将本公开实施为记录在记录介质中的程序,这些程序包括用于实现根据本公开的方法的机器可读指令。因而,本公开还覆盖存储用于执行根据本公开的方法的程序的记录介质。
虽然已经通过示例对本公开的一些特定实施例进行了详细说明,但是本领域的技术人员应该理解,以上示例仅是为了进行说明,而不是为了限制本公开的范围。本领域的技术人员应该理解,可在不脱离本公开的范围和精神的情况下,对以上实施例进行修改。本公开的范围由所附权利要求来限定。
Claims (16)
1.一种数据的备份方法,包括:
根据第一数据库中数据变化的情况,生成报文;
判断所述数据变化是否源于第二数据库向所述第一数据库的备份操作;
在所述数据变化是源于所述第二数据库的备份操作情况下,在所述报文中添加标识,用于标记所述数据变化无需进行备份处理;
在所述数据变化不是源于所述第二数据库的备份操作情况下,根据所述报文向所述第二数据库进行备份处理。
2.根据权利要求1所述的备份方法,其中,所述在所述数据变化不是源于所述第二数据库的备份操作情况下,根据所述报文向所述第二数据库进行备份处理包括:
根据所述备份处理中各备份操作的时序需求,确定是否进行并行处理;
在进行并行处理的情况下,根据各待备份数据的主键字段,将各相应的备份操作分配到不同的备份子线程,以便并行执行所述备份处理;
在不进行并行处理的情况下,将各备份操作分配到同一个线程,以便串行执行所述备份处理。
3.根据权利要求2所述的备份方法,其中,所述在进行并行处理的情况下,根据各待备份数据的主键字段,将各相应的备份操作分配到不同的备份子线程包括:
根据各待备份数据的主键字段和待备份数据表的名称,确定各待备份数据的备份哈希值,所述各待备份数据为所述待备份数据表中的各数据记录;
根据各备份哈希值和各备份子线程对应的分配哈希值,为所述各备份数据的相应备份操作分配不同的备份子线程。
4.根据权利要求3所述的备份方法,其中,所述根据各备份哈希值和各备份子线程对应的分配哈希值,为所述各备份数据的相应备份操作分配不同的备份子线程包括:
根据哈希模参数,对各分配哈希值进行取模处理;
根据各取模处理结果和各分配哈希值,为所述各备份数据的相应备份操作分配不同的备份子线程。
5.根据权利要求2所述的备份方法,其中,所述在不进行并行处理的情况下,将各备份操作分配到同一个线程,以便串行执行所述备份处理包括:
根据所述各备份操作的处理时序,生成备份操作队列;
利用所述同一个线程,依次处理所述备份操作队列中的各备份操作。
6.根据权利要求1所述的备份方法,还包括:
在备份处理失败的情况下,将该备份处理存储为失败记录;
定时读取各失败记录,判断是否存在满足重新处理条件的失败记录,所述重新处理条件包括下述条件中的至少一个:
失败记录相应的备份处理未重新处理成功;
失败记录相应的数据在所述第一数据库中未被更新;
对满足所述重新处理条件的失败记录重新进行相应的备份处理。
7.根据权利要求6所述的备份方法,其中,
所述重新处理条件,根据所述各失败记录中包括的相应备份处理的事务标识判断。
8.根据权利要求1-7任一项所述的备份方法,其中,所述根据第一数据库中数据变化的情况,生成报文包括:
根据业务需求,在发生变化的数据中筛选出待备份数据;
根据所述待备份数据,生成所述报文。
9.根据权利要求1-7任一项所述的备份方法,其中,所述在所述数据变化不是源于所述第二数据库的备份操作情况下,根据所述报文向所述第二数据库进行备份处理包括:
在所述第二数据库为与所述第一数据库不同类型的关系型数据库的情况下,将所述备份处理的相应结构化查询语言SQL语句转换为所述第二数据库能够识别的语句,以执行所述备份处理。
10.根据权利要求1-7任一项所述的备份方法,其中,所述在所述数据变化不是源于所述第二数据库的备份操作情况下,根据所述报文向所述第二数据库进行备份处理包括:
在所述第二数据库为文件处理***的数据库的情况下,将所述备份处理的相应数据操纵语言DML语句保存在所述文件处理***相应的文本文件中;
将所述文本文件存储在所述第二数据库中。
11.根据权利要求1-7任一项所述的备份方法,其中,
所述报文包括所述数据变化相应的备份操作标识、相应的事务标识、待备份数据的标识、待备份数据的存储位置、待备份数据的主键中的至少一项和DML语句。
12.一种数据的备份装置,包括:
生成单元,用于根据第一数据库中数据变化的情况,生成报文;
判断单元,用于判断所述数据变化是否源于第二数据库向所述第一数据库的备份操作;
添加单元,用于在所述数据变化是源于所述第二数据库的备份操作情况下,在所述报文中添加标识,用于标记所述数据变化无需进行备份处理;
备份单元,用于在所述数据变化不是源于所述第二数据库的备份操作情况下,根据所述报文向所述第二数据库进行备份处理。
13.一种数据的备份装置,包括:
存储器;和
耦接至所述存储器的处理器,所述处理器被配置为基于存储在所述存储器中的指令,执行权利要求1-11任一项所述的数据的备份方法。
14.一种数据的备份***,包括:
第一数据库、第二数据库;以及
数据的备份装置,用于执行权利要求1-11任一项所述的数据的备份方法。
15.根据权利要求14所述的备份***,其中,
所述第一数据库进行本中心应用的数据库读写访问和跨中心应用的数据库读写访问;
所述第二数据库进行本中心应用的数据库读写访问和跨中心应用的数据库读写访问。
16.一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现权利要求1-11任一项所述的数据的备份方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010180809.2A CN111400097A (zh) | 2020-03-16 | 2020-03-16 | 数据的备份方法、装置、***和计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010180809.2A CN111400097A (zh) | 2020-03-16 | 2020-03-16 | 数据的备份方法、装置、***和计算机可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111400097A true CN111400097A (zh) | 2020-07-10 |
Family
ID=71432745
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010180809.2A Pending CN111400097A (zh) | 2020-03-16 | 2020-03-16 | 数据的备份方法、装置、***和计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111400097A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111984729A (zh) * | 2020-08-14 | 2020-11-24 | 北京人大金仓信息技术股份有限公司 | 异构数据库数据同步方法、装置、介质和电子设备 |
CN116226093A (zh) * | 2023-04-25 | 2023-06-06 | 北京庚顿数据科技有限公司 | 基于双活高可用架构的实时数据库*** |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103593257A (zh) * | 2012-08-15 | 2014-02-19 | 阿里巴巴集团控股有限公司 | 一种数据备份方法及装置 |
CN104182295A (zh) * | 2013-05-27 | 2014-12-03 | 阿里巴巴集团控股有限公司 | 一种数据备份方法及装置 |
CN104376017A (zh) * | 2013-08-15 | 2015-02-25 | 阿里巴巴集团控股有限公司 | 在数据库之间进行数据同步的方法及*** |
CN104580306A (zh) * | 2013-10-21 | 2015-04-29 | 北京计算机技术及应用研究所 | 一种多终端备份服务***及其任务调度方法 |
US20150261620A1 (en) * | 2014-03-13 | 2015-09-17 | Carlos Ruiz | Systems and methods for reducing load database time |
CN108920301A (zh) * | 2018-05-16 | 2018-11-30 | 京信通信***(中国)有限公司 | 数据备份方法以及***、数据恢复方法以及*** |
CN110413438A (zh) * | 2019-07-26 | 2019-11-05 | 中国工商银行股份有限公司 | 针对备份报错的处理方法和装置 |
CN110659256A (zh) * | 2019-09-30 | 2020-01-07 | 掌阅科技股份有限公司 | 多机房同步方法、计算设备及计算机存储介质 |
-
2020
- 2020-03-16 CN CN202010180809.2A patent/CN111400097A/zh active Pending
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103593257A (zh) * | 2012-08-15 | 2014-02-19 | 阿里巴巴集团控股有限公司 | 一种数据备份方法及装置 |
CN104182295A (zh) * | 2013-05-27 | 2014-12-03 | 阿里巴巴集团控股有限公司 | 一种数据备份方法及装置 |
CN104376017A (zh) * | 2013-08-15 | 2015-02-25 | 阿里巴巴集团控股有限公司 | 在数据库之间进行数据同步的方法及*** |
CN104580306A (zh) * | 2013-10-21 | 2015-04-29 | 北京计算机技术及应用研究所 | 一种多终端备份服务***及其任务调度方法 |
US20150261620A1 (en) * | 2014-03-13 | 2015-09-17 | Carlos Ruiz | Systems and methods for reducing load database time |
CN108920301A (zh) * | 2018-05-16 | 2018-11-30 | 京信通信***(中国)有限公司 | 数据备份方法以及***、数据恢复方法以及*** |
CN110413438A (zh) * | 2019-07-26 | 2019-11-05 | 中国工商银行股份有限公司 | 针对备份报错的处理方法和装置 |
CN110659256A (zh) * | 2019-09-30 | 2020-01-07 | 掌阅科技股份有限公司 | 多机房同步方法、计算设备及计算机存储介质 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111984729A (zh) * | 2020-08-14 | 2020-11-24 | 北京人大金仓信息技术股份有限公司 | 异构数据库数据同步方法、装置、介质和电子设备 |
CN116226093A (zh) * | 2023-04-25 | 2023-06-06 | 北京庚顿数据科技有限公司 | 基于双活高可用架构的实时数据库*** |
CN116226093B (zh) * | 2023-04-25 | 2023-08-08 | 北京庚顿数据科技有限公司 | 基于双活高可用架构的实时数据库*** |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11888599B2 (en) | Scalable leadership election in a multi-processing computing environment | |
CN109101627B (zh) | 异构数据库同步方法及装置 | |
CN107783975B (zh) | 分布式数据库同步处理的方法和装置 | |
WO2019154394A1 (zh) | 分布式数据库集群***、数据同步方法及存储介质 | |
Plattner et al. | Ganymed: Scalable replication for transactional web applications | |
US8156421B2 (en) | Analysis of database performance reports for graphical presentation of summary results | |
CN109710388B (zh) | 数据读取方法、装置、电子设备以及存储介质 | |
CN105830033B (zh) | 用于在分布式数据网格中支持持久存储装置版本化和完整性的***和方法 | |
JP7438603B2 (ja) | トランザクション処理方法、装置、コンピュータデバイス及びコンピュータプログラム | |
CN104699541A (zh) | 同步数据的方法、装置、数据传输组件及*** | |
EP3722973B1 (en) | Data processing method and device for distributed database, storage medium, and electronic device | |
US10055445B2 (en) | Transaction processing method and apparatus | |
CN111949454B (zh) | 一种基于微服务组件的数据库***及相关方法 | |
Moniz et al. | Blotter: Low latency transactions for geo-replicated storage | |
CN111400097A (zh) | 数据的备份方法、装置、***和计算机可读存储介质 | |
CN109783578A (zh) | 数据读取方法、装置、电子设备以及存储介质 | |
JP7322161B2 (ja) | 分散システムにおける非同期ストレージ管理 | |
CN106815318B (zh) | 一种时序数据库的集群化方法及*** | |
CA2619778C (en) | Method and apparatus for sequencing transactions globally in a distributed database cluster with collision monitoring | |
CN114328715A (zh) | 一种数据同步方法、装置及计算机可读存储介质 | |
CN112069160B (zh) | 一种基于cap数据清洗同步方法 | |
CN114791900A (zh) | 基于Operator的Redis运维方法、装置、***及存储介质 | |
US10884881B2 (en) | Scale-out storage system and configuration information control method for implementing high-availability, high-speed failover | |
CN114254039A (zh) | 分布式同步*** | |
CN112685142A (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 |