CN106777225B - 一种数据的迁移方法和*** - Google Patents
一种数据的迁移方法和*** Download PDFInfo
- Publication number
- CN106777225B CN106777225B CN201611219349.XA CN201611219349A CN106777225B CN 106777225 B CN106777225 B CN 106777225B CN 201611219349 A CN201611219349 A CN 201611219349A CN 106777225 B CN106777225 B CN 106777225B
- Authority
- CN
- China
- Prior art keywords
- data
- proxy node
- storage unit
- node
- backup
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
- G06F16/214—Database migration support
-
- 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/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/11—File system administration, e.g. details of archiving or snapshots
- G06F16/128—Details of file system snapshots on the file-level, e.g. snapshot creation, administration, deletion
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/174—Redundancy elimination performed by the file system
- G06F16/1748—De-duplication implemented within the file system, e.g. based on file segments
- G06F16/1752—De-duplication implemented within the file system, e.g. based on file segments based on file chunks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/182—Distributed file systems
- G06F16/1824—Distributed file systems implemented using Network-attached Storage [NAS] architecture
- G06F16/1827—Management specifically adapted to NAS
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/80—Database-specific techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/84—Using snapshots, i.e. a logical point-in-time copy of the data
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Quality & Reliability (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种数据的迁移方法和***,用于在不影响用户正常读写数据块的情况下完成数据块的迁移,并且具有很高的数据迁移效率。数据的迁移***中包括:中控节点、第一分片存储单元、第二分片存储单元、数据备份子***,该数据备份子***内存储有第一分片存储单元的数据块和第二分片存储单元的数据块。中控节点向第一代理节点发送数据迁移命令,第一代理节点为数据迁移的源节点;第一代理节点通过数据备份子***获取到需要迁移的第一数据块;第一代理节点将需要迁移的第一数据块发送给第二代理节点,第二代理节点为数据迁移的目的节点;第二代理节点将需要迁移的第一数据块导入到第二分片存储单元中。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种数据的迁移方法和***。
背景技术
随着互联网网站的兴起,传统的关系数据库在应付超大规模和高并发的社会性网络服务(Social Networking Serivces,SNS)类型的web2.0纯动态网站存在很多难以克服的问题,而非关系型的数据库则由于其本身的特点得到了非常迅速的发展,NoSQL数据库可以解决大规模数据集合带来的挑战,尤其是大数据应用难题。
MongoDB是一种分布式的NoSQL数据库,旨在为网络应用提供可扩展的高性能数据存储解决方案。MongoDB介于关系数据库和非关系数据库之间,MongoDB支持的查询语言非常强大,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。
MongoDB有三个组件:Mongos,ConfigSvr,Mongod,Mongos根据管理员设置的片键将数据分摊到自己管理的Mongod集群,ConfigSvr保存配置信息。MongoDB在逻辑上将一张数据库表拆分成8192个数据块(chunk),在MongoDB原生的迁移方案中,每个Mongos上设置一个平衡(balancer)模块,chunk迁移由balancer模块执行,balancer模块并不是一个独立的服务,而是Mongos的一个线程模块,Mongos在ConfigServer中通过注册分布式锁来保证同一时间只有一个balancer模块在执行。Balancer模块对于每一个数据库表的chunk分布,计算出这个数据库表需要进行迁移的chunk,以及每个chunk需要迁移到哪个数据库表上。计算的过程在BalancerPolicy类中实现。对于每一个数据库表,尝试获得该数据库表的分布式锁。MongoDB的数据迁移过程中,所有的数据库表共享同一个分布式锁,如果获得分布式锁成功,则向源数据分片发起数据块迁移命令,如果获得分布式锁失败,表明该数据库表已有正在执行迁移任务,因此对于同一张数据库表在同一时刻只能有一个迁移任务,即使这张数据库表分布在不同的数据分片上,由于所有的数据库表共享同一个分布式锁,也只能等待前一个数据库表使用完分布式锁后再进行分布式锁的分配。
通过前述对原生MongoDB的迁移方案可知,现有技术至少存在如下技术缺陷:1)、现有的原生MongoDB迁移方案采用在线实时数据进行迁移,这就需要读取源数据分片上的数据块,读取这部分数据块时会影响用户对Mongod的正常读写,导致用户读写数据块失败。2)、原生MongoDB迁移方案中,数据的迁移受到分布式锁的限制是一个单线程的过程,数据迁移的效率很低。
发明内容
本发明实施例提供了一种数据的迁移方法和***,用于在不影响用户正常读写数据块的情况下完成数据块的迁移,并且具有很高的数据迁移效率。
为解决上述技术问题,本发明实施例提供以下技术方案:
第一方面,本发明实施例提供一种数据的迁移方法,所述数据的迁移方法应用于数据的迁移***,所述数据的迁移***包括:中控节点、第一分片存储单元、第二分片存储单元、数据备份子***,其中,
所述第一分片存储单元上配置有第一代理节点,所述第二分片存储单元上配置有第二代理节点,所述第一代理节点分别和所述中控节点、所述数据备份子***建立有通信连接,所述第二代理节点分别和所述中控节点、所述数据备份子***建立有通信连接,所述第一分片存储单元上存储的数据块通过所述第一代理节点备份到所述数据备份子***中,所述第二分片存储单元上存储的数据块通过所述第二代理节点备份到所述数据备份子***中;
所述数据的迁移方法,包括:
所述中控节点向所述第一代理节点发送数据迁移命令,所述第一代理节点为数据迁移的源节点;
所述第一代理节点接收到所述中控节点发送的数据迁移命令之后,所述第一代理节点通过所述数据备份子***获取到需要迁移的第一数据块;
所述第一代理节点将所述需要迁移的第一数据块发送给所述第二代理节点,所述第二代理节点为数据迁移的目的节点;
所述第二代理节点将所述需要迁移的第一数据块导入到所述第二分片存储单元中。
第二方面,本发明实施例还提供一种数据的迁移***,包括:
所述数据的迁移***包括:中控节点、第一分片存储单元、第二分片存储单元、数据备份子***,其中,
所述第一分片存储单元上配置有第一代理节点,所述第二分片存储单元上配置有第二代理节点,所述第一代理节点分别和所述中控节点、所述数据备份子***建立有通信连接,所述第二代理节点分别和所述中控节点、所述数据备份子***建立有通信连接,所述第一分片存储单元上存储的数据块通过所述第一代理节点备份到所述数据备份子***中,所述第二分片存储单元上存储的数据块通过所述第二代理节点备份到所述数据备份子***中;
所述中控节点,用于向所述第一代理节点发送数据迁移命令,所述第一代理节点为数据迁移的源节点;
所述第一代理节点,用于接收到所述中控节点发送的数据迁移命令之后,所述第一代理节点通过所述数据备份子***获取到需要迁移的第一数据块;
所述第一代理节点,还用于将所述需要迁移的第一数据块发送给所述第二代理节点,所述第二代理节点为数据迁移的目的节点;
所述第二代理节点,用于将所述需要迁移的第一数据块导入到所述第二分片存储单元中。
从以上技术方案可以看出,本发明实施例具有以下优点:
在本发明实施例中,数据的迁移***中包括:中控节点、第一分片存储单元、第二分片存储单元、数据备份子***,该数据备份子***内存储有第一分片存储单元的数据块和第二分片存储单元的数据块。中控节点向第一代理节点发送数据迁移命令,第一代理节点为数据迁移的源节点;第一代理节点接收到中控节点发送的数据迁移命令之后,第一代理节点通过数据备份子***获取到需要迁移的第一数据块;第一代理节点将需要迁移的第一数据块发送给第二代理节点,第二代理节点为数据迁移的目的节点;第二代理节点将需要迁移的第一数据块导入到第二分片存储单元中。由于数据的迁移***中独立于所有的分片存储单元设置有中控节点,第一数据块的迁移由中控节点来控制,不需要再受到分布式锁的限制,因此当第一数据块有多个时每个第一数据块都可以独立完成迁移,因此数据迁移的效率很高,另外本发明实施例中第一代理节点在迁移第一数据块时并不从第一分片存储单元读取,而是从数据备份子***中读取提前备份的第一数据块,用户仍可以正常从第一分片存储单元完成读写操作。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的技术人员来讲,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种数据的迁移***的组成示意图;
图2为本发明实施例提供的一种数据的迁移方法的流程方框示意图;
图3-a为本发明实施例中基于MongoD实现的数据的迁移***的***架构示意图;
图3-b为本发明实施例提供的数据增量备份的示意图;
图4为本发明实施例提供的基于MongoD实现的路由广播流程示意图;
图5为本发明实施例提供的基于MongoD实现的数据快照恢复流程示意图;
图6为本发明实施例提供的数据快照使用多线程的示意图;
图7为本发明实施例提供的基于MongoD实现的增量备份日志恢复流程示意图;
图8为本发明实施例提供的多个增量备份日志使用多个发送线程的示意图;
图9为本发明实施例提供的基于MongoD实现的路由切换流程示意图;
图10-a为本发明实施例提供的另一种数据的迁移***的组成示意图;
图10-b为本发明实施例提供的另一种数据的迁移***的组成示意图;
图11为本发明实施例提供的分片存储单元应用于服务器的组成结构示意图。
具体实施方式
本发明实施例提供了一种数据的迁移方法和***,用于在不影响用户正常读写数据块的情况下完成数据块的迁移,并且具有很高的数据迁移效率。
为使得本发明的发明目的、特征、优点能够更加的明显和易懂,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,下面所描述的实施例仅仅是本发明一部分实施例,而非全部实施例。基于本发明中的实施例,本领域的技术人员所获得的所有其他实施例,都属于本发明保护的范围。
本发明的说明书和权利要求书及上述附图中的术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,以便包含一系列单元的过程、方法、***、产品或设备不必限于那些单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它单元。
本发明实施例提供的数据的迁移方法具体可以应用于数据块在分片存储单元之间的迁移场景,用于解决现有技术中数据块迁移的低效率以及影响用户正常读写操作的问题。在本发明实施例提供的数据的迁移方法中,涉及到中控节点、多个分片存储单元、数据备份子***等***网元。本发明实施例中在数据的迁移***中设置一中控节点,该中控节点是调度数据块迁移的管理设备,各个分片存储单元之间的数据块迁移都在中控节点的管理下完成。分片存储单元是存储数据分配的存储设备,例如分片存储单元可以是Mongod集群,也可以是其它的分布式存储集群,例如实现Web服务的共享存储集群等,在每个分片存储单元上设置有一个代理节点(Agent),该代理节点和中控节点进行通信,用户通过代理节点做数据监控与模块部署,代理节点可以完成任务分发。本发明实施例中除了使用分片存储单元来存储数据块,在数据的迁移***中还设置有数据备份子***,每个分片存储单元中存储的数据块都在数据备份子***中有备份,并且代理节点可以和数据备份子***进行交互,完成数据块的读写操作请求。例如,该数据备份子***可以是分布于存储***,例如分布式文件***(Hadoop Distributed File System,HDFS)。
在本发明实施例提供的数据的迁移***中,请参阅图1所示,数据的迁移方法应用于数据的迁移***100,数据的迁移***100包括:中控节点101、第一分片存储单元102、第二分片存储单元103、数据备份子***104,其中,
第一分片存储单元102上配置有第一代理节点1021,第二分片存储单元103上配置有第二代理节点1031,第一代理节点1021分别和中控节点101、数据备份子***104建立有通信连接,第二代理节点1031分别和中控节点101、数据备份子***104建立有通信连接,第一分片存储单元102上存储的数据块通过第一代理节点1021备份到数据备份子***104中,第二分片存储单元103上存储的数据块通过第二代理节点1031备份到数据备份子***104中。
请参阅图2所示,本发明实施例提供的数据的迁移方法,可以包括如下步骤:
201、中控节点向第一代理节点发送数据迁移命令,第一代理节点为数据迁移的源节点。
在本发明实施例中,中控节点是调度数据块迁移的管理设备,各个分片存储单元之间的数据块迁移都在中控节点的管理下完成。当第一分片存储单元需要迁移数据时,第一分片存储单元中配置的第一代理节点为数据迁移的源节点,中控节点向第一代理节点发送数据迁移命令。该数据迁移命令中可以携带需要迁移的数据块标识。举例说明如下,分布式存储集群中包括有多个分片存储单元,当分布式存储集群需要扩容时,新上架一个分片存储单元,此时就需要将已有的分片存储单元上保存的部分数据块搬迁到新的分片存储单元上,从而实现数据均衡。又如某个分片存储单元的负载过低,为了节约成本,分布式存储集群进行缩容,将需要下架的分片存储单元上的数据块均衡的搬迁到其他分片存储单元上。
在本发明实施例中,中控节点可以作为数据块迁移的控制端,各个代理节点和中控节点建立有通信连接,各个代理节点在中控节点的控制下完成数据块迁移,数据块迁移由中控节点来控制,不需要再受到分布式锁的限制,有数据块需要迁移时每个数据块都可以独立完成迁移,因此数据迁移的效率很高。举例说明如下,在数据迁移的***中有两个分片存储单元都需要数据块迁移,则中控节点可以按照步骤201的方式向两个分片存储单元上的代理节点分别发送数据迁移命令。
202、第一代理节点接收到中控节点发送的数据迁移命令之后,第一代理节点通过数据备份子***获取到需要迁移的第一数据块。
在本发明实施例中,第一代理节点分别和中控节点、数据备份子***建立有通信连接,若该第一代理节点接收到中控节点的数据迁移命令,由于数据备份子***内存储有第一分片存储单元的数据块,则第一代理节点可以通过数据备份子***获取到在数据备份子***备份存储的第一数据块,此时第一分片存储单元中虽然正在执行对第一数据块的迁移指令,但是第一代理节点并不影响第一分片存储单元对用户正常操作的响应。
203、第一代理节点将需要迁移的第一数据块发送给第二代理节点,第二代理节点为数据迁移的目的节点。
在本发明实施例中,第一代理节点确定需要迁移的第一数据块之后,若该第一数据块需要迁移到第二分片存储单元,第二分片存储单元上配置有第二代理节点,该第二代理节点为数据迁移的目的节点。第一代理节点可以将需要迁移的第一数据块发送给第二代理节点。例如第一代理节点在中控节点的调度下完成第一代理节点和第二代理节点的通信。又如,第一代理节点和第二代理节点通过内部通信协议完成第一数据块的通信。
204、第二代理节点将需要迁移的第一数据块导入到第二分片存储单元中。
在本发明实施例中,第二代理节点从第一代理节点接收到需要迁移的第一数据块,然后第二代理节点再将需要迁移的第一数据块导入到第二分片存储单元中,从而完成第一数据块的迁移过程。
需要说明的是,本发明实施例中,步骤201至步骤204描述了对需要迁移的第一数据块的迁移过程,可以理解的是,在数据的迁移***,若还有其它的数据块,例如第二数据块和第三数据块需要迁移,则都可以按照步骤2011至步骤204对第一数据块的迁移过程来实现第二数据块以及第三数据块的迁移,从而本发明实施例中可以实现多个数据块的并发迁移。
在本发明的一些实施例中,除了执行前述步骤之外,本发明实施例提供的数据的迁移方法中,还包括如下步骤:
A1、中控节点将数据库表中的所有数据拆分为多个数据块;
A2、中控节点将多个数据块中的一些数据块发送给第一代理节点,并将多个数据块中的其余数据块发送给第二代理节点;
A3、第一代理节点将接收到的一些数据块导入到第一分片存储单元中;
A4、第二代理节点将接收到的另一些数据块导入到第二分片存储单元中。
在本发明的前述实施例中,对于每张数据库表的所有数据,中控节点在逻辑上将所有数据拆分成多个数据块,具体拆分的块数与数据库表的大小以及拆分方式有关,例如可以将一张数据表拆分为8192个数据块(chunk)。在数据的迁移***中包括:第一分片存储单元和第二分片存储单元,中控节点将多个数据块分配到第一分片存储单元和第二分片存储单元,若在数据的迁移***中还第三分片存储单元,则中控节点也可以向第三分片存储单元分配数据块,此处不做限定。
进一步的,在本发明的一些实施例中,该数据的迁移***还包括:键值存储设备,键值存储设备和中控节点之间建立有通信连接。步骤A1中控节点将数据库表中的所有数据拆分为多个数据块之后,本发明实施例提供的数据的迁移方法中,还包括如下步骤:
B1、中控节点根据多个数据块创建路由表,路由表包括:多个数据块中每个数据块与对应的分片存储单元的分片标识、工作状态之间的映射关系,每个数据块与对应的分片存储单元的工作状态包括:正常状态和禁止写入状态;
B2、中控节点将路由表存储到键值存储设备中。
其中,键值存储设备用于存储路由表,中控节点和键值存储设备相连接,该键值存储设备也可以称为一致性存储设备,键值存储设备可以使用一致性算法保证数据的强一致性,例如键值存储设备可以是Etcd,Etcd是一个高可用的键值存储***,主要用于共享配置和服务发现。中控节点创建的路由表保存在键值存储设备中,每个路由表的更改都需要修改键值存储设备。在本发明实施例中,路由表包括:多个数据块中每个数据块与对应的分片存储单元的分片标识、工作状态之间的映射关系,每个数据块与对应的分片存储单元的工作状态包括:正常状态和禁止写入状态。例如在路由表中记录有chunk_id->(shard_id,state)的映射关系,chunk_id表示数据块的标识,shard_id是分片存储单元的分片标识,state表示分片存储单元的工作状态,每个数据块与对应的分片存储单元的工作状态包括:正常状态(NORMAL)和禁止写入状态(FORBID_WRITE),正常状态指的是分片存储单元可以为正常提供数据块的读写操作请求,禁止写入状态指的是分片存储单元被禁用,无法提请读写操作请求。
进一步的,在前述中控节点在键值存储设备中存储路由表的场景下,在本发明的一些实施例中,步骤204第二代理节点将需要迁移的第一数据块导入到第二分片存储单元中之后,本发明实施例提供的数据的迁移方法中,还包括如下步骤:
C1、第二代理节点向中控节点上报迁移成功消息;
C2、中控节点根据迁移成功消息将路由表中记录的第一数据块的映射关系从第一分片存储单元更改为第二分片存储单元。
其中,第一数据块在路由表中记录的映射关系是第一数据块存储在第一分片存储单元,若第一数据块迁移到第二分片存储单元,则路由表需要更改,中控节点可以修改键值存储设备。
进一步的,在前述中控节点在键值存储设备中存储路由表的场景下,在本发明的一些实施例中,数据的迁移***还包括:网关(Proxy)模块,第一代理节点和第二代理节点都通过网关模块和中控节点之间建立有通信连接。步骤C1中控节点根据迁移成功消息将路由表中记录的第一数据块的映射关系从第一分片存储单元更改为第二分片存储单元之后,本发明实施例提供的数据的迁移方法中,还包括如下步骤:
D1、中控节点通过网关模块向第一代理节点和第二代理节点广播路由表的存储单元更改消息。
具体的,在第一代理节点和中控节点之间、第二代理节点和中控节点之间都部署有网关模块,则中控节点与第一代理节点之间的通信可以通过网关模块来完成。例如步骤C1中控节点修改键值存储设备之后,中控节点向网关模块发送路由表的存储单元更改消息,网关模块可以向所有的代理节点广播路由表的存储单元更改消息。
进一步的,在前述中控节点在键值存储设备中存储路由表的场景下,步骤202第一代理节点通过数据备份子***获取到需要迁移的第一数据块之前,本发明实施例提供的数据的迁移方法中,还包括如下步骤:
E1、第一代理节点向中控节点发送封禁路由请求;
E2、中控节点根据封禁路由请求将路由表中记录的第一分片存储单元的工作状态从正常状态更改为禁止写入状态;
E3、中控节点向网关模块广播路由表的工作状态更改消息;
E4、网关模块根据路由表的工作状态更改消息封禁对第一分片存储单元的操作处理请求。
其中,在数据迁移过程中,用户在源源不断的将数据写入到第一分片存储单元中,在第一分片存储单元进行数据块迁移之前,中控节点可以修改第一分片存储单元的工作状态,从正常状态更改为禁止写入状态,网关模块根据路由表的工作状态更改消息封禁对第一分片存储单元的操作处理请求,此时用户无法再对第一分片存储单元进行操作处理请求,以避免用户将数据写入到第一分片存储单元,但是无法迁移到第二分片存储单元中造成用户数据丢失的问题。
在本发明的一些实施例中,除了执行前述步骤之外,本发明实施例提供的数据的迁移方法中,还包括如下步骤:
F1、中控节点定期的向第一代理节点和第二代理节点发起备份任务;
F2、第一代理节点根据备份任务定期的将第一分片存储单元上存储的数据块备份到数据备份子***中;
F3、第二代理节点根据备份任务定期的将第二分片存储单元上存储的数据块备份到数据备份子***中。
其中,数据备份子***作为所有分片存储单元的数据备份实体,中控节点可以控制各个代理节点的数据备份,例如中控节点定期的触发备份任务,则每个代理节点都可以定期的将其所在的分片存储单元上存储的数据块备份到数据备份子***中,从而数据备份子***可以在数据迁移过程中向代理节点提供数据块备份,因此代理节点不需要再通过分片存储单元进行数据块迁移,从而不影响分片存储单元对用户正常读写操作请求的响应。
进一步的,在本发明的一些实施例中,步骤F2第一代理节点根据备份任务定期的将第一分片存储单元上存储的数据块备份到数据备份子***中,具体包括:
F21、若第一代理节点在启动运行后第一次接收到备份任务,第一代理节点对第一分片存储单元上存储的当前所有数据块进行备份从而生成数据快照,将数据快照备份到数据备份子***中;
F22、若第一代理节点不是第一次接收到备份任务,第一代理节点从第一分片存储单元上获取用于记录第一分片存储单元被修改的增量备份日志,将增量备份日志备份到数据备份子***中。
其中,本发明实施例中,数据的迁移***中的所有代理节点都可以使用增量备份的方式,例如步骤F21至F22中对第一代理节点的增量备份过程进行了说明,则第二代理节点也可以按照该方式完成增量备份过程。具体的,若第一代理节点在启动运行后第一次接收到备份任务,第一代理节点对第一分片存储单元上存储的当前所有数据块进行备份从而生成数据快照,将数据快照备份到数据备份子***中。若第一代理节点不是第一次接收到备份任务,第一代理节点每次从第一分片存储单元上获取从上一次备份到本次备份期间产生的增量备份日志,将增量备份日志备份到数据备份子***中。例如分片存储单元具体为MongoD存储集群,在第一次备份时需要对MongoD存储集群中的所有数据块生成数据快照Snapshot,之后每次备份只需要做增量备份,第一代理节点扫描第一分片存储单元的存储日志就可以获取到增量备份日志OplogDump,不需要每次都对第一分片存储单元进行全局备份,提高数据块的备份效率。
在现有技术提供的原生MongoDB迁移方案中,一张数据库表在同一时刻只有一个迁移任务,即使该数据库表分在多个不同的数据分片上,也无法实现并发的数据块迁移,并且原生MongoDB迁移方案中,数据的迁移受到分布式锁的限制是一个单线程的过程,因此数据迁移的效率很低。进一步的,本发明实施例中为了解决该问题,还可以同时使用多个线程来并发的完成数据块的迁移。在前述执行步骤F21至步骤F22的实现场景下,具体的,步骤202第一代理节点通过数据备份子***获取到需要迁移的第一数据块,包括:
G1、第一代理节点从数据备份子***获取到需要迁移的第一数据快照;
G2、第一代理节点将第一数据快照划分为多个快照分块;
G3、第一代理节点调用线程池中的多个线程从多个快照分块中过滤出需要迁移的快照分块,需要迁移的快照分块属于第一数据块。
具体的,本发明实施例中,第一代理节点确定需要迁移第一数据快照时,可以将第一数据快照划分为多个快照分块,第一代理节点调用线程池中的多个线程从多个快照分块中过滤出需要迁移的快照分块,需要迁移的快照分块属于第一数据块。例如,第一数据快照对应的多个快照分块之间具有无关的特性,可以使用多个分块过滤器同时对多个快照分块进行过滤,则可以确定出需要迁移的快照分块,大幅提高了数据块迁移的效率。
在前述执行步骤G1至步骤G3的实现场景下,具体的,若数据备份子***中还保存有第一分片存储单元中的增量备份日志,如前述步骤F21至步骤F22所示的应用场景,则步骤202第一代理节点通过数据备份子***获取到需要迁移的第一数据块,还包括:
G4、第一代理节点调用线程池中的多个线程从多个快照分块中过滤出需要迁移的快照分块之后,第一代理节点从数据备份子***获取到需要迁移的第一增量备份日志;
G5、第一代理节点将需要迁移的第一增量备份日志按照日志标识进行分组得到不同组的第一增量备份日志,不同组的第一增量备份日志属于第一数据块。
其中,第一代理节点可以根据数据迁移指令从数据备份子***获取到需要迁移的第一增量备份日志,多个第一增量备份日志分别是对数据库表中单个行的数据,数据库表内行与行之间具有无关的特性,因此可以按照日志标识对需要迁移的第一增量备份日志进行分组,得到不同组的第一增量备份日志,不同组的第一增量备份日志属于第一数据块。
在前述执行步骤G1至步骤G3、步骤G4和步骤G5的实现场景下,具体的,除了数据备份子***中保存的第一分片存储单元的数据快照和增量备份日志。在数据迁移过程中,用户在源源不断的将数据写入到第一分片存储单元中,在第一分片存储单元进行数据块迁移之前,中控节点可以修改第一分片存储单元的工作状态,从正常状态更改为禁止写入状态,在第一分片存储单元状态更改为禁止写入状态之前,仍会有数据写入到第一分片存储单元中,在这种实现场景下,步骤202第一代理节点通过数据备份子***获取到需要迁移的第一数据块,还包括:
G6、第一代理节点从数据备份子***获取到需要迁移的第一增量备份日志之后,第一代理节点根据第一增量备份日志对应的备份时间戳从第一分片存储单元上获取从备份时间戳到当前时间已存储的残余增量日志,残余增量日志属于第一数据块。
其中,第一代理节点从数据备份子***获取到需要迁移的第一增量备份日志之后,第一代理节点从数据备份子***获取到第一增量备份日志对应的备份时间戳,第一代理节点还需要从第一分片存储单元上获取从备份时间戳到当前时间已存储的残余增量日志。举例说明,在导入第一增量备份日志的过程中,用户还是有数据源源不断的写入第一分片存储单元,用户的写入会被记录到第一分片存储单元的日志数据中,这部分用户的写入数据叫做残余增量日志。
在前述执行步骤G1至步骤G3、步骤G4和步骤G5、步骤G6的实现场景下,具体的,步骤203第一代理节点将需要迁移的第一数据块发送给第二代理节点,包括:
H1、第一代理节点将需要迁移的快照分块发送给第二代理节点;
H2、第一代理节点对不同组的第一增量备份日志使用不同的发送线程同时向第二代理节点发送;
H3、第一代理节点将残余增量日志发送给第二代理节点。
其中,由前述的具体应用场景说明可知,
其中,需要迁移的快照分块属于第一数据块,不同组的第一增量备份日志属于第一数据块,残余增量日志属于第一数据块,因此第一代理节点可以分别向第二代理节点发送需要迁移的快照分块、不同组的第一增量备份日志、残余增量日志,由于第一代理节点对不同组的第一增量备份日志使用不同的发送线程同时向第二代理节点发送,因此可以充分利用数据库表中不同行之间的无关特性,通过多个发送线程的并用可以提高数据块的迁移效率。
通过以上实施例对本发明实施例的描述可知,数据的迁移***中包括:中控节点、第一分片存储单元、第二分片存储单元、数据备份子***,该数据备份子***内存储有第一分片存储单元的数据块和第二分片存储单元的数据块。中控节点向第一代理节点发送数据迁移命令,第一代理节点为数据迁移的源节点;第一代理节点接收到中控节点发送的数据迁移命令之后,第一代理节点通过数据备份子***获取到需要迁移的第一数据块;第一代理节点将需要迁移的第一数据块发送给第二代理节点,第二代理节点为数据迁移的目的节点;第二代理节点将需要迁移的第一数据块导入到第二分片存储单元中。由于数据的迁移***中独立于所有的分片存储单元设置有中控节点,第一数据块的迁移由中控节点来控制,不需要再受到分布式锁的限制,因此当第一数据块有多个时每个第一数据块都可以独立完成迁移,因此数据迁移的效率很高,另外本发明实施例中第一代理节点在迁移第一数据块时并不从第一分片存储单元读取,而是从数据备份子***中读取提前备份的第一数据块,用户仍可以正常从第一分片存储单元完成读写操作。
为便于更好的理解和实施本发明实施例的上述方案,下面举例相应的应用场景来进行具体说明。
接下来以本发明实施例中分片存储单元具体为MongoD集群为例,请参阅图3-a所示,在本发明实施例基于MongoD实现的数据的迁移***中,该数据的迁移***中对于每张数据库表的数据,在逻辑上将数据拆分成8192个chunk,这些chunk放在一致性存储设备Etcd中,并且通过中控节点下发的方式在适当的时间推送给接入层,当一个MongoD上的数据即将超过承载时,利用数据快照SnapShot和增量备份日志OplogDump文件,从源MongoD中提取出需要迁移到其他MongoD上的chunk并导入。在此过程中源MongoD产生的写操作被Mongod记录在增量日志Oplog中,提取出这部分Oplog导入目标MongoD后,封禁源MongoD对应chunk的写请求,等Oplog完全同步完后,修改Etcd中关于chunk与MongoD的映射关系。
本发明实施例提供的基于MongoD实现的数据的迁移***,可以应用在CMongo存储集群中,当集群需要扩容时,新上架一个数据分片,并将存量集群上的部分chunk迁移到新集群上,从而实现数据均衡。某个CMongo集群负载过低为了节约成本,集群进行缩容,将需要下架的机器上的chunk均衡的迁移到其他数据分片上。
请参阅图3-a和图3-b所示,中控节点可以定期的将备份任务下发给每个MongoD分片中的代理节点Agent,若每个MongoD分片又可以分为主备双分片,则中控节点可以将备份任务下发给备MongoD分片中的Agent。Agent从MongoD中提取Snapshot或者OplogDump并存放到HDFS上。
例如CMongo的迁移***依赖于CMongo的增量备份子***与路由子***。其中,增量备份子***包括:中控节点,每台MongoD机器上的Agent节点,以及用于存放备份数据的HDFS组成。如图3-b所示,任务由中控节点下发给对应机器的Agent,Agent连接本机的MongoD获得Snapshot与OplogDump,第一次备份需要获得Snapshot,之后每次只需要增量备份,增量备份通过扫描Oplog获得上一次增量备份至今的OplogDump,MongoD中的数据库DB中存储有数据块1、2、3、4、5、6,则每次备份将数据块1和2、数据块3和4、数据块5和6分别备份到HDFS中,数据拷贝相当于数据快照+数据块1、2、3、4、5、6。其中,SnapShot是数据库在某个时间点的数据快照,幂等性是指如果一个操作作用于数据库表中的一行任意多次,结果都不发生改变的特性,Oplog是记录数据库数据修改的具有幂等性的日志(log)记录,按照操作时间顺序***,用于增量数据恢复。OplogDum(t)是对MongoD的Oplog从某个时间戳t时刻开始做的一个拷贝,该拷贝存放于HDFS上。
请参阅图4所示,为本发明实施例提供的基于MongoD实现的路由广播流程示意图。在路由子***中,一张数据库表被分为8192个chunk,路由表为chunk_id->(shard_id,state)的映射关系,其中state分为NORMAL,FORBID_WRITE两种状态,路由表存放在Etcd集群中,路由表的更改由中控节点统一处理,并广播给前端的网关(proxy)模块,路由表只有在执行数据迁移的最后阶段才变为FORBID_WRITE状态。
请参阅图5所示,为本发明实施例提供的基于MongoD实现的数据快照恢复流程示意图。接下来对本发明实施例中的数据迁移过程进行说明,每台MongoD机器的Agent都可以执行如下的数据迁移过程,Agent接受中控节点的数据迁移任务,通过存储在HDFS上的备份文件与本机上的源Mongod上的Oplog来迁移数据,Agent执行迁移任务主要包含以下几个步骤
Step1:接受中控节点的命令,从HDFS上拉取相应的Snapshot文件。如图6所示,为本发明实施例提供的数据快照使用多线程的示意图,创建线程池,将Snapshot划分为若干小块放到线程池(ThreadPool)中,每个线程池过滤需要迁移的chunk并迁移到目标Mongod中。对于一个数据迁移任务,会指定需要将某个分片的哪些chunk搬迁到哪个新分片上。搬迁的线程池了解搬迁任务的chunk信息,对于每一条需要过滤的数据,使用分片过滤器(ChunkFilter)计算出该数据是否数据需要搬迁的任务,从而得到过滤,过滤后得到快照分块***到目标MongoD中。
Step2:从HDFS上拉取OplogDump列表,由于Oplog是一系列操作例如:新建(Create)、修改(Update)、删除(Delete)操作,不像Snapshot一样全部是***操作,因此不能像Snapshot一样对数据随意分组。但是由于Oplog中的一条是对单行数据的操作,而行与行之间无关联,因此遍历OplogDump文件,按照每一条Oplog的分片标识ObjectId(简称ObjId)进行哈希分组,每一组数据放入单个线程中顺序处理。对于每一行数据,都有一个唯一的全局Id,这个Id叫做ObjId,每一条Oplog是对某一行的更改,所以每一条Oplog都会记录对应行的ObjId。
如图7和图8所示,图7为本发明实施例提供的基于MongoD实现的增量备份日志恢复流程示意图,图8为本发明实施例提供的多个增量备份日志使用多个发送线程的示意图。增量备份日志OplogDump[1]到OplogDump[n]共n个分组,每个分组的OplogDump分别恢复到目标MongoD中。如图8所示,OplogDump[1]到OplogDump[n]共n个分组使用提取线程(Extract_Thread)送入分片过滤器(Chunk Filter)然后进行哈希分组,分别使用发送线程池(Send ThreadPool)中的多个发送线程(Send)向目标MongoD发送OplogDump[1]到OplogDump[n]。其中解析Oplog也称为:applyOps,每一条Oplog都完整的记录了用户的某次数据修改,将该条Oplog中的信息解析出来,并应用到某一个分片上的过程,叫做applyOps。
Step3:从OplogDump中得到备份Oplog的最后一条时间戳T,Agent从本机的源Mongod中拉取从T时刻到结束的Oplog,从而得到残余增量日志,并同步该残余增量日志至目标Mongod中。该步骤的线程模型与Step2的线程模型一致。在导入OplogDump的过程中,用户还是有数据源源不断的写入的,用户的写入会被记录到源MongoD的Oplog中,这部分用户的写入的数据叫做残余增量日志。
Step4:执行路由切换流程。请参阅图9所示,为本发明实施例提供的基于MongoD实现的路由切换流程示意图。主要包括如下过程:
Step4.1:封禁路由,用户短暂不可写,将源Mongod中残余的Oplog同步至目标Mongod。封禁路由由Agent向中控节点发起,中控节点更改Etcd中的路由信息后,向所有Proxy广播路由更改。
Step4.2:proxy封禁用户对应chunk的写请求,路由封禁成功后,将源Mongod的残余Oplog同步至目标Mongod中。
Step4.3:再次通过中控节点广播路由,更改迁移chunk对应的分片。中控节点修改Etcd,然后中控节点向Proxy广播路由修改,Proxy更新路由状态,中控节点确定路由更新成功。
Step4.4:Agent删除源MonoD分片上已经迁移走的chunk。
由前述的举例说明可知,本发明实施例中完美的将数据备份与数据迁移结合在一起,大大的提高了备份文件的存在价值,数据备份主要是用来做数据回档的。在导入SnapShot时,采用多线程并发***,大幅提高了基准数据的导入速度,在导入OplogDump列表以及从MongoDb的Oplog中导入残余数据时,利用了行与行之间的数据无关性,按照oplog的ObjId对Oplog进行哈希分组,不同组之间并发导入,大幅提升了增量数据的导入速度。对于同一张表不同分片之间的输入输出隔离性,不同分片之间的数据迁移可以并发进行,由中心节点灵活控制迁移的并发度。下面对本发明实施例中数据迁移效率与现有技术中原生MongoDB的数据迁移效率对比,相同大小的数据集,利用MongoDB原生的迁移方案进行迁移速度远不如本发明实施例中CMongo的迁移方案,从下表1可以看出,速度差距在10倍以上。
现有技术中MongoDB原生的数据迁移的并发度不够,导致数据迁移的效率很慢,本发明实施例充分利用了数据之间的无关性,采用多线程并发搬迁的技术,充分提高了数据搬迁的效率。本发明实施例使用数据备份文件进行数据搬迁,不同于原生MongoDB采用在线实时数据进行搬迁,MongoDB实时数据搬迁会影响源数据库的读写性能。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
为便于更好的实施本发明实施例的上述方案,下面还提供用于实施上述方案的相关装置。
如图1所示的一种数据的迁移***,所述数据的迁移***100包括:中控节点101、第一分片存储单元102、第二分片存储单元103、数据备份子***104,其中,
所述第一分片存储单元102上配置有第一代理节点1021,所述第二分片存储单元103上配置有第二代理节点1031,所述第一代理节点1021分别和所述中控节点101、所述数据备份子***104建立有通信连接,所述第二代理节点1031分别和所述中控节点101、所述数据备份子***104建立有通信连接,所述第一分片存储单元102上存储的数据块通过所述第一代理节点1021备份到所述数据备份子***104中,所述第二分片存储单元103上存储的数据块通过所述第二代理节点1031备份到所述数据备份子***104中;
所述中控节点101,用于向所述第一代理节点1021发送数据迁移命令,所述第一代理节点1021为数据迁移的源节点;
所述第一代理节点1021,用于接收到所述中控节点101发送的数据迁移命令之后,所述第一代理节点1021通过所述数据备份子***104获取到需要迁移的第一数据块;
所述第一代理节点1021,还用于将所述需要迁移的第一数据块发送给所述第二代理节点1031,所述第二代理节点1031为数据迁移的目的节点;
所述第二代理节点1031,用于将所述需要迁移的第一数据块导入到所述第二分片存储单元103中。
在本发明的一些实施例中,所述中控节点101,还用于将数据库表中的所有数据拆分为多个数据块;将所述多个数据块中的一些数据块发送给所述第一代理节点1021,并将所述多个数据块中的其余数据块发送给所述第二代理节点1031;
所述第一代理节点1021,还用于将接收到的所述一些数据块导入到所述第一分片存储单元102中;
所述第二代理节点1031,还用于将接收到的所述另一些数据块导入到所述第二分片存储单元103中。
在本发明的一些实施例中,请参阅图10-a所示,所述数据的迁移***100还包括:键值存储设备105,所述键值存储设备和所述中控节点101之间建立有通信连接;
所述中控节点101,还用于将数据库表中的所有数据拆分为多个数据块之后,根据所述多个数据块创建路由表,所述路由表包括:所述多个数据块中每个数据块与对应的分片存储单元的分片标识、工作状态之间的映射关系,所述每个数据块与对应的分片存储单元的工作状态包括:正常状态和禁止写入状态;将所述路由表存储到所述键值存储设备105中。
在本发明的一些实施例中,所述第二代理节点1031,还用于将所述需要迁移的第一数据块导入到所述第二分片存储单元103中之后,向所述中控节点101上报迁移成功消息;
所述中控节点101,还用于根据所述迁移成功消息将所述路由表中记录的所述第一数据块的映射关系从所述第一分片存储单元102更改为所述第二分片存储单元103。
在本发明的一些实施例中,请参阅图10-b所示,所述数据的迁移***100还包括:网关模块106,所述第一代理节点1021和所述第二代理节点1031都通过所述网关模块106和所述中控节点101之间建立有通信连接;
所述中控节点101,还用于根据所述迁移成功消息将所述路由表中记录的所述第一数据块的映射关系从所述第一分片存储单元102更改为所述第二分片存储单元103之后,通过所述网关模块106向所述第一代理节点和所述第二代理节点广播所述路由表的存储单元更改消息。
在本发明的一些实施例中,所述第一代理节点1021,还用于通过所述数据备份子***104获取到需要迁移的第一数据块之前,向所述中控节点101发送封禁路由请求;
所述中控节点101,还用于根据所述封禁路由请求将所述路由表中记录的所述第一分片存储单元102的工作状态从正常状态更改为禁止写入状态;
所述中控节点101,还用于向所述网关模块广播所述路由表的工作状态更改消息;
所述网关模块106,还用于根据所述路由表的工作状态更改消息封禁对所述第一分片存储单元102的操作处理请求。
在本发明的一些实施例中,所述中控节点101,还用于定期的向所述第一代理节点1021和所述第二代理节点1031发起备份任务;
所述第一代理节点1021,还用于根据所述备份任务定期的将所述第一分片存储单元102上存储的数据块备份到所述数据备份子***104中;
所述第二代理节点1031,还用于根据所述备份任务定期的将所述第二分片存储单元103上存储的数据块备份到所述数据备份子***104中。
在本发明的一些实施例中,所述第一代理节点1021,具体用于若所述第一代理节点1021在启动运行后第一次接收到所述备份任务,对所述第一分片存储单元102上存储的当前所有数据块进行备份从而生成数据快照,将所述数据快照备份到所述数据备份子***104中;若所述第一代理节点1021不是第一次接收到所述备份任务,从所述第一分片存储单元102上获取用于记录所述第一分片存储单元102被修改的增量备份日志,将所述增量备份日志备份到所述数据备份子***104中。
在本发明的一些实施例中,所述第一代理节点1021,具体用于从所述数据备份子***104获取到需要迁移的第一数据快照;将所述第一数据快照划分为多个快照分块;调用线程池中的多个线程从所述多个快照分块中过滤出需要迁移的快照分块,所述需要迁移的快照分块属于所述第一数据块。
在本发明的一些实施例中,所述第一代理节点1021,具体用于调用线程池中的多个线程从所述多个快照分块中过滤出需要迁移的快照分块之后,所述第一代理节点1021从所述数据备份子***104获取到需要迁移的第一增量备份日志;将所述需要迁移的第一增量备份日志按照日志标识进行分组得到不同组的第一增量备份日志,所述不同组的第一增量备份日志属于所述第一数据块。
在本发明的一些实施例中,所述第一代理节点1021,具体用于从所述数据备份子***104获取到需要迁移的第一增量备份日志之后,所述第一代理节点1021根据所述第一增量备份日志对应的备份时间戳从所述第一分片存储单元102上获取从所述备份时间戳到当前时间已存储的残余增量日志,所述残余增量日志属于所述第一数据块。
在本发明的一些实施例中,所述第一代理节点1021,具体用于将所述需要迁移的快照分块发送给所述第二代理节点1031;对所述不同组的第一增量备份日志使用不同的发送线程同时向所述第二代理节点1031发送;将所述残余增量日志发送给所述第二代理节点1031。
通过以上对本发明实施例的描述可知,数据的迁移***中包括:中控节点、第一分片存储单元、第二分片存储单元、数据备份子***,该数据备份子***内存储有第一分片存储单元的数据块和第二分片存储单元的数据块。中控节点向第一代理节点发送数据迁移命令,第一代理节点为数据迁移的源节点;第一代理节点接收到中控节点发送的数据迁移命令之后,第一代理节点通过数据备份子***获取到需要迁移的第一数据块;第一代理节点将需要迁移的第一数据块发送给第二代理节点,第二代理节点为数据迁移的目的节点;第二代理节点将需要迁移的第一数据块导入到第二分片存储单元中。由于数据的迁移***中独立于所有的分片存储单元设置有中控节点,第一数据块的迁移由中控节点来控制,不需要再受到分布式锁的限制,因此当第一数据块有多个时每个第一数据块都可以独立完成迁移,因此数据迁移的效率很高,另外本发明实施例中第一代理节点在迁移第一数据块时并不从第一分片存储单元读取,而是从数据备份子***中读取提前备份的第一数据块,用户仍可以正常从第一分片存储单元完成读写操作。
图11是本发明实施例提供的一种服务器结构示意图,该服务器1100上设置有代理节点1123,该服务器具体为前述的分片存储单元,可因配置或性能不同而产生比较大的差异,可以包括一个或一个以***处理器(central processing units,CPU)1122(例如,一个或一个以上处理器)和存储器1132,一个或一个以上存储应用程序1142或数据1144的存储介质1130(例如一个或一个以上海量存储设备)。其中,存储器1132和存储介质1130可以是短暂存储或持久存储。存储在存储介质1130的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对服务器中的一系列指令操作。更进一步地,中央处理器1122可以设置为与存储介质1130通信,在服务器1100上执行存储介质1130中的一系列指令操作。
服务器1100还可以包括一个或一个以上电源1126,一个或一个以上有线或无线网络接口1150,一个或一个以上输入输出接口1158,和/或,一个或一个以上操作***1141,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM等等。
上述实施例中由分片存储单元所执行的步骤可以基于该图11所示的服务器结构。
另外需说明的是,以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。另外,本发明提供的装置实施例附图中,模块之间的连接关系表示它们之间具有通信连接,具体可以实现为一条或多条通信总线或信号线。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件的方式来实现,当然也可以通过专用硬件包括专用集成电路、专用CPU、专用存储器、专用元器件等来实现。一般情况下,凡由计算机程序完成的功能都可以很容易地用相应的硬件来实现,而且,用来实现同一功能的具体硬件结构也可以是多种多样的,例如模拟电路、数字电路或专用电路等。但是,对本发明而言更多情况下软件程序实现是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在可读取的存储介质中,如计算机的软盘、U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
综上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照上述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对上述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (25)
1.一种数据的迁移方法,其特征在于,所述数据的迁移方法应用于数据的迁移***,所述数据的迁移***包括:中控节点、第一分片存储单元、第二分片存储单元、数据备份子***,其中,
所述第一分片存储单元上配置有第一代理节点,所述第二分片存储单元上配置有第二代理节点,所述第一代理节点分别和所述中控节点、所述数据备份子***建立有通信连接,所述第二代理节点分别和所述中控节点、所述数据备份子***建立有通信连接,所述第一分片存储单元上存储的数据块通过所述第一代理节点备份到所述数据备份子***中,所述第二分片存储单元上存储的数据块通过所述第二代理节点备份到所述数据备份子***中;
所述数据的迁移方法,包括:
所述中控节点向所述第一代理节点发送数据迁移命令,所述第一代理节点为数据迁移的源节点;
所述第一代理节点接收到所述中控节点发送的数据迁移命令之后,若所述数据备份子***中仅备份有数据快照,则从所述数据备份子***获取属于需要迁移的第一数据块的快照分块,若所述数据备份子***中备份有数据快照和增量备份日志,则从所述数据备份子***获取属于需要迁移的第一数据块的快照分块和第一增量备份日志,从所述第一分片存储单元上获取属于所述需要迁移的第一数据块的残余增量日志;
所述第一代理节点将所述需要迁移的第一数据块的快照分块发送给所述第二代理节点;或者,所述第一代理节点将所述需要迁移的第一数据块的快照分块、第一增量备份日志和残余增量日志发送给所述第二代理节点;所述第二代理节点为数据迁移的目的节点;
所述第二代理节点将所述需要迁移的第一数据块导入到所述第二分片存储单元中。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
所述中控节点将数据库表中的所有数据拆分为多个数据块;
所述中控节点将所述多个数据块中的一些数据块发送给所述第一代理节点,并将所述多个数据块中的其余数据块发送给所述第二代理节点;
所述第一代理节点将接收到的所述一些数据块导入到所述第一分片存储单元中;
所述第二代理节点将接收到的所述其余数据块导入到所述第二分片存储单元中。
3.根据权利要求2所述的方法,其特征在于,所述数据的迁移***还包括:键值存储设备,所述键值存储设备和所述中控节点之间建立有通信连接;
所述中控节点将数据库表中的所有数据拆分为多个数据块之后,所述方法还包括:
所述中控节点根据所述多个数据块创建路由表,所述路由表包括:所述多个数据块中每个数据块与对应的分片存储单元的分片标识、工作状态之间的映射关系,所述每个数据块与对应的分片存储单元的工作状态包括:正常状态和禁止写入状态;
所述中控节点将所述路由表存储到所述键值存储设备中。
4.根据权利要求3所述的方法,其特征在于,所述第二代理节点将所述需要迁移的第一数据块导入到所述第二分片存储单元中之后,所述方法还包括:
所述第二代理节点向所述中控节点上报迁移成功消息;
所述中控节点根据所述迁移成功消息将所述路由表中记录的所述第一数据块的映射关系从所述第一分片存储单元更改为所述第二分片存储单元。
5.根据权利要求4所述的方法,其特征在于,所述数据的迁移***还包括:网关模块,所述第一代理节点和所述第二代理节点都通过所述网关模块和所述中控节点之间建立有通信连接;
所述中控节点根据所述迁移成功消息将所述路由表中记录的所述第一数据块的映射关系从所述第一分片存储单元更改为所述第二分片存储单元之后,所述方法还包括:
所述中控节点通过所述网关模块向所述第一代理节点和所述第二代理节点广播所述路由表的存储单元更改消息。
6.根据权利要求5所述的方法,其特征在于,所述第一代理节点通过所述数据备份子***获取到需要迁移的第一数据块之前,所述方法还包括:
所述第一代理节点向所述中控节点发送封禁路由请求;
所述中控节点根据所述封禁路由请求将所述路由表中记录的所述第一分片存储单元的工作状态从正常状态更改为禁止写入状态;
所述中控节点向所述网关模块广播所述路由表的工作状态更改消息;
所述网关模块根据所述路由表的工作状态更改消息封禁对所述第一分片存储单元的操作处理请求。
7.根据权利要求1至6中任一项所述的方法,其特征在于,所述方法还包括:
所述中控节点定期的向所述第一代理节点和所述第二代理节点发起备份任务;
所述第一代理节点根据所述备份任务定期的将所述第一分片存储单元上存储的数据块备份到所述数据备份子***中;
所述第二代理节点根据所述备份任务定期的将所述第二分片存储单元上存储的数据块备份到所述数据备份子***中。
8.根据权利要求7所述的方法,其特征在于,所述第一代理节点根据所述备份任务定期的将所述第一分片存储单元上存储的数据块备份到所述数据备份子***中,包括:
若所述第一代理节点在启动运行后第一次接收到所述备份任务,所述第一代理节点对所述第一分片存储单元上存储的当前所有数据块进行备份从而生成数据快照,将所述数据快照备份到所述数据备份子***中;
若所述第一代理节点不是第一次接收到所述备份任务,所述第一代理节点从所述第一分片存储单元上获取用于记录所述第一分片存储单元被修改的增量备份日志,将所述增量备份日志备份到所述数据备份子***中。
9.根据权利要求8所述的方法,其特征在于,所述从所述数据备份子***获取属于需要迁移的第一数据块的快照分块,包括:
所述第一代理节点从所述数据备份子***获取到需要迁移的第一数据快照;
所述第一代理节点将所述第一数据快照划分为多个快照分块;
所述第一代理节点调用线程池中的多个线程从所述多个快照分块中过滤出需要迁移的快照分块,所述需要迁移的快照分块属于所述第一数据块。
10.根据权利要求9所述的方法,其特征在于,从所述数据备份子***获取属于需要迁移的第一数据块的第一增量备份日志,包括:
所述第一代理节点调用线程池中的多个线程从所述多个快照分块中过滤出需要迁移的快照分块之后,所述第一代理节点从所述数据备份子***获取到需要迁移的第一增量备份日志;
所述第一代理节点将所述需要迁移的第一增量备份日志按照日志标识进行分组得到不同组的第一增量备份日志,所述不同组的第一增量备份日志属于所述第一数据块。
11.根据权利要求10所述的方法,其特征在于,所述从所述第一分片存储单元上获取属于所述需要迁移的第一数据块的残余增量日志,包括:
所述第一代理节点从所述数据备份子***获取到需要迁移的第一增量备份日志之后,所述第一代理节点根据所述第一增量备份日志对应的备份时间戳从所述第一分片存储单元上获取从所述备份时间戳到当前时间已存储的残余增量日志,所述残余增量日志属于所述第一数据块。
12.根据权利要求11所述的方法,其特征在于,所述第一代理节点将所述需要迁移的第一数据块发送给所述第二代理节点,包括:
所述第一代理节点将所述需要迁移的快照分块发送给所述第二代理节点;
所述第一代理节点对所述不同组的第一增量备份日志使用不同的发送线程同时向所述第二代理节点发送;
所述第一代理节点将所述残余增量日志发送给所述第二代理节点。
13.一种数据的迁移***,其特征在于,所述数据的迁移***包括:中控节点、第一分片存储单元、第二分片存储单元、数据备份子***,其中,
所述第一分片存储单元上配置有第一代理节点,所述第二分片存储单元上配置有第二代理节点,所述第一代理节点分别和所述中控节点、所述数据备份子***建立有通信连接,所述第二代理节点分别和所述中控节点、所述数据备份子***建立有通信连接,所述第一分片存储单元上存储的数据块通过所述第一代理节点备份到所述数据备份子***中,所述第二分片存储单元上存储的数据块通过所述第二代理节点备份到所述数据备份子***中;
所述中控节点,用于向所述第一代理节点发送数据迁移命令,所述第一代理节点为数据迁移的源节点;
所述第一代理节点,用于接收到所述中控节点发送的数据迁移命令之后,若所述数据备份子***中仅备份有数据快照,则从所述数据备份子***获取属于需要迁移的第一数据块的快照分块,若所述数据备份子***中备份有数据快照和增量备份日志,则从所述数据备份子***获取属于需要迁移的第一数据块的快照分块和第一增量备份日志,从所述第一分片存储单元上获取属于所述需要迁移的第一数据块的残余增量日志;
所述第一代理节点,还用于将所述需要迁移的第一数据块的快照分块发送给所述第二代理节点;或者,用于将所述需要迁移的第一数据块的快照分块、第一增量备份日志和残余增量日志发送给所述第二代理节点;所述第二代理节点为数据迁移的目的节点;
所述第二代理节点,用于将所述需要迁移的第一数据块导入到所述第二分片存储单元中。
14.根据权利要求13所述的***,其特征在于,
所述中控节点,还用于将数据库表中的所有数据拆分为多个数据块;将所述多个数据块中的一些数据块发送给所述第一代理节点,并将所述多个数据块中的其余数据块发送给所述第二代理节点;
所述第一代理节点,还用于将接收到的所述一些数据块导入到所述第一分片存储单元中;
所述第二代理节点,还用于将接收到的所述其余数据块导入到所述第二分片存储单元中。
15.根据权利要求14所述的***,其特征在于,所述数据的迁移***还包括:键值存储设备,所述键值存储设备和所述中控节点之间建立有通信连接;
所述中控节点,还用于将数据库表中的所有数据拆分为多个数据块之后,根据所述多个数据块创建路由表,所述路由表包括:所述多个数据块中每个数据块与对应的分片存储单元的分片标识、工作状态之间的映射关系,所述每个数据块与对应的分片存储单元的工作状态包括:正常状态和禁止写入状态;将所述路由表存储到所述键值存储设备中。
16.根据权利要求15所述的***,其特征在于,所述第二代理节点,还用于将所述需要迁移的第一数据块导入到所述第二分片存储单元中之后,向所述中控节点上报迁移成功消息;
所述中控节点,还用于根据所述迁移成功消息将所述路由表中记录的所述第一数据块的映射关系从所述第一分片存储单元更改为所述第二分片存储单元。
17.根据权利要求16所述的***,其特征在于,所述数据的迁移***还包括:网关模块,所述第一代理节点和所述第二代理节点都通过所述网关模块和所述中控节点之间建立有通信连接;
所述中控节点,还用于根据所述迁移成功消息将所述路由表中记录的所述第一数据块的映射关系从所述第一分片存储单元更改为所述第二分片存储单元之后,通过所述网关模块向所述第一代理节点和所述第二代理节点广播所述路由表的存储单元更改消息。
18.根据权利要求17所述的***,其特征在于,所述第一代理节点,还用于通过所述数据备份子***获取到需要迁移的第一数据块之前,向所述中控节点发送封禁路由请求;
所述中控节点,还用于根据所述封禁路由请求将所述路由表中记录的所述第一分片存储单元的工作状态从正常状态更改为禁止写入状态;
所述中控节点,还用于向所述网关模块广播所述路由表的工作状态更改消息;
所述网关模块,还用于根据所述路由表的工作状态更改消息封禁对所述第一分片存储单元的操作处理请求。
19.根据权利要求13至18中任一项所述的***,其特征在于,
所述中控节点,还用于定期的向所述第一代理节点和所述第二代理节点发起备份任务;
所述第一代理节点,还用于根据所述备份任务定期的将所述第一分片存储单元上存储的数据块备份到所述数据备份子***中;
所述第二代理节点,还用于根据所述备份任务定期的将所述第二分片存储单元上存储的数据块备份到所述数据备份子***中。
20.根据权利要求19所述的***,其特征在于,所述第一代理节点,具体用于若所述第一代理节点在启动运行后第一次接收到所述备份任务,对所述第一分片存储单元上存储的当前所有数据块进行备份从而生成数据快照,将所述数据快照备份到所述数据备份子***中;若所述第一代理节点不是第一次接收到所述备份任务,从所述第一分片存储单元上获取用于记录所述第一分片存储单元被修改的增量备份日志,将所述增量备份日志备份到所述数据备份子***中。
21.根据权利要求20所述的***,其特征在于,所述第一代理节点,具体用于从所述数据备份子***获取到需要迁移的第一数据快照;将所述第一数据快照划分为多个快照分块;调用线程池中的多个线程从所述多个快照分块中过滤出需要迁移的快照分块,所述需要迁移的快照分块属于所述第一数据块。
22.根据权利要求21所述的***,其特征在于,所述第一代理节点,具体用于调用线程池中的多个线程从所述多个快照分块中过滤出需要迁移的快照分块之后,所述第一代理节点从所述数据备份子***获取到需要迁移的第一增量备份日志;将所述需要迁移的第一增量备份日志按照日志标识进行分组得到不同组的第一增量备份日志,所述不同组的第一增量备份日志属于所述第一数据块。
23.根据权利要求22所述的***,其特征在于,所述第一代理节点,具体用于从所述数据备份子***获取到需要迁移的第一增量备份日志之后,所述第一代理节点根据所述第一增量备份日志对应的备份时间戳从所述第一分片存储单元上获取从所述备份时间戳到当前时间已存储的残余增量日志,所述残余增量日志属于所述第一数据块。
24.根据权利要求23所述的***,其特征在于,所述第一代理节点,具体用于将所述需要迁移的快照分块发送给所述第二代理节点;对所述不同组的第一增量备份日志使用不同的发送线程同时向所述第二代理节点发送;将所述残余增量日志发送给所述第二代理节点。
25.一种可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时,实现如权利要求1-12中任一项所述的数据的迁移方法的各个步骤。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611219349.XA CN106777225B (zh) | 2016-12-26 | 2016-12-26 | 一种数据的迁移方法和*** |
PCT/CN2017/111586 WO2018121120A1 (zh) | 2016-12-26 | 2017-11-17 | 数据的迁移方法及*** |
US16/357,581 US11010358B2 (en) | 2016-12-26 | 2019-03-19 | Data migration method and system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611219349.XA CN106777225B (zh) | 2016-12-26 | 2016-12-26 | 一种数据的迁移方法和*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106777225A CN106777225A (zh) | 2017-05-31 |
CN106777225B true CN106777225B (zh) | 2021-04-06 |
Family
ID=58926760
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611219349.XA Active CN106777225B (zh) | 2016-12-26 | 2016-12-26 | 一种数据的迁移方法和*** |
Country Status (3)
Country | Link |
---|---|
US (1) | US11010358B2 (zh) |
CN (1) | CN106777225B (zh) |
WO (1) | WO2018121120A1 (zh) |
Families Citing this family (54)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106777225B (zh) * | 2016-12-26 | 2021-04-06 | 腾讯科技(深圳)有限公司 | 一种数据的迁移方法和*** |
CN108984105B (zh) | 2017-06-02 | 2021-09-10 | 伊姆西Ip控股有限责任公司 | 对网络存储设备中的复制任务进行分配的方法和设备 |
CN108984106B (zh) * | 2017-06-02 | 2021-09-10 | 伊姆西Ip控股有限责任公司 | 用于数据复制切换的方法和设备 |
US10503714B2 (en) * | 2017-06-02 | 2019-12-10 | Facebook, Inc. | Data placement and sharding |
CN115344551A (zh) * | 2017-06-26 | 2022-11-15 | 华为技术有限公司 | 一种数据迁移的方法以及数据节点 |
CN107391629B (zh) * | 2017-06-30 | 2021-01-29 | 三六零科技集团有限公司 | 集群间数据迁移方法、***、服务器及计算机存储介质 |
CN109407964A (zh) * | 2017-08-18 | 2019-03-01 | 阿里巴巴集团控股有限公司 | 一种数据的迁移方法、装置及设备 |
CN107480225B (zh) * | 2017-09-11 | 2021-06-22 | 爱普(福建)科技有限公司 | 实现控制站与第三方数据库数据共享的方法 |
US10282099B1 (en) * | 2017-10-27 | 2019-05-07 | Netapp, Inc. | Intelligent snapshot tiering |
CN107870768B (zh) * | 2017-11-10 | 2020-11-17 | 浪潮云信息技术股份公司 | 一种CAE集群模式下Web应用程序的不停机部署方法 |
CN110019527B (zh) * | 2017-12-20 | 2022-09-27 | 腾讯科技(深圳)有限公司 | 从库读取方法、相关装置和设备 |
CN109947592B (zh) * | 2017-12-20 | 2022-11-18 | 腾讯科技(深圳)有限公司 | 一种数据同步方法、装置以及相关设备 |
CN110019140B (zh) * | 2017-12-29 | 2021-07-16 | 华为技术有限公司 | 数据迁移方法、装置、设备以及计算机可读存储介质 |
CN108228102B (zh) * | 2017-12-29 | 2021-07-23 | 北京奇虎科技有限公司 | 节点间数据迁移方法、装置、计算设备及计算机存储介质 |
US10915554B2 (en) * | 2018-05-24 | 2021-02-09 | Paypal, Inc. | Database replication system |
US10698630B2 (en) * | 2018-06-13 | 2020-06-30 | EMC IP Holding Company LLC | Intra-cluster migration for elastic cloud storage devices |
CN109299063B (zh) * | 2018-07-02 | 2021-06-04 | 北京市天元网络技术股份有限公司 | 一种跨平台数据库迁移方法及*** |
CN109492000A (zh) * | 2018-10-09 | 2019-03-19 | 郑州云海信息技术有限公司 | 一种数据库表的复制方法及*** |
CN111078628B (zh) * | 2018-10-18 | 2024-02-23 | 深信服科技股份有限公司 | 一种多盘并发数据迁移方法、***、装置及可读存储介质 |
CN110536279B (zh) * | 2018-10-31 | 2021-10-08 | 中兴通讯股份有限公司 | 一种用户数据迁移的方法、装置和用户数据演进*** |
CN109582223B (zh) | 2018-10-31 | 2023-07-18 | 华为技术有限公司 | 一种内存数据迁移的方法及装置 |
US11023129B2 (en) | 2018-12-03 | 2021-06-01 | EMC IP Holding Company LLC | Hybrid intra-cluster migration of data between storage devices using chunk usage efficiency |
CN109683826B (zh) * | 2018-12-26 | 2023-08-29 | 北京百度网讯科技有限公司 | 用于分布式存储***的扩容方法和装置 |
US11809382B2 (en) | 2019-04-01 | 2023-11-07 | Nutanix, Inc. | System and method for supporting versioned objects |
CN110008200B (zh) * | 2019-04-04 | 2021-04-13 | 杭州数梦工场科技有限公司 | 一种数据库的数据迁移方法、装置及设备 |
CN110147353B (zh) * | 2019-04-24 | 2022-04-26 | 深圳先进技术研究院 | 基于日志分析的MongoDB数据迁移监控方法及装置 |
US11379439B1 (en) | 2019-05-13 | 2022-07-05 | Datometry, Inc. | Incremental transfer of database segments |
CN112052231B (zh) * | 2019-06-06 | 2023-09-26 | 北京京东振世信息技术有限公司 | 回传记录的监控方法和监控装置 |
CN110764700B (zh) * | 2019-10-12 | 2023-02-07 | 未鲲(上海)科技服务有限公司 | 数据存储方法、装置、计算机设备和存储介质 |
CN110874354A (zh) * | 2019-10-23 | 2020-03-10 | 支付宝(杭州)信息技术有限公司 | 数据库迁移方法及装置、电子设备、存储介质 |
US11704334B2 (en) | 2019-12-06 | 2023-07-18 | Nutanix, Inc. | System and method for hyperconvergence at the datacenter |
CN111078667B (zh) * | 2019-12-12 | 2023-03-10 | 腾讯科技(深圳)有限公司 | 一种数据迁移的方法以及相关装置 |
US11609777B2 (en) * | 2020-02-19 | 2023-03-21 | Nutanix, Inc. | System and method for multi-cluster storage |
US20210334284A1 (en) | 2020-04-28 | 2021-10-28 | Nutanix, Inc. | System and method of querying objects on demand |
CN111600799B (zh) * | 2020-05-20 | 2022-05-20 | 金蝶蝶金云计算有限公司 | 分片路由方法、服务器及计算机存储介质 |
US11487787B2 (en) | 2020-05-29 | 2022-11-01 | Nutanix, Inc. | System and method for near-synchronous replication for object store |
CN111708763B (zh) * | 2020-06-18 | 2023-12-01 | 北京金山云网络技术有限公司 | 分片集群的数据迁移方法、装置和分片集群*** |
CN114024956B (zh) * | 2020-07-17 | 2024-03-12 | 北京达佳互联信息技术有限公司 | 数据迁移方法、装置、服务器及存储介质 |
CN112083885B (zh) * | 2020-09-08 | 2021-10-15 | 北京嘀嘀无限科技发展有限公司 | 一种数据迁移方法、装置、电子设备及存储介质 |
US12001872B2 (en) | 2020-10-14 | 2024-06-04 | Nutanix, Inc. | Object tiering from local store to cloud store |
CN112579351A (zh) * | 2020-11-16 | 2021-03-30 | 麒麟软件有限公司 | 一种云硬盘备份*** |
US11900164B2 (en) | 2020-11-24 | 2024-02-13 | Nutanix, Inc. | Intelligent query planning for metric gateway |
US11822370B2 (en) | 2020-11-26 | 2023-11-21 | Nutanix, Inc. | Concurrent multiprotocol access to an object storage system |
CN112699098A (zh) * | 2020-12-31 | 2021-04-23 | 中国农业银行股份有限公司 | 一种索引数据迁移方法、装置及设备 |
KR102389139B1 (ko) * | 2021-02-17 | 2022-04-22 | 유비콘 주식회사 | 블록체인 기반 분산저장을 통한 공간향상 솔루션 시스템 |
CN113010496B (zh) * | 2021-03-19 | 2024-03-08 | 腾讯云计算(北京)有限责任公司 | 一种数据迁移方法、装置、设备和存储介质 |
US20220318227A1 (en) * | 2021-03-30 | 2022-10-06 | Dropbox, Inc. | Content management system for a distributed key-value database |
CN113342783A (zh) * | 2021-06-30 | 2021-09-03 | 招商局金融科技有限公司 | 数据迁移方法、装置、计算机设备及存储介质 |
CN113590586B (zh) * | 2021-07-29 | 2022-03-22 | 东方微银科技股份有限公司 | 分布式图数据库***节点间迁移分片数据的方法、装置 |
US11899572B2 (en) | 2021-09-09 | 2024-02-13 | Nutanix, Inc. | Systems and methods for transparent swap-space virtualization |
CN113806295B (zh) * | 2021-09-17 | 2024-02-23 | 济南浪潮数据技术有限公司 | 一种文件迁移方法、***、设备及计算机可读存储介质 |
CN116414788A (zh) * | 2021-12-31 | 2023-07-11 | 华为技术有限公司 | 一种数据库***更新方法及相关装置 |
CN115080541A (zh) * | 2022-06-16 | 2022-09-20 | 京东科技信息技术有限公司 | 数据迁移方法、装置、设备和存储介质 |
CN117370310B (zh) * | 2023-10-19 | 2024-05-28 | 中电云计算技术有限公司 | 一种分布式文件***跨集群数据增量迁移的方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106055698A (zh) * | 2016-06-14 | 2016-10-26 | 智者四海(北京)技术有限公司 | 数据迁移方法、代理节点及数据库实例 |
CN106155842A (zh) * | 2016-07-08 | 2016-11-23 | 珠海市魅族科技有限公司 | 一种数据迁移方法及装置 |
US9594650B2 (en) * | 2014-02-27 | 2017-03-14 | International Business Machines Corporation | Storage system and a method used by the storage system |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7461102B2 (en) * | 2004-12-09 | 2008-12-02 | International Business Machines Corporation | Method for performing scheduled backups of a backup node associated with a plurality of agent nodes |
CN1996847B (zh) * | 2006-12-27 | 2010-05-19 | 中国科学院上海技术物理研究所 | 基于协作网格的图像及多媒体数据通信与存储*** |
CN101997884B (zh) * | 2009-08-18 | 2014-05-14 | 升东网络科技发展(上海)有限公司 | 分布式存储***和方法 |
US9495427B2 (en) * | 2010-06-04 | 2016-11-15 | Yale University | Processing of data using a database system in communication with a data processing framework |
US9317522B2 (en) * | 2013-01-07 | 2016-04-19 | Google Inc. | Saving files from third-party systems directly to a cloud storage system |
JP2017504874A (ja) * | 2013-12-02 | 2017-02-09 | キューベース リミテッド ライアビリティ カンパニー | クラスター化されたインメモリデータベースの設計及び実施 |
US9632874B2 (en) * | 2014-01-24 | 2017-04-25 | Commvault Systems, Inc. | Database application backup in single snapshot for multiple applications |
CN105468473B (zh) * | 2014-07-16 | 2019-03-01 | 北京奇虎科技有限公司 | 数据迁移方法及数据迁移装置 |
US9753955B2 (en) * | 2014-09-16 | 2017-09-05 | Commvault Systems, Inc. | Fast deduplication data verification |
US10884869B2 (en) * | 2015-04-16 | 2021-01-05 | Nuodb, Inc. | Backup and restore in a distributed database utilizing consistent database snapshots |
US10496614B2 (en) * | 2015-10-07 | 2019-12-03 | Oracle International Corporation | DDL processing in shared databases |
CN105426439B (zh) * | 2015-11-05 | 2022-07-05 | 腾讯科技(深圳)有限公司 | 一种元数据的处理方法和装置 |
US10540165B2 (en) * | 2016-02-12 | 2020-01-21 | Nutanix, Inc. | Virtualized file server rolling upgrade |
US10437684B2 (en) * | 2016-03-29 | 2019-10-08 | International Business Machines Corporation | Similarity based deduplication for secondary storage |
US10305987B2 (en) * | 2016-04-11 | 2019-05-28 | Vmware, Inc. | Method to syncrhonize VSAN node status in VSAN cluster |
CN106777225B (zh) * | 2016-12-26 | 2021-04-06 | 腾讯科技(深圳)有限公司 | 一种数据的迁移方法和*** |
-
2016
- 2016-12-26 CN CN201611219349.XA patent/CN106777225B/zh active Active
-
2017
- 2017-11-17 WO PCT/CN2017/111586 patent/WO2018121120A1/zh active Application Filing
-
2019
- 2019-03-19 US US16/357,581 patent/US11010358B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9594650B2 (en) * | 2014-02-27 | 2017-03-14 | International Business Machines Corporation | Storage system and a method used by the storage system |
CN106055698A (zh) * | 2016-06-14 | 2016-10-26 | 智者四海(北京)技术有限公司 | 数据迁移方法、代理节点及数据库实例 |
CN106155842A (zh) * | 2016-07-08 | 2016-11-23 | 珠海市魅族科技有限公司 | 一种数据迁移方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
WO2018121120A1 (zh) | 2018-07-05 |
US11010358B2 (en) | 2021-05-18 |
US20190213175A1 (en) | 2019-07-11 |
CN106777225A (zh) | 2017-05-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106777225B (zh) | 一种数据的迁移方法和*** | |
WO2019154394A1 (zh) | 分布式数据库集群***、数据同步方法及存储介质 | |
US10853242B2 (en) | Deduplication and garbage collection across logical databases | |
US11726984B2 (en) | Data redistribution method and apparatus, and database cluster | |
US10685041B2 (en) | Database system, computer program product, and data processing method | |
US20110153570A1 (en) | Data replication and recovery method in asymmetric clustered distributed file system | |
JP2015504218A (ja) | モジュール式ブロックおよび関連付けられたログファイルを伴う分散型データベース | |
CN108829720B (zh) | 数据处理方法及装置 | |
CN109710586B (zh) | 一种集群节点配置文件同步方法及装置 | |
CN111475480B (zh) | 一种日志处理方法及*** | |
CN102117287A (zh) | 分布式文件***访问方法、元数据服务器及客户端 | |
JP2016521427A (ja) | ピアツーピアデータ複製用の方法、デバイス、およびシステム、ならびにマスタノード切替え用の方法、デバイス、およびシステム | |
CN106873902B (zh) | 一种文件存储***、数据调度方法及数据节点 | |
US11151157B2 (en) | Database management method | |
US20150039558A1 (en) | Database management method, database system and medium | |
CN107566341B (zh) | 一种基于联邦分布式文件存储***的数据持久化存储方法及*** | |
CN110569231B (zh) | 数据迁移方法、装置、设备和介质 | |
CN104809033B (zh) | 一种备份方法及*** | |
CN114880717A (zh) | 数据归档方法及装置 | |
CN107153699B (zh) | 一种动态扩展集群服务器的方法及装置 | |
CN111400098A (zh) | 一种副本管理方法、装置、电子设备及存储介质 | |
WO2021133405A1 (en) | Dynamic adaptive partition splitting | |
CN111666338B (zh) | 数据复制方法、控制节点及电子设备 | |
US20120260124A1 (en) | Recovery of a document serving environment | |
CN114791850A (zh) | 任务处理方法及其装置、计算机可读存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |