CN114787780A - 用于基于区块链的备份和恢复的系统和方法 - Google Patents
用于基于区块链的备份和恢复的系统和方法 Download PDFInfo
- Publication number
- CN114787780A CN114787780A CN202080083180.8A CN202080083180A CN114787780A CN 114787780 A CN114787780 A CN 114787780A CN 202080083180 A CN202080083180 A CN 202080083180A CN 114787780 A CN114787780 A CN 114787780A
- Authority
- CN
- China
- Prior art keywords
- data
- blockchain
- adaptation layer
- store
- log
- 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
- 238000000034 method Methods 0.000 title claims abstract description 77
- 230000006978 adaptation Effects 0.000 claims abstract description 31
- 238000011084 recovery Methods 0.000 claims abstract description 25
- 238000013500 data storage Methods 0.000 claims abstract description 14
- 238000004891 communication Methods 0.000 claims abstract description 8
- 238000007726 management method Methods 0.000 claims abstract description 6
- 230000008859 change Effects 0.000 claims description 30
- 238000012544 monitoring process Methods 0.000 claims description 7
- 230000010076 replication Effects 0.000 claims description 6
- 238000012986 modification Methods 0.000 claims description 5
- 238000006243 chemical reaction Methods 0.000 claims description 3
- 238000001914 filtration Methods 0.000 claims description 3
- 230000004048 modification Effects 0.000 claims description 3
- 238000010200 validation analysis Methods 0.000 claims description 3
- 238000013507 mapping Methods 0.000 claims description 2
- 230000005540 biological transmission Effects 0.000 claims 1
- 230000008569 process Effects 0.000 description 45
- 238000012545 processing Methods 0.000 description 10
- 239000000284 extract Substances 0.000 description 5
- 230000001360 synchronised effect Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 3
- 239000000203 mixture Substances 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 241001178520 Stomatepia mongo Species 0.000 description 1
- 238000007792 addition Methods 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- 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
-
- 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
- G06F11/1451—Management of the data involved in backup or backup restore by selection of backup contents
-
- 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
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/2053—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
- G06F11/2094—Redundant storage or storage space
-
- 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/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/2097—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements maintaining the standby controller/processing unit updated
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/16—Protection against loss of memory contents
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0819—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
- H04L9/0825—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3247—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Computer Security & Cryptography (AREA)
- Bioethics (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Databases & Information Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Hardware Redundancy (AREA)
Abstract
公开了基于区块链的数据备份和恢复的系统和方法,用于与常规数据存储器一起使用。该系统包括区块链和存储适配层,区块链包括一个或更多个节点。存储适配层与区块链和数据存储器进行数据通信,将来自数据存储器的数据存储到区块链中。数据存储器可以是关系数据库管理系统或其他类型的数据存储器。该系统还包括被配置成将区块链中的数据恢复到数据存储器的恢复适配层。恢复适配层也与区块链和数据存储器进行数据通信。
Description
技术领域
本发明涉及数据备份和恢复,并且更特别地涉及基于区块链技术的实时数据备份和恢复。
背景技术
区块链是被分组为区块的记录的列表,使用加密技术将这些区块链接在一起。使用区块链系统借助于集体参与以及参与者之间的共识(consensus)来维护可靠的交易记录。区块链可以被理解为由被称为节点的多个联网设备共同维护的分布式账本技术(distributed Ledger technology)。因此,区块链可以被认为是分布式存储系统。
利用数据库备份和恢复处理的常规存储系统通常需要对冗余硬件和相关联的软件进行大量投资。此外,实际的备份和恢复周期在被执行时通常可能会相当耗费人力。因此,在企业环境中建立能够对数据进行实时备份和恢复的可靠系统通常是昂贵的。
对于实时数据备份,利用现有技术的常规系统通常需要使用强大的备份服务器。然而,这样强大的服务器的利用率通常较低,这意味着对已经获取的计算资源的巨大浪费。
如果对备份服务器中的备份数据进行了更改,则当系统恢复时,生产数据库中的数据将会不正确。因此,需要满足各种组织的需求的可靠、安全、通用且不昂贵的备份系统。
减轻与备份和恢复操作相关联的问题的常规方式之一是使用增量备份。在增量备份期间,利用交易日志对自从进行上次备份以来所做的更改进行标识,并且在下一增量备份过程中,将仅备份与在前一备份操作中无法解释的更改相关联的内容。
由于交易日志仅记录在前一数据库备份或交易日志记录备份之后对数据库所做的更改,因此增量备份仅记录在备份操作之间的有限时间段期间对数据库所做的更改。因此,在进行交易记录备份或初始增量备份之前,需要完整的数据库备份。
存在与之前提及的方法的可靠性、安全性和一致性有关的若干问题。
就可靠性而言,存在备份系统的中心节点会故障的可能性。如果存在与备份交易日志相关联的中心节点或机器的问题,则可能会发生数据丢失或损坏,并且整个备份处理可能会失败。
关于安全性和一致性,对交易日志的任何未经授权的更改都会不可避免地导致恢复的数据不可信。
因此,需要改进的系统和方法,以减轻与利用常规硬件设备和技术的备份和恢复系统相关联的至少一些之前提及的问题。
发明内容
根据本发明的一个方面,提供了一种基于区块链的备份和恢复系统和方法。本发明的实施方式包括安全、可靠并且能够实时操作的基于区块链的备份和恢复系统。
根据本发明的一个方面,提供了一种数据备份和恢复系统,用于与数据存储器和包括多个节点的区块链一起使用,该系统包括:包括一个或更多个处理器和存储器的服务器;在服务器上执行的存储适配层,一个或更多个处理器与区块链和数据存储器进行数据通信;其中,存储适配层将与存储在数据存储器内的数据的更改的子集相关联的日志存储到区块链中。
根据本发明的另一方面,该系统还可以包括与数据存储器和区块链进行数据通信的恢复适配层,恢复适配层被配置成从区块链中检索存储的数据,并且将与检索到的存储数据相对应的数据存储到数据存储器中。
根据本发明的另一方面,提供了一种数据备份和恢复的方法。该方法包括:由用户在日志中跟踪在数据存储器处存储的数据的更改的子集;将用户映射到区块链上的帐户;使用帐户的公钥对日志进行加密;以及将经加密的数据存储至缓存;以及将经加密的数据存储至区块链。
该方法还可以包括:从缓存中检索数据;使用区块链适配器触发区块链中的区块链合约以用于数据共识和全局验证;将新数据更改记录在所述多个节点之一中;在区块链中执行共识投票;其中,当所述新数据更改与区块链中的历史更改记录冲突时,共识投票失败;以及,否则将所述新数据更改存储在区块链中的区块中。
根据本发明的另一方面,提供了一种实时数据复制系统,该系统基于包括:区块链;目标数据存储器;计算设备。该计算设备包括:区块链监听模块,其适于监听区块链上的所有区块;交易过滤器,其对与数据复制相关的区块上的交易进行过滤;事件生成器,其用于将经过滤的交易的内容转换成用于在目标数据存储器上执行的数据操作,交易内容包括修改前内容、修改后内容和操作类型;以及数据恢复模块,其用于执行数据操作,使得在执行之后,目标数据存储器被修改以与区块链相对应。
根据本发明的另一方面,提供了一种用于区块链的数据备份和恢复系统,该系统包括:包括数据适配层的服务器;和数据存储系统;其中,数据适配层连接至区块链,数据存储系统包括具有一个或更多个存储设备的分布式数据存储器,并且数据适配层适于促进数据存储系统与区块链之间的通信。数据适配层包括:数据更改监测模块,其监测数据存储系统中的数据更改记录;数据转换模块,其适于将监测到的更改记录的格式转换成标准数据更改记录;区块链合约,其用于将数据记录到区块链。
附图说明
附图仅通过示例的方式示出本发明的实施方式,在附图中,
图1是本发明的示例性实施方式的利用基于区块链的备份和恢复操作的系统的示意性框图;
图2是用于使用图1的系统来备份数据的示例性过程的流程图;
图3是总结本发明的示例性实施方式中的实时数据同步过程的流程图;以及
图4是用于使用图1的系统来恢复数据的示例性过程的流程图。
具体实施方式
本公开内容描述了基于区块链的备份和恢复系统和方法。本发明的实施方式包括基于区块链的备份和恢复系统,该系统以满足针对安全性、可靠性、可信度和/或实时操作的一个或更多个要求的方式运行。
下面提供本发明的各种实施方式的描述。在本公开内容中,当在本文中结合术语“包括”使用时,词“一(a)”或“一个(an)”的使用可以是指“一个”,但是它也与“一个或更多个”、“至少一个”和“一个或多于一个”的含义一致。以单数形式表达的任何元素也包含其复数形式。以复数形式表达的任何元素也包含其单数形式。如本文中所使用的,术语“多个”是指多于一个,例如,两个或更多个、三个或更多个、四个或更多个等。诸如“顶部”、“底部”、“向上”、“向下”、“竖直地”和“横向地”的方向性术语仅用于提供相对参考的目的,并且不旨在对任何物品在使用期间如何定位或者在组件中或相对于环境如何安装提出任何限制。
术语“包括(comprising)”、“具有”、“包括(including)”和“包含”及其语法变型是包括性的或开放式的,并且不排除附加的、未列举的元素和/或方法步骤。当在本文中结合组合物、用途或方法使用时,术语“基本上由……组成”表示可以存在附加的元素、方法步骤或者附加的元素和方法步骤两者,但是这些附加物不会实质上影响所列举的组合物、方法或用途起作用的方式。当在本文中结合组合物、用途或方法使用时,术语“由……组成”排除附加的元素和/或方法步骤的存在。
“区块链”是一种记录计算设备的公共或私有的对等式网络中的交易的防篡改的共享数字账本。账本保持为增长的加密哈希链块的连续链。
区块链环境中的“节点”是区块链网络上的设备。该设备通常是具有处理器的计算设备,该处理器与其上储存有处理器可读指令的处理器可读介质互连,该处理器可读介质包括存储器。
术语“第一”、“第二”、“第三”等仅用于描述性目的,并且不能被解释为指示或暗示相对重要性。
在本发明的描述中,还应当注意,除非另有明确定义和限制,否则术语“安装”、“链接”和“连接”应当在广义上解释。例如,可以是固定连接,或组装式连接,或一体式连接;硬连线或软连线;可以直接连接,或通过中介间接连接。对于技术人员,可以按照上下文理解本发明中上述术语的具体意思。
在示出本发明的实施方式的附图中,相同或相似的附图标记对应于相同或相似的部分。在本发明的说明书中,应当注意,“多个”的意思是指两个或更多个,除非另有说明;术语“上”、“下”、“左”、“右”、“内部”、“外部”、“前端”、“后端”、“头”、“尾”的方向或位置,附图中所示出的方向或位置关系仅是为了方便描述本发明和简化描述,而不是指示或暗示指示的设备或元件必须具有特定的方向并且在特定的方向上构造和操作,并且因此不能用作对本发明的限制。
I.系统概述
图1示意性描绘了本发明的示例性实施方式的利用基于区块链的备份和恢复操作的系统的框图。该系统包括数据源101、日志跟踪器模块102、事件过滤器103、事件存储器104、智能合约写入器105、区块链106、智能合约107、节点108、恢复管理模块109、目标数据存储器110、数据恢复模块111、事件生成器112、交易过滤器113和区块传输器114。
存储适配层115可以被定义为包括日志跟踪器模块102、事件过滤器103、事件存储器104和合约写入器105。
恢复适配层116可以包括数据恢复模块111、事件生成器112、交易过滤器113和区块传输器114。
每当数据源101中的数据发生更改时,数据源101生成更改日志。数据源101可以是关系数据库管理系统(RDBMS),例如OracleTM数据库、MySQLTM、Microsoft SQLServerTM和IBMDB2TM数据库。可以理解,MySQLTM数据库生成二进制日志,而OracleTM数据库生成重做日志。
日志跟踪器模块102基于日志来存储数据更改。对于不同的数据源,使用不同的数据跟踪器插件来捕获数据。例如,在数据库系统中,一个数据跟踪器可以模拟复制客户端并且连接至主数据库,并且在交易成功时,主数据库可以将交易日志发送至日志跟踪器。在捕获数据源101中的日志之后,数据跟踪器模块102生成内部结构或格式来存储数据更改。
事件过滤器103基于配置设置来过滤数据。并非所有数据都需要备份到区块链。事件过滤器103因此选择与预定义条件或选择标准相匹配的数据用于备份或恢复以及相关处理。
事件存储器104临时存储事件。事件存储器104将区块链与数据源之间的速度相匹配。如果数据更改的速度快于区块链写入速度,则数据会临时存储在缓存或消息队列中并且等待进一步的处理。因此,缓存或消息队列有助于将数据源中的更改的数据速率与写入区块链的数据速率相匹配。在这种情况下,即使系统中断,捕获的数据更改也不会丢失,并且可以在系统恢复时继续处理。
智能合约写入器105对更改事件进行加密,并且触发区块链中的合约。它也是用于对不同的区块链进行匹配的插件。
区块链106部署在多个站点中,并且生成用于达成共识的网络。在该示例性实施方式中,仅存储交易,并且因此几乎所有的区块链都可以被支持。
智能合约107是在区块链106上运行的智能合约。智能合约107将更改后的数据作为输入,验证提交了该更改后的数据的帐户,并且检查该数据与特定规则和格式的匹配。在大多数节点达成共识后,数据作为交易存储在区块中。
节点108是区块链106上的另一节点,在该另一节点处,包含交易的区块被同步并且可以被提取。
恢复管理模块109管理数据恢复处理。恢复管理模块109将恢复控制成精确的数据快照或实时恢复以与源数据同步。
目标数据存储器110是可以与数据源101中使用的类型相同或不同的数据存储器。例如,数据源101可以是OracleTM数据库,而数据存储器110可以是MongoDBTM。如果选择相同数据类型的数据存储器,则给定节点Node-N上的模块也可以在Node-1中应用,以在原始数据源101崩溃的情况下将数据恢复到数据源101。
该实施方式中的数据恢复模块111包括插件以与目标数据库相匹配。在所描绘的实施方式中,数据恢复模块111将通用JavaScript对象表示法(JSON)数据转换成特定的数据库操作。例如,对于关系数据库,数据恢复模块111将操作转换成SQL命令,而对于NoSQL数据库,数据恢复模块111使用另一种执行格式。
事件生成器112用于生成事件数据。在过滤出交易之后,由于数据是加密的,因此需要对事件进行解密以获得更改后的数据,并且将更改后的数据转换为JSON格式。
交易过滤器113过滤出备份和恢复操作所需的交易数据。区块可以包含多种交易,并且针对数据备份/恢复交易对适当的子集进行过滤。在从区块中提取交易后,还需要过滤出基于恢复方兴趣的事件。例如,一些目标节点只对特定表的更改感兴趣,而其他节点可能具有不同的兴趣。
区块跟踪器114捕获区块链106中的目标区块。对于实时同步,跟踪器114从当前同步的区块开始,并且以链中的最新区块结束。
II.备份过程
图2描绘了用于使用本发明的示例性实施方式的系统(例如图1所示的系统)来备份数据的示例性过程200的流程图。下面描述的过程200的每个步骤可以由系统100执行,该系统100包括一个或更多个服务器计算设备上的一个或更多个处理器,一个或更多个处理器连接至存储处理器可执行指令的存储器,该处理器可执行指令在被执行时使得处理器执行下面列举的步骤中的一个或更多个步骤。
在步骤201处,在其中数据被更改的数据库中发生交易。与运行数据库相关联的处理器之一记录更改后的数据,并且以二进制日志或重做日志的形式生成日志来记录该更改。
在步骤202处,备份服务器模拟数据库复制客户端,并且连接至数据库。数据库将更改日志复制到备份服务器。
在步骤203处,监测器监督日志上的更改。
在步骤204处,如果日志处于原始模式,则日志通常包含“之前”数据、“之后”数据和更改类型(“插入”、“删除”或“更新”)。
在步骤205处,由于资源有限,并且并非所有数据都可能需要被备份,因此用户对哪些数据库更改或表格更改或列更改或行更改应当备份至区块链106进行配置。在从日志中提取数据后,应用配置的过滤器过滤出不需要的数据。
在步骤206处,由于不同数据源中原始数据格式可能不同,因此使用适配器将数据格式转换为期望格式(例如,JSON格式)。示例性JSON格式可以如下所示:“
{operator:“oliver”,“source-db”:“dbl”,“table”:“salary”,“operation”:“insert”,“before”:[{“id”:l,“name”:“oliver”,“salary”:“1500.00”},{“id”:2,“name”:“frank”,“salary”:“2000.00”}],“after”:[{“id”:1,“name”:“oliver”,“salary”:“1510.00”},{“id”:2,“name”:“frank”,“salary”:“2010.00”}]}
可以理解,这不记录原始SQL命令,而是仅记录数据的更改。
在步骤207处,JSON事件被放入消息队列中。由于日志生成的速度可能会随着调用区块链合约的速度而波动,因此消息队列充当缓存来缓冲更改后的数据。
在步骤208处,消息队列临时存储JSON数据,并且在系统崩溃的情况下,未保存的数据不会丢失。当系统从崩溃中恢复时,它将从中断点继续运行。
在步骤209处,从消息队列中检索事件。合约写入器从消息队列中检索JSON数据。如果存在多组数据,则智能合约写入器检索它们,并且将它们合并到一个JSON记录中。
在步骤210处,需要帐户来操作区块链。利用日志,我们可以提取操作数据的数据库用户,并且将该用户映射到配置文件中的区块链帐户。
在步骤211处,数据被加密,以防止第三方读取数据库中的敏感信息。使用帐户的公钥对JSON数据进行加密。
在步骤212处,在区块链106中调用智能合约。输入是经加密的JSON数据。
在步骤213处,智能合约生成自动增加的事件标识符(ID)。在区块链中,生成区块需要时间。在该时间段期间,存储多个JSON记录。在一个区块中,不保证记录的交易的顺序。智能合约针对每个JSON记录生成自动增加的顺序ID,以对同一区块内的顺序进行标识。
在步骤214处,在区块链中的大多数节点上执行智能合约以达成共识。智能合约对帐户以及JSON数据的正确性进行验证。如果大多数节点投票结果相同,则智能合约被成功执行。
在步骤215处,在成功调用智能合约后,JSON数据被记录为区块中的智能合约输入。
在步骤216处,所生成的区块被再次投票以在生效前在区块链中达成共识。
III.实时数据同步过程
图3描绘了总结本发明的示例性实施方式中的实时数据同步处理的流程图。在所描绘的实施方式中,使用处理300将更改后的数据实时恢复到另一节点,下面列举了处理300的步骤。下面描述的过程300的每个步骤可以由系统100执行,系统100包括一个或更多个服务器计算设备上的一个或更多个处理器,一个或更多个处理器连接至存储处理器可执行指令的存储器,处理器可执行指令在被执行时使处理器执行下面列举的一个或更多个步骤。
在步骤301处,区块链106生成包含加密后的JSON数据的新区块。
在步骤302处,获取当前块高度或将当前块高度指定为目标区块,并且获取同步的区块或将同步的区块指定为起始区块。
在步骤303处,该处理监测链中的区块,并且从起始区块到目标区块检索区块信息。
在步骤304处,该处理在每个区块中提取所有交易。
在步骤305处,应用过滤器。由于区块链上可能还运行着其他服务,因此该步骤会过滤出由备份/恢复合约生成的交易。
在步骤306处,该处理用帐户的私钥对交易进行解密并且检索明文JSON事件记录。由于区块链106可供所有节点查看,因此这防止了未经授权的用户检索数据存储器中的敏感数据。只有经授权的帐户才能访问数据。
在步骤307处,该处理基于由智能合约生成的唯一ID对JSON事件进行排序。如果同一区块中存在多个JSON事件,则区块存储的顺序可能与事件的顺序不同。
在步骤308处,应用另一过滤器。由于恢复的目标端可能并非对数据源中的所有更改都感兴趣,因此该处理仅过滤出目标端感兴趣的数据。
在步骤309处,该处理使用插件将JSON数据转换为数据执行命令。对于不同的目标数据存储器,它可以使用不同的命令来应用更改。
在步骤310处,该处理针对不同数据库操作来检查JSON数据类型。
在步骤311处,“插入”操作使得使用“之后”数据部分来将其插入到目标存储器中。
在步骤312处,“更新”操作使得使用JSON中的“之后”数据部分来更新存储器中的值。
在步骤313处,“删除”操作使得使用JSON中的“之前”数据部分来在目标存储器中找到匹配的记录并且将其移除。
在步骤314处,针对DDL(数据定义语言)操作,根据JSON记录中的定义来更改目标数据结构。
在步骤315处,在当前区块完成处理后,处理进行至链中的下一区块,直至到达最新的区块。然后,处理进行到步骤303以开始处理新的区块。
IV.恢复过程
图4是用于使用图1的备份和恢复系统来恢复数据的示例性过程的流程图。下面描述的过程400的每个步骤可以由系统100执行,该系统100包括一个或更多个服务器计算设备上的一个或更多个处理器,一个或更多个处理器连接至存储处理器可执行指令的存储器,该处理器可执行指令在被执行时使得处理器执行下面列举的步骤中的一个或更多个步骤。
在一种情况下,目标数据存储器已与区块10,000同步。该处理将目标存储器状态恢复到区块8,000。该处理将区块链中的所有操作从区块10,000提取到区块8,000,并且以相反的顺序恢复数据更改,这称为回滚。
在另一种情况下,目标存储器在区块8,000中,并且需要将状态移动至区块10,000状态。该处理将区块链中的操作从区块8,000提取到区块10,000,并且按顺序应用更改,这被称为前滚。
在这两种情况下,应用于目标数据存储器的操作不同。
对于回滚操作,如果操作为“插入”,则首先对与“之后”值匹配的数据应用“删除”;对于“删除”操作,利用“之前”值来应用“插入”。
对于前滚操作,操作保持与JSON中定义的相同。
借助图4中的流程图描述了示例性处理400,如下所述。
在步骤401处,区块链按顺序包含更改日志。
在步骤402处,该处理获取本地数据存储器上的当前同步的区块高度。
在步骤403处,该处理利用目标区块高度来检查当前高度。如果相同,则表示已经达到目标状态,并且可以退出。如果不相同,则该处理继续。
在步骤404处,该处理监测链中的区块并且检索区块信息。
在步骤405处,该处理提取区块中的交易。
在步骤406处,该处理过滤出由备份/恢复智能合约生成的交易。
在步骤407处,该处理利用帐户的私钥对区块中的交易进行解密。
在步骤408处,如果多个事件发生在同一区块中,则该处理检索由智能合约生成的唯一ID,并且使用该ID进行排序。如果需要回滚,该处理使用反向排序,否则使用正向排序。
在步骤409处,由于目标存储器可能包含比请求所感兴趣的数据更多的数据,因此该处理再次应用过滤器,以仅检索目标存储器感兴趣的数据。
在步骤410处,该处理基于不同的数据存储器类型将JSON记录转换为数据执行命令。例如,将关系数据库转换成SQL命令,以及将MongoDB/Redis转换成Mongo或Redis命令。
在步骤411处,如果目标区块大于当前区块,则处理进行前滚,否则处理进行回滚。该处理检查JSON中数据更改操作的类型。
在步骤412处,在回滚模式下,如果操作为“插入”,则该处理针对与“之后”部分相匹配的数据来向目标存储器应用“删除”动作。
在步骤413处,在回滚模式下,为了更新,该处理利用“之前”数据部分将数据更改回去。
在步骤414处,在回滚模式下,如果操作为“删除”,则处理利用JSON中的“之前”值应用“插入”动作。
在步骤415处,如果数据结构已经更改,则该处理将数据结构更改回去。
在步骤416处,在前滚模式下,该处理检查数据更改操作。
在步骤417处,在前滚模式下,该处理利用JSON中的“之后”值来应用“插入”。
在步骤418处,在前滚模式下,该处理利用JSON中的“之后”值来应用“更新”。
在步骤419处,在前滚模式下,对与“之前”值匹配的数据应用“删除”。
在步骤420处,对于DDL,该处理更改JSON中定义的结构。
在步骤421处,该处理获取链中的下一区块。
在仅通过示例的方式如此描述了本发明的实施方式的情况下,应理解,由所附权利要求限定的本发明不受上述示例性实施方式的描述中阐述的特定细节的限制,因为在不脱离权利要求的范围的情况下,可以有许多变型和置换。
Claims (38)
1.一种数据备份和恢复系统,用于与数据存储器和包括多个节点的区块链一起使用,所述系统包括:
a)包括一个或更多个处理器和存储器的服务器;
b)在所述服务器上执行的存储适配层,所述一个或更多个处理器与所述区块链和所述数据存储器进行数据通信;
其中,所述存储适配层将与存储在所述数据存储器内的数据的更改的子集相关联的日志存储到所述区块链中。
2.根据权利要求1所述的系统,还包括与所述数据存储器和所述区块链进行数据通信的恢复适配层,所述恢复适配层被配置成从所述区块链中检索存储的数据,并且将与检索到的所存储的数据相对应的数据存储到所述数据存储器中。
3.根据权利要求1所述的系统,其中,所述存储适配层包括以下中的一个或更多个:
a)基于所述日志来存储数据更改的日志跟踪器模块;
b)事件过滤器,其用于对与要存储的事件相关联的所述日志的所述子集进行过滤;
c)事件存储器,其用于存储经过滤的事件的日志;以及
d)智能合约写入器,其用于将与所述经过滤的事件相关联的数据写入所述区块链。
4.根据权利要求2所述的系统,其中,所述恢复适配层包括以下中的一个或更多个:
a)数据恢复模块,其用于将数据恢复到所述数据存储器中;
b)事件生成器;
c)交易过滤器;以及
d)区块传输模块。
5.根据权利要求1所述的系统,还包括所述数据存储器。
6.根据权利要求1所述的系统,其中,所述数据存储器分布在一个或更多个设备中。
7.根据权利要求1所述的系统,其中,所述数据存储器是关系数据库管理系统(RDBMS)。
8.根据权利要求1所述的系统,其中,所述数据存储器是MySQLTM数据库,并且所述日志包括二进制日志。
9.根据权利要求1所述的系统,其中,所述数据存储器是OracleTM数据库,并且所述日志包括重做日志。
10.根据权利要求1所述的系统,其中,所述数据存储器是NoSQLTM数据库。
11.根据权利要求1所述的系统,其中,所述区块链是多种不同类型的区块链之一,并且所述存储适配层使用对应的区块链适配器插件模块来与所述区块链接口。
12.一种数据备份和恢复的方法,所述方法包括:
a)由用户在日志中跟踪在数据存储器处存储的数据的更改的子集;
b)将所述用户映射到区块链上的帐户;
c)使用所述帐户的公钥对所述日志进行加密;以及
d)将经加密的数据存储至缓存;以及
e)将所述经加密的数据存储至所述区块链。
13.根据权利要求12所述的方法,其中,所述区块链包括多个节点,所述方法还包括:
a)从所述缓存中检索所述数据;
b)使用区块链适配器触发所述区块链中的区块链合约以用于数据共识和全局验证;
c)将新数据更改记录在所述多个节点之一中;
d)在所述区块链中执行共识投票;其中,
i)当所述新数据更改与所述区块链中的历史更改记录冲突时,所述共识投票失败;以及
ii)否则,将所述新数据更改存储在所述区块链中的区块中。
14.根据权利要求13所述的方法,其中,所述将所述新数据更改存储在所述区块中是使用区块链智能合约来完成的。
15.根据权利要求14所述的方法,其中,当与多个交易相对应的多个更改事件被记录在所述区块中时,由所述智能合约生成唯一的顺序ID以对所述交易的顺序进行标识。
16.根据权利要求12所述的方法,其中,所述缓存是消息队列。
17.根据权利要求12所述的方法,还包括:在对所述日志进行所述加密之前,将所述日志转换成标准格式。
18.根据权利要求12所述的方法,还包括:将所述更改的数据速率与写入所述区块链的数据速率匹配。
19.根据权利要求18所述的方法,其中,所述匹配防止在系统崩溃时的数据丢失。
20.一种实时数据复制系统,其基于包括:
a)区块链;
b)目标数据存储器;
c)计算设备,包括:
i)区块链监听模块,其适于监听所述区块链上的所有区块;
ii)交易过滤器,其对与数据复制相关的区块上的交易进行过滤;
iii)事件生成器,其用于将经过滤的交易的内容转换成用于在所述目标数据存储器上执行的数据操作,所述交易的内容包括修改前内容、修改后内容和操作类型;以及
iv)数据恢复模块,其用于执行所述数据操作,使得在执行之后,所述目标数据存储器被修改以与所述区块链相对应。
21.根据权利要求20所述的系统,还包括目标数据存储适配器,其将所述数据操作转换成用于在所述目标数据存储器上执行的一个或更多个数据执行命令。
22.根据权利要求20所述的系统,其中,对于同一区块中的多个交易,所述多个交易利用由智能合约生成的相关联的顺序ID进行排序并且按顺序执行。
23.根据权利要求20所述的系统,其中,所述计算设备过滤出不需要的事件,使得所述不需要的事件不会导致所述目标数据存储器的修改。
24.根据权利要求20所述的系统,其中,所述过滤基于所述区块链内的所述交易的特征值。
25.根据权利要求20所述的系统,其中,所述区块链是多种不同类型的区块链之一,并且所述区块链监听模块使用对应的区块链适配器。
26.根据权利要求20所述的系统,其中,所述计算设备使用私钥对所述经过滤的交易的内容进行解码。
27.根据权利要求20所述的系统,其中,所述计算设备使所述目标数据存储器回滚或前滚,以与所述区块链的期望区块位置相对应。
28.一种用于区块链的数据备份和恢复系统,包括:
服务器,所述服务器包括:
数据适配层,所述数据适配层包括:
数据更改监测模块,其监测数据存储系统中的数据更改记录;
数据转换模块,其适于将监测到的更改记录的格式转换成标准数据更改记录;
区块链合约,其用于将所述数据记录到所述区块链;
数据存储系统;
其中,所述数据适配层连接至所述区块链,所述数据存储系统包括具有一个或更多个存储设备的分布式数据存储器,并且所述数据适配层适于促进所述数据存储系统与所述区块链之间的通信。
29.根据权利要求28所述的系统,其中,所述数据适配层还包括:
数据转换模块,其适于将监测到的更改记录的格式转换成标准数据更改记录。
30.根据权利要求29所述的系统,其中,所述数据适配层还包括:数据缓存模块,其适于缓存所述数据更改记录。
31.根据权利要求30所述的系统,其中,所述数据适配层还包括:区块链写入模块,其用于激活所述区块链合约。
32.根据权利要求31所述的系统,其中,所述数据适配层还包括:区块链监测模块,其监测所述区块链上的所有交易信息,并且对与所述备份和恢复系统相关的特定交易进行过滤。
33.根据权利要求32所述的系统,其中,所述数据适配层还包括:恢复模块,其用于将记录在所述区块链上的交易记录恢复至数据存储器。
34.根据权利要求33所述的系统,其中,所述恢复模块适于将所述数据存储器恢复至与所述区块链相对应的状态。
35.根据权利要求33所述的系统,还包括一个或更多个插件部件,其使所述数据适配层与一种或更多种类型的数据源中的相应一种数据源适配。
36.根据权利要求33所述的系统,还包括从所述数据存储系统截取所述数据更改记录的数据监测模块。
37.根据权利要求33所述的系统,其中,所述数据存储器包括以下中的一个或更多个:关系数据库、非关系数据库、文件系统。
38.根据权利要求33所述的系统,其中,所述数据更改记录中的每一个数据更改记录的格式被转换成标准格式。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201962928703P | 2019-10-31 | 2019-10-31 | |
US62/928,703 | 2019-10-31 | ||
PCT/CA2020/051485 WO2021081675A1 (en) | 2019-10-31 | 2020-11-02 | System and method for blockchain based backup and recovery |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114787780A true CN114787780A (zh) | 2022-07-22 |
Family
ID=75714893
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202080083180.8A Pending CN114787780A (zh) | 2019-10-31 | 2020-11-02 | 用于基于区块链的备份和恢复的系统和方法 |
Country Status (8)
Country | Link |
---|---|
US (1) | US20220413971A1 (zh) |
EP (1) | EP4052129A1 (zh) |
JP (1) | JP2023501788A (zh) |
KR (1) | KR20220086677A (zh) |
CN (1) | CN114787780A (zh) |
CA (1) | CA3155794A1 (zh) |
IL (1) | IL292672A (zh) |
WO (1) | WO2021081675A1 (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022241571A1 (en) * | 2021-05-21 | 2022-11-24 | Zeu Technologies, Inc. | System and method for the safe custody of private data using blockchain |
CN116010430B (zh) * | 2023-03-24 | 2023-06-20 | 杭州趣链科技有限公司 | 数据恢复方法、数据库系统、计算机设备和存储介质 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10394659B2 (en) * | 2016-01-13 | 2019-08-27 | Acronis International Gmbh | System and method for providing comprehensive backup of modular mobile devices |
CN106383754A (zh) * | 2016-09-19 | 2017-02-08 | 北京众享比特科技有限公司 | 一种基于区块链技术的数据库备份、恢复方法和系统 |
US20180294956A1 (en) * | 2017-04-07 | 2018-10-11 | Walmart Apollo, Llc | Systems and Methods for Data Backup and Authentication Using Blockchain |
CN108810127B (zh) * | 2018-06-04 | 2021-06-18 | 立旃(上海)科技有限公司 | 基于区块链的灾备方法及装置 |
CN109213066B (zh) * | 2018-10-24 | 2022-05-03 | 苏州保控电子科技有限公司 | 基于区块链技术的plc冗余控制数据备份方法及系统 |
CN109255251B (zh) * | 2018-10-31 | 2023-10-10 | 安徽中科晶格技术有限公司 | 基于区块链技术的档案数据保护系统及方法 |
CN109587276A (zh) * | 2019-01-11 | 2019-04-05 | 中钞信用卡产业发展有限公司杭州区块链技术研究院 | 一种数据备份方法、系统及相关组件 |
-
2020
- 2020-11-02 KR KR1020227017884A patent/KR20220086677A/ko unknown
- 2020-11-02 EP EP20883204.8A patent/EP4052129A1/en not_active Withdrawn
- 2020-11-02 JP JP2022525871A patent/JP2023501788A/ja active Pending
- 2020-11-02 WO PCT/CA2020/051485 patent/WO2021081675A1/en active Search and Examination
- 2020-11-02 US US17/773,222 patent/US20220413971A1/en not_active Abandoned
- 2020-11-02 CA CA3155794A patent/CA3155794A1/en active Pending
- 2020-11-02 CN CN202080083180.8A patent/CN114787780A/zh active Pending
- 2020-11-02 IL IL292672A patent/IL292672A/en unknown
Also Published As
Publication number | Publication date |
---|---|
EP4052129A1 (en) | 2022-09-07 |
IL292672A (en) | 2022-07-01 |
JP2023501788A (ja) | 2023-01-19 |
US20220413971A1 (en) | 2022-12-29 |
CA3155794A1 (en) | 2021-05-06 |
KR20220086677A (ko) | 2022-06-23 |
WO2021081675A1 (en) | 2021-05-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10169606B2 (en) | Verifiable data destruction in a database | |
US10565071B2 (en) | Smart data replication recoverer | |
CN105359099B (zh) | 索引更新管线 | |
JP5563220B2 (ja) | データ・バックアップのための方法およびシステム | |
US7801846B2 (en) | Generating log sequence identifiers to apply a transaction to a storage system | |
US11914554B2 (en) | Adaptable multi-layered storage for deduplicating electronic messages | |
CN106933703A (zh) | 一种数据库数据备份的方法、装置及电子设备 | |
JP2016524750A5 (zh) | ||
US11194669B2 (en) | Adaptable multi-layered storage for generating search indexes | |
US10484179B1 (en) | Data consistency in an encrypted replication environment | |
US11436089B2 (en) | Identifying database backup copy chaining | |
US20200409802A1 (en) | Adaptable multi-layer storage with controlled restoration of protected data | |
US11681586B2 (en) | Data management system with limited control of external compute and storage resources | |
US20220413971A1 (en) | System and Method for Blockchain Based Backup and Recovery | |
CN112380067B (zh) | 一种Hadoop环境下基于元数据的大数据备份系统及方法 | |
US11494271B2 (en) | Dynamically updating database archive log dependency and backup copy recoverability | |
US20200409795A1 (en) | Preservation of electronic messages between snapshots | |
US11042454B1 (en) | Restoration of a data source | |
CN117643015A (zh) | 基于日志记录的客户端密钥修改的快照跨一系列节点管理密钥 | |
US11966297B2 (en) | Identifying database archive log dependency and backup copy recoverability | |
US8195612B1 (en) | Method and apparatus for providing a catalog to optimize stream-based data restoration | |
US20180295145A1 (en) | Multicomputer Digital Data Processing to Provide Information Security Control | |
US20200401567A1 (en) | Object Storage System with Versioned Meta Objects | |
US11074002B2 (en) | Object storage system with meta object replication | |
US11789617B2 (en) | Integration of hashgraph and erasure coding for data integrity |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20220722 |