CN107247727A - 数据迁移方法及设备 - Google Patents

数据迁移方法及设备 Download PDF

Info

Publication number
CN107247727A
CN107247727A CN201710295883.7A CN201710295883A CN107247727A CN 107247727 A CN107247727 A CN 107247727A CN 201710295883 A CN201710295883 A CN 201710295883A CN 107247727 A CN107247727 A CN 107247727A
Authority
CN
China
Prior art keywords
data
storage device
time point
source
source storage
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
Application number
CN201710295883.7A
Other languages
English (en)
Inventor
丁宇
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing 58 Information Technology Co Ltd
Original Assignee
Beijing 58 Information Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing 58 Information Technology Co Ltd filed Critical Beijing 58 Information Technology Co Ltd
Priority to CN201710295883.7A priority Critical patent/CN107247727A/zh
Publication of CN107247727A publication Critical patent/CN107247727A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • G06F16/273Asynchronous replication or reconciliation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases
    • G06F16/214Database migration support

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提供一种数据迁移方法及设备,本发明提供的数据迁移方法包括:源存储设备获取第一数据并将第一数据发送至目标存储设备,源存储设备获取至少一个第二数据并向目标存储设备发送至少一个第二数据;目标存储设备获取至少一个第三数据,并发送至少一个第三数据至源存储设备;其中,在第二时间点与第三时间点之间,客户端访问存储设备的IP地址由源存储设备对应的IP地址修改为目标存储设备对应的IP地址;发送至少一个第三数据至源存储设备;本发明的数据迁移方法及设备无需修改客户端程序,也不需要客户端程序参与数据迁移的过程,数据迁移过程容易进行,且最大限度的减小了对客户端程序运行的影响,保证了客户端的正常运行。

Description

数据迁移方法及设备
技术领域
本发明涉及通信工程技术,尤其涉及一种数据迁移方法及设备。
背景技术
MongoDB是指分布式文档存储数据库,是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。他支持的数据结构非常松散,因此可以存储比较复杂的数据类型。而MongoDB集群是指由多个节点构成的集群。在实际应用中,若客户端的用户信息发生了变化,首先客户端所在的终端将变更信息发送至应用服务器,应用服务器将变更信息写入MongoDB集群的数据节点中;同时客户端也会读取MongoDB集群的数据节点中存储的数据,上述读写操作也称为客户端访问MongoDB集群。
现有技术中,有时需要将老的MongoDB集群中的数据迁移到另一个新的MongoDB集群上,新的MongoDB集群的组织架构和老的MongoDB集群的组织架构相同,组织架构就是指两个MongoDB集群的节点的组成和数据的存储方式均相同。现有技术中采用的数据迁移方法为:(1对客户端代码进行修改,使得客户端自身对其通过应用服务器对当前MongoDB集群数据节点的写操作记录日志;(2)当前MongoDB集群数据节点中的全部数据发送至新的MongoDB集群的数据节点中;(3)再次对客户端代码进行修改,使客户端通过应用服务器同时对当前MongoDB集群数据节点和新的MongoDB集群数据节点进行写操作;(4)在新的MongoDB集群数据节点中执行步骤(1)记录下的日志对应的操作;(5)将客户端访问的MongoDB集群由当前MongoDB集群切换到新的MongoDB集群。
但是上述方法需要对客户端代码做出较多修改,而且上述涉及到客户端执行的步骤时,需要同时访问当前MongoDB集群数据节点的客户端同时进行,难度很大。
发明内容
本发明提供一种数据迁移方法和设备,以克服现有技术中数据迁移方法需要更改客户端代码以及数据迁移难度大的技术问题。
第一方面,本发明提供一种数据迁移方法,包括:
源存储设备获取第一数据,并将第一数据发送至目标存储设备;所述第一数据为第一时间点之前所述源存储设备中的所有数据;
所述源存储设备向所述目标存储设备发送至少一个第二数据,所述第二数据是第一时间点和第二时间点之间的增量信息,以使所述源存储设备与所述目标存储设备的数据同步;
所述源存储设备接收所述目标存储设备发送的至少一个第三数据,所述第三数据是在第三时间点之后存储至所述目标存储设备的增量信息,并根据各所述第三数据得到所述目标存储设备在第三时间点之后新增的数据;其中,在所述第二时间点与所述第三时间点之间,客户端访问存储设备的IP地址由所述源存储设备对应的IP地址修改为所述目标存储设备对应的IP地址。
如上所述的方法,所述源存储设备向所述目标存储设备发送至少一个第二数据之前,还包括:
所述源存储设备根据所述第一时间点和第二时间点之间所述源存储设备的操作日志,获取所述至少一个第二数据。
如上所述的方法,所述第一时间点和所述第二时间点之间所经历的时长大于或等于所述第一数据的迁移时长;所述源存储设备根据所述第一时间点和第二时间点之间的所述源存储设备的操作日志,获取所述至少一个第二数据,包括:
在第一时间点和第二时间点之间每间隔预设长获取第i预设时长内新增的第i操作日志,并解析所述第i操作日志,得到所述第i操作日志对应的第二数据;
其中,最后一次获取预设时长内新增的操作日志对应的获取时间点与所述第二时间点之间的间隔时长小于预设时长。
如上所述的方法,在所述源存储设备向所述目标存储设备发送至少一个第二数据之后,还包括:
所述源存储设备丢弃客户端在第二时间点之后发送的数据;
所述源存储设备判断在第一时间点与第二时间点之间最后一次获取新增的操作日志的时间是否与第二时间点重合,若是,则确定所述源存储设备中的数据和所述目标存储设备的数据同步;若否,则所述源存储设备判断是否存在操作时间为第六时间点至所述第二时间点之间新增的操作日志;所述第六时间点为在第一时间点与第二时间点之间最后一次获取新增的操作日志的时间点;
若所述源存储设备不存在操作时间为第六时间点至所述第二时间点之间的操作日志,则确定所述源存储设备中的数据和所述目标存储设备的数据同步;
若所述源存储设备存在操作时间为第六时间点至所述第二时间点之间的操作日志,所述源存储设备获取第六时间点至所述第二时间点之间新增的目标操作日志;
所述源存储设备解析所述目标操作日志,得到所述目标操作日志对应的目标数据,向所述目标存储设备发送所述目标数据。
第二方面,本发明提供一种数据迁移方法,包括:
目标存储设备接收源存储设备发送的第一数据,所述第一数据为第一时间点之前所述源存储设备中的所有数据;
目标存储设备接收源存储设备发送的至少一个第二数据,所述第二数据是第一时间点和第二时间点之间的增量信息,并根据各所述第二数据得到所述源存储设备在第一时间点和第二时间点之间新增的数据,以使所述源存储设备与所述目标存储设备的数据同步;
所述目标存储设备发送至少一个第三数据至所述源存储设备,所述第三数据是在第三时间点之后存储至所述目标存储设备的增量信息;其中,在所述第二时间点与所述第三时间点之间,客户端访问存储设备的IP地址由所述源存储设备对应的IP地址修改为所述目标存储设备对应的IP地址。
如上所述的方法,在所述目标存储设备发送至少一个第三数据至所述源存储设备之前,还包括:
所述目标存储设备根据所述第三时间点之后所述目标存储设备的操作日志,获取所述至少一个第三数据。
如上所述的方法,在所述目标存储设备根据所述第三时间点之后所述目标存储设备的操作日志,获取所述至少一个第三数据之前,还包括:
接收客户端在第三时间点之后发送的数据。
第三方面,本发明提供一种数据迁移设备,包括:
第一数据获取模块,所述第一数据获取模块用以获取第一数据,所述第一数据为第一时间点之前所述数据迁移设备中的所有数据;
第一数据发送模块,所述第一数据发送模块用于将第一数据发送至目标存储设备;
第二数据发送模块,所述第二数据发送模块用于向所述目标存储设备发送至少一个第二数据,所述第二数据是第一时间点和第二时间点之间的增量信息,以使所述数据迁移设备与所述目标存储设备的数据同步;
第三数据接收模块,所述第三数据接收模块用于接收所述目标存储设备发送的至少一个第三数据,所述第三数据是在第三时间点之后存储至所述目标存储设备的增量信息,并根据各所述第三数据得到所述目标存储设备在第三时间点之后新增的数据;其中,在所述第二时间点与所述第三时间点之间,客户端访问存储设备的IP地址由所述数据迁移设备对应的IP地址修改为所述目标存储设备对应的IP地址。
第四方面,本发明提供一种数据迁移设备,包括:
第一数据接收模块,所述第一数据接收模块用于接收源存储设备发送的第一数据,所述第一数据为第一时间点之前所述源存储设备中的所有数据;
第二数据接收模块,所述第二数据接收模块用于接收源存储设备发送的至少一个第二数据,所述第二数据是第一时间点和第二时间点之间的增量信息;
新增数据生成模块,所述新增数据生成模块用于根据各所述第二数据得到所述源存储设备在第一时间点和第二时间点之间新增的数据,以使所述源存储设备与所述数据迁移设备的数据同步;
第三数据发送模块,所述第三数据发送模块用于发送至少一个第三数据至所述源存储设备,所述第三数据是在第三时间点之后存储至所述数据迁移设备的增量信息;其中,在所述第二时间点与所述第三时间点之间,客户端访问存储设备的IP地址由所述源存储设备对应的IP地址修改为所述数据迁移设备对应的IP地址。
本发明提供一种数据迁移方法及设备,本发明提供的数据迁移方法包括:源存储设备获取第一数据;第一数据为第一时间点之前源存储设备中的所有数据;源存储设备将第一数据发送至目标存储设备;源存储设备根据第一时间点和第二时间点之间源存储设备的操作日志,获取至少一个第二数据;第二数据是第一时间点和第二时间点之间的增量信息;源存储设备向目标存储设备发送至少一个第二数据;目标存储设备根据各第二数据得到源存储设备在第一时间点和第二时间点之间新增的数据;目标存储设备根据第三时间点之后目标存储设备的操作日志,获取至少一个第三数据;其中,在第二时间点与第三时间点之间,客户端访问存储设备的IP地址由源存储设备对应的IP地址修改为目标存储设备对应的IP地址;目标存储设备发送至少一个第三数据至源存储设备;第三数据是在第三时间点之后存储至所述目标存储设备的增量信息;源存储设备根据各第三数据得到目标存储设备在第三时间点之后新增的数据。本发明的数据迁移方法及设备无需修改客户端程序,也不需要客户端程序参与数据迁移的过程,数据迁移过程容易进行,且最大限度的减小了对客户端程序运行的影响,保证了客户端的正常运行。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明提供的一种可能的系统架构图;
图2为本发明提供的数据迁移方法实施例一的信令流程图;
图3为本发明提供的数据迁移方法实施例二的信令流程图;
图4为本发明提供的数据迁移设备实施例一的结构示意图;
图5为本发明提供的数据迁移设备实施例二的结构示意图;
图6为本发明提供的数据迁移设备实施例三的结构示意图;
图7为本发明提供的数据迁移设备实施例四的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明提供的一种可能的系统架构图。参见图1,本实施例提供的系统架构包括:当前MongoDB集群1和新的MongoDB集群2,当前MongoDB集群1为客户端当前访问的集群。当前MongoDB集群1具有第一主数据节点、第一备份节点和第一仲裁节点,新的MongoDB集群2具有第二主数据节点、第二备份节点和第二仲裁节点。其中,第一主数据节点、第一备份节点、第二主数据节点和第二备份节点均为存储数据的数据节点。
在将当前MongoDB集群1的数据迁移至新的MongoDB集群2时,可以将第一主数据节点作为源存储设备,第二主数据节点作为目标存储设备,将第一主数据节点中的数据迁移至第二主数据节点中。
在数据迁移过程中,第一主数据节点将其存储的数据发送至第二主数据节点,在保证第一主数据节点和第二主数据节点内的数据同步后,客户端停止访问当前MongoDB集群1,开始访问新的MongoDB集群2。之后,第二主数据节点将客户端访问新的MongoDB集群2后新增的数据发送至第一主数据节点,以维护当前MongoDB集群的可用性。
图2为本发明提供的数据迁移方法实施例一的信令流程图,如图2所示,本实施例的方法可以包括:
步骤S101、源存储设备获取第一数据;第一数据为第一时间点之前源存储设备中的所有数据;
步骤S102、源存储设备将第一数据发送至目标存储设备;
步骤S103、源存储设备根据第一时间点和第二时间点之间源存储设备的操作日志,获取至少一个第二数据;第二数据是第一时间点和第二时间点之间的增量信息;
步骤S104、源存储设备向目标存储设备发送至少一个第二数据;
步骤S105、目标存储设备根据各第二数据得到源存储设备在第一时间点和第二时间点之间新增的数据;
步骤S106、目标存储设备根据第三时间点之后目标存储设备的操作日志,获取至少一个第三数据;其中,在第二时间点与第三时间点之间,客户端访问存储设备的IP地址由源存储设备对应的IP地址修改为目标存储设备对应的IP地址;第三数据是在第三时间点之后存储至目标存储设备的增量信息;
步骤S107、目标存储设备发送至少一个第三数据至源存储设备;
步骤S108、源存储设备根据各第三数据得到目标存储设备在第三时间点之后新增的数据。
具体地,本实施例的第一时间点之前,包括第一时间点,第一时间点和第二时间点之间不包括第一时间点,包括第二时间点;第三时间点之后包括第三时间点。
下面以存储设备为MongoDB集群中的数据节点为例,对本实施例的数据迁移方法进行说明。
在进行数据迁移之前,需要部署一套新的MongoDB集群,新的MongoDB集群和当前MongoDB集群的组织架构相同,比如新的MongoDB集群的mongod节点(数据节点,可以包括主数据节点和从数据节点,也可只包括主数据节点)、mongos节点(路由节点,可不存在)和配置节点(可不存在)的组成方式和当前MongoDB集群的mongod节点、mongos节点、配置节点的组成方式相同,即两个MongoDB集群各节点的个数、部署方式相同;新的MongoDB集群和当前MongoDB集群的数据存储方式相同,比如均以用户名对应的信息作为一个数据集合;新的MongoDB集群和当前MongoDB集群的索引及分片相同。
本实施例中的源存储设备可以为一个或多个,源存储设备可包括当前MongoDB集群的主数据节点,也可包括从数据节点,从数据节点中的数据与主数据节点中的数据相同,也可称为备份节点。客户端一般访问主数据节点,比如,客户端程序为163邮箱,在某一时刻,新的用户A新注册了一个163邮箱,那么新的用户A注册的邮箱的用户名和密码均会被写入主数据节点中,然后从数据节点从主数据节点获取新的被写入主数据节点中的数据,以保持从数据节点中的数据与主数据节点中的数据相同。
本实施例中目标存储设备可以为一个或多个,目标存储设备可包括新的MongoDB集群的主数据节点,也可包括从数据节点。若目标存储设备为主数据节点,则在主数据节点中的数据和源存储设备中的数据同步后,从数据节点从主数据节点获取数据,对数据进行备份。
在第一时间点,源存储设备采用mongoexport工具导出源存储设备中存储的第一数据,第一数据为第一时间点之前存储至源存储设备终的所有数据,将第一时间点之前的全部数据保存在本地文件中,接着源存储设备将第一时间点之前的全部数据从本地文件中发送至目标存储设备。其中,第一时间点可以为当前时间点,也可为历史时间点。
目标存储设备接收源存储设备发送的第一数据,采用mongoimport工具将第一数据导入至目标存储设备,完成了第一数据的迁移。
在源存储设备获取第一数据的同时,源存储设备根据第一时间点和第二时间点之间源存储设备的操作日志,获取至少一个第二数据,并将至少一个第二数据发送至目标存储设备中,第二数据是第一时间点和第二时间点之间的增量信息;第二时间点是预先设置好的,第二时间点的设置需保证第一时间点和第二时间点之间所经历的时长大于或等于第一数据的迁移时长。迁移时长是指第一数据从开始被导出到被完全导入至目标存储设备所经历的时长。
MongoDB集群中的操作日志Oplog相当于一个普通的collection,其中每一条数据表示一次对MongoDB集群的数据节点的操作,在MongoDB Replica Set Shard集群中,Oplog位于每一个分片的local.oplog.rs下。Oplog中包含的字段有很多,这里不做一一描述,其中比较关键的字段如下:
ts:8字节的时间戳,由4个字节unix timestamp加上4个字节自增计数表示;op:1字节的操作类型,其中"i"表示insert,"u"表示update,"d"表示delete。o:操作所对应的document,即当前操作的内容(比如更新操作时要更新的字段和值)。
通过这几个关键的字段,就可以将指定时间段里一个集群中的Oplog对应的操作在另一个集群中重新执行。
其中,获取至少一个第二数据的具体过程为:在第一时间点和第二时间点之间每间隔预设长获取第i预设时长内新增的第i操作日志,并解析第i操作日志,得到第i操作日志对应的第二数据;其中,最后一次获取预设时长内新增的操作日志对应的获取时间点与第二时间点之间的间隔时长小于预设时长。也就是采用如下的过程获取至少一个第二数据:在第四时间点,获取在第一时间点和第四时间点之间新增的第1操作日志,第一时间点和第四时间点之间间隔的时长为第1预设时长,第四时间点在第一时间点之后;解析第1操作日志,得到第1操作日志对应的第二数据;在第五时间点,获取在第四时间点和第五时间点之间新增的第2操作日志,第四时间点和第五时间点之间间隔的时长为第2预设时长,第五时间点在第四时间点之后,当然第1预设时长和第2预设时长以及第i预设时长相同;解析第2操作日志,得到第2操作日志对应的第二数据;重复上述操作,当源存储设备当前获取完新增的操作日志后,判断当前获取新增的操作日志的时间点与第二时间之间间隔的时长是否小于预设时长时,若是,将当前获取新增的操作日志并解析的过程作为最后一次获取新增的操作日志并解析的过程,之后停止获取新增的操作日志并解析的过程;或者重复上述操作,源存储设备当前获取完新增的操作日志后,确定下次获取新增的操作日志的时间点,若确定的下次获取时间点在第二时间点之后,则停止获取新增的操作日志并解析的过程。其中,第二数据的形式为新增的操作日志对应的操作的相关信息,相关信息包括操作时间、操作类型和操作内容,操作类型包括写操作、删除操作和更新操作。
本领域技术人员可以理解的是在每一次获取完第i操作日志对应的第二数据后,源存储设备均会将第i操作日志对应的第二数据发送至目标存储设备。
目标存储设备每接收到第i操作日志对应的第二数据后,便会根据第i操作日志对应的第二数据得到源存储设备在相应地预设时长内新增的数据,最终得到源存储设备在第一时间点和第二时间点之间新增的数据。也就是说步骤S103、步骤S104和步骤S105是循环交替进行的。
其中,根据第i操作日志对应的第二数据得到源存储设备在相应地预设时长内新增的数据具体为:根据解析完第i操作日志得到的相关信息,比如操作类型为写操作,则根据写操作及写操作对应的操作内容在目标存储设备中重新执行一遍写操作,也就是将写操作对应的操作内容存储至目标存储设备中,写操作对应的操作内容即为源存储设备在相应地预设时长内新增的数据。
在实际应用的过程中,若当前MongoDB集群内进行了分片,则根据当前MongoDB集群的分片数开启多个线程,每个线程对应一个分片内数据从当前MongoDB集群向新的MongoDB集群的迁移。
在源存储设备在第一时间点之前存储的所有数据和源存储设备在第一时间点和第二时间点之间新增的数据均迁移至目标存储设备后,便完成了源存储设备和目标存储设备之间的数据迁移。
在第二时间点与第三时间点之间客户端访问存储设备的IP地址由源存储设备对应的IP地址修改为目标存储设备对应的IP地址,在第三时间点之后,客户端访问目标存储设备。
此时,源存储设备中的数据并不被删除,而是采用上述源存储设备在第一时间点和第二时间点之间新增的数据迁移至目标存储设备的方法,将目标存储设备在第三时间点之间新增的数据周期性迁移至源存储设备,以维护源存储设备中数据的可用性,以备目标存储设备发生异常后,客户端可以重新访问源存储设备,最大化减小了对客户端程序运行的影响,保证了客户端的正常运行。
目标存储设备在第三时间点之间新增的数据周期性迁移至源存储设备,具体包括:目标存储设备发送至少一个第三数据至源存储设备;第三数据是在第三时间点之后存储至所述目标存储设备的增量信息;源存储设备根据各第三数据得到目标存储设备在第三时间点之后新增的数据。更为具体的方法参见上述步骤“源存储设备向目标存储设备发送至少一个第二数据,目标存储设备根据各第二数据得到源存储设备在第一时间点和第二时间点之间新增的数据”的具体方法。
本实施例的数据迁移方法无需修改客户端程序,也不需要客户端参与数据迁移的过程,数据迁移过程容易进行。
此外,本实施例中的各步骤均是离线进行的,不影响客户端程序的运行及对存储设备的访问,只有在在第二时间点与第三时间点之间客户端访问存储设备的IP地址由源存储设备对应的IP地址修改为目标存储设备对应的IP地址时会停止客户端对源存储设备的访问,但是第二时间点与第三时间点之间的时长很短,一般选择在夜间将客户端访问存储设备的IP地址由源存储设备对应的IP地址修改为目标存储设备对应的IP地址,进一步保证了最大化减小对客户端程序运行的影响,保证客户端程序的正常运行。
本实施例的数据迁移方法包括:源存储设备获取第一数据;第一数据为第一时间点之前源存储设备中的所有数据;源存储设备将第一数据发送至目标存储设备;源存储设备根据第一时间点和第二时间点之间源存储设备的操作日志,获取至少一个第二数据;第二数据是第一时间点和第二时间点之间的增量信息;源存储设备向目标存储设备发送至少一个第二数据;目标存储设备根据各第二数据得到源存储设备在第一时间点和第二时间点之间新增的数据;目标存储设备根据第三时间点之后目标存储设备的操作日志,获取至少一个第三数据;其中,在第二时间点与第三时间点之间,客户端访问存储设备的IP地址由源存储设备对应的IP地址修改为目标存储设备对应的IP地址;目标存储设备发送至少一个第三数据至源存储设备;第三数据是在第三时间点之后存储至所述目标存储设备的增量信息;源存储设备根据各第三数据得到目标存储设备在第三时间点之后新增的数据。本实施例的数据迁移方法无需修改客户端程序,也不需要客户端程序参与数据迁移的过程,数据迁移过程容易进行,且最大限度的减小了对客户端程序运行的影响,保证了客户端的正常运行。
图3为本发明提供的数据迁移方法实施例二的信令流程图,如图3所示,本实施例的方法可以包括:
步骤S201、源存储设备获取第一数据;第一数据为第一时间点之前源存储设备中的所有数据;
步骤S202、源存储设备将第一数据发送至目标存储设备;
步骤S203、源存储设备根据第一时间点和第二时间点之间源存储设备的操作日志,获取至少一个第二数据;第二数据是第一时间点和第二时间点之间的增量信息;
步骤S204、源存储设备向目标存储设备发送至少一个第二数据;
步骤S205、目标存储设备根据各第二数据得到源存储设备在第一时间点和第二时间点之间新增的数据;
步骤S206、源存储设备丢弃客户端在第二时间点之后发送的数据,并确定源存储设备中的数据和目标存储设备的数据同步;在第二时间点与第三时间点之间,客户端访问存储设备的IP地址由源存储设备对应的IP地址修改为目标存储设备对应的IP地址;
步骤S207、目标存储设备根据第三时间点之后目标存储设备的操作日志,获取至少一个第三数据;其中,目标存储设备接收客户端在第三时间点之后发送的数据;第三数据是在第三时间点之后存储至目标存储设备的增量信息;
步骤S208、目标存储设备发送至少一个第三数据至源存储设备;
步骤S209、源存储设备根据各第三数据得到目标存储设备在第三时间点之后新增的数据。
具体地,本实施例中与上一实施例相同的步骤本实施例不再赘述。本实施例中的第三时间点在第二时间点之后,第三时间点是预选设置好的,第三时间点的设置保证第二时间点与第三时间点之间的时长大于或等于目标存储设备根据在第一时间点和第二时间点之间最后一次预设时长内新增的操作日志对应的第二数据得到源存储设备在最后一次预设时长内新增的数据所经历的时长、确定源存储设备中的数据和目标存储设备的数据同步所经历的时长和修改客户端访问存储设备的IP地址所经历的时长三者之和。本实施例中的预设时长与上一实施例中的预设时长的含义及数值相同。其中,第三时间点之后包括第三时间点。
步骤S201~步骤S204进行完毕后并到达第二时间点之后,源存储设备停止接收客户端发送的数据,也就是说源存储设备丢弃客户端在第二时间点之后发送的数据,并确定源存储设备中的数据和目标存储设备的数据同步。在第一时间点与第二时间点之间最后一次获取操作日志对应的步骤S205可以在第二时间点与第三时间点之间进行,这与在第一时间点与第二时间点之间最后一次获取操作日志的时间有关。
其中,确定源存储设备中的数据和目标存储设备的数据同步具体包括:在第二时间点之后,源存储设备停止接收客户端发送的数据后,源存储设备判断在第一时间点和第二时间点之后最后一次获取新增的操作日志的时间点是否与第二时间点重合,若最后一次获取新增的操作日志的时间点与第二时间点重合,源存储设备确定源存储设备中的数据和目标存储设备的数据同步;若最后一次获取新增的操作日志的时间点与第二时间点不重合,源存储设备判断是否存在操作时间在第六时间点和第二时间点之间的目标操作日志,第六时间点为最后一次获取新增的操作日志的时间点,若不存在,源存储设备确定源存储设备中的数据和目标存储设备的数据同步,若存在,源存储设备获取目标操作日志,并解析目标操作日志,得到目标操作日志对应的目标数据,再将目标数据发送至目标存储设备后确定源存储设备中的数据和目标存储设备的数据同步。由于源存储设备是获取到一个预设时长内新增的操作日志,就解析该预设时长内新增的操作日志,得到该预设时长内新增的操作日志对应的第二数据,接着就将该预设时长内新增的操作日志对应的第二数据发送至目标存储设备,以供目标存储设备根据该预设时长内新增的操作日志对应的第二数据得到源存储设备在该预设时长内新增的数据,而上述过程所经历的时长很短,所以在源存储设备将目标数据发送至目标存储设备后,就可以确定源存储设备确定源存储设备中的数据和目标存储设备的数据同步。同样对于步骤S205,基于上述同样的原因,也可以认为在步骤S204进行完毕后,步骤S205便瞬间进行完毕。
源存储设备在确定源存储设备中的数据和目标存储设备的数据同步后,可以在源存储设备对应的用户界面上显示源存储设备中的数据和目标存储设备的数据已同步的消息,此时,用户便可以将客户端访问存储设备的IP地址由源存储设备对应的IP地址修改为目标存储设备对应的IP地址,IP地址修改完毕后,用户便可以通过辅助设备向目标存储设发送控制消息,以使目标存储设备接收客户端在第三时间点之后发送的数据,也就是使客户端在第三时间点之后开始访问目标存储设备。
此后,接着执行步骤S207~步骤S209,完成数据的迁移过程。
本实施例通过确定源存储设备中的数据和目标存储设备的数据已同步后,再修改客户端访问存储设备的IP地址,可以保证客户端对目标存储设备的正常访问,从而保证了客户端程序的正常运行。
图4为本发明提供的数据迁移设备实施例一的结构示意图,如图4所示,本实施例的装置可以包括:第一数据获取模块41、第一数据发送模块42、第二数据发送模块43和第三数据接收模块44,其中,第一数据获取模块41用于获取第一数据,第一数据为第一时间点之前数据迁移设备中的所有数据;第一数据发送模块42用于将第一数据发送至目标存储设备;第二数据发送模块43用于向目标存储设备发送至少一个第二数据,第二数据是第一时间点和第二时间点之间的增量信息,以使数据迁移设备与目标存储设备的数据同步;第三数据接收模块44用于接收目标存储设备发送的至少一个第三数据,第三数据是在第三时间点之后存储至目标存储设备的增量信息,并根据各第三数据得到目标存储设备在第三时间点之后新增的数据;其中,在第二时间点与第三时间点之间,客户端访问存储设备的IP地址由数据迁移设备对应的IP地址修改为目标存储设备对应的IP地址。
本实施例的设备,可以用于执行上述方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
图5为本发明提供的数据迁移设备实施例二的结构示意图,如图5所示,本实施例的装置在图4所示装置结构的基础上,进一步地,还可以包括:第二数据获取模块45、丢弃模块46和确定模块47,第二数据获取模块用于根据第一时间点和第二时间点之间数据迁移设备的操作日志,获取至少一个第二数据。
其中,第二数据获取模块45具体用于在第一时间点和第二时间点之间每间隔预设长获取第i预设时长内新增的第i操作日志,并解析第i操作日志,得到第i操作日志对应的第二数据;其中,最后一次获取预设时长内新增的操作日志对应的获取时间点与第二时间点之间的间隔时长小于预设时长。
丢弃模块46用于丢弃客户端在第二时间点之后发送的数据;
确定模块47用于判断在第一时间点与第二时间点之间最后一次获取新增的操作日志的时间是否与第二时间点重合,若是,则确定数据迁移设备中的数据和目标存储设备的数据同步;若否,则判断是否存在操作时间为第六时间点至第二时间点之间新增的操作日志;第六时间点为在第一时间点与第二时间点之间最后一次获取新增的操作日志的时间点;若数据迁移设备不存在操作时间为第六时间点至第二时间点之间的操作日志,则确定数据迁移设备中的数据和目标存储设备的数据同步;若数据迁移设备存在操作时间为第六时间点至第二时间点之间的操作日志,数据迁移设备获取第六时间点至第二时间点之间新增的目标操作日志;数据迁移设备解析目标操作日志,得到目标操作日志对应的目标数据,向目标存储设备发送目标数据后确定数据迁移设备中的数据和目标存储设备的数据同步。
本实施例的设备,可以用于执行上述方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
图6为本发明提供的数据迁移设备实施例三的结构示意图,如图6所示,本实施例的设备可以包括:第一数据接收模块61、第二数据接收模块62、新增数据生成模块63和第三数据发送模块64;其中,第一数据接收模块61用于接收源存储设备发送的第一数据,第一数据为第一时间点之前源存储设备中的所有数据;第二数据接收模块62用于接收源存储设备发送的至少一个第二数据,第二数据是第一时间点和第二时间点之间的增量信息;新增数据生成模块63用于根据各第二数据得到源存储设备在第一时间点和第二时间点之间新增的数据,以使源存储设备与数据迁移设备的数据同步;第三数据发送模块64用于发送至少一个第三数据至源存储设备,第三数据是在第三时间点之后存储至数据迁移设备的增量信息;其中,在第二时间点与第三时间点之间,客户端访问存储设备的IP地址由源存储设备对应的IP地址修改为数据迁移设备对应的IP地址。
本实施例的设备,可以用于执行上述方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
图7为本发明提供的数据迁移设备实施例四的结构示意图,如图7所示,本实施例的装置在图6所示设备结构的基础上,进一步地,还可以包括:第三数据获取模块65,第三数据获取模65用于根据第三时间点之后数据迁移设备的操作日志,获取至少一个第三数据。
本实施例的设备,可以用于执行上述方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

Claims (9)

1.一种数据迁移方法,其特征在于,包括:
源存储设备获取第一数据,并将第一数据发送至目标存储设备;所述第一数据为第一时间点之前所述源存储设备中的所有数据;
所述源存储设备向所述目标存储设备发送至少一个第二数据,所述第二数据是第一时间点和第二时间点之间的增量信息,以使所述源存储设备与所述目标存储设备的数据同步;
所述源存储设备接收所述目标存储设备发送的至少一个第三数据,所述第三数据是在第三时间点之后存储至所述目标存储设备的增量信息,并根据各所述第三数据得到所述目标存储设备在第三时间点之后新增的数据;其中,在所述第二时间点与所述第三时间点之间,客户端访问存储设备的IP地址由所述源存储设备对应的IP地址修改为所述目标存储设备对应的IP地址。
2.根据权利要求1所述的方法,其特征在于,所述源存储设备向所述目标存储设备发送至少一个第二数据之前,还包括:
所述源存储设备根据所述第一时间点和第二时间点之间所述源存储设备的操作日志,获取所述至少一个第二数据。
3.根据权利要求2所述的方法,其特征在于,所述第一时间点和所述第二时间点之间所经历的时长大于或等于所述第一数据的迁移时长;所述源存储设备根据所述第一时间点和第二时间点之间的所述源存储设备的操作日志,获取所述至少一个第二数据,包括:
在第一时间点和第二时间点之间每间隔预设长获取第i预设时长内新增的第i操作日志,并解析所述第i操作日志,得到所述第i操作日志对应的第二数据;
其中,最后一次获取预设时长内新增的操作日志对应的获取时间点与所述第二时间点之间的间隔时长小于预设时长。
4.根据权利要求3所述的方法,其特征在于,在所述源存储设备向所述目标存储设备发送至少一个第二数据之后,还包括:
所述源存储设备丢弃客户端在第二时间点之后发送的数据;
所述源存储设备判断在第一时间点与第二时间点之间最后一次获取新增的操作日志的时间是否与第二时间点重合,若是,则确定所述源存储设备中的数据和所述目标存储设备的数据同步;若否,则所述源存储设备判断是否存在操作时间为第六时间点至所述第二时间点之间新增的操作日志;所述第六时间点为在第一时间点与第二时间点之间最后一次获取新增的操作日志的时间点;
若所述源存储设备不存在操作时间为第六时间点至所述第二时间点之间的操作日志,则确定所述源存储设备中的数据和所述目标存储设备的数据同步;
若所述源存储设备存在操作时间为第六时间点至所述第二时间点之间的操作日志,所述源存储设备获取第六时间点至所述第二时间点之间新增的目标操作日志;
所述源存储设备解析所述目标操作日志,得到所述目标操作日志对应的目标数据,向所述目标存储设备发送所述目标数据。
5.一种数据迁移方法,其特征在于,包括:
目标存储设备接收源存储设备发送的第一数据,所述第一数据为第一时间点之前所述源存储设备中的所有数据;
目标存储设备接收源存储设备发送的至少一个第二数据,所述第二数据是第一时间点和第二时间点之间的增量信息,并根据各所述第二数据得到所述源存储设备在第一时间点和第二时间点之间新增的数据,以使所述源存储设备与所述目标存储设备的数据同步;
所述目标存储设备发送至少一个第三数据至所述源存储设备,所述第三数据是在第三时间点之后存储至所述目标存储设备的增量信息;其中,在所述第二时间点与所述第三时间点之间,客户端访问存储设备的IP地址由所述源存储设备对应的IP地址修改为所述目标存储设备对应的IP地址。
6.根据权利要求5所述的方法,其特征在于,在所述目标存储设备发送至少一个第三数据至所述源存储设备之前,还包括:
所述目标存储设备根据所述第三时间点之后所述目标存储设备的操作日志,获取所述至少一个第三数据。
7.根据权利要求6所述的方法,其特征在于,在所述目标存储设备根据所述第三时间点之后所述目标存储设备的操作日志,获取所述至少一个第三数据之前,还包括:
接收客户端在第三时间点之后发送的数据。
8.一种数据迁移设备,其特征在于,包括:
第一数据获取模块,所述第一数据获取模块用以获取第一数据,所述第一数据为第一时间点之前所述数据迁移设备中的所有数据;
第一数据发送模块,所述第一数据发送模块用于将第一数据发送至目标存储设备;
第二数据发送模块,所述第二数据发送模块用于向所述目标存储设备发送至少一个第二数据,所述第二数据是第一时间点和第二时间点之间的增量信息,以使所述数据迁移设备与所述目标存储设备的数据同步;
第三数据接收模块,所述第三数据接收模块用于接收所述目标存储设备发送的至少一个第三数据,所述第三数据是在第三时间点之后存储至所述目标存储设备的增量信息,并根据各所述第三数据得到所述目标存储设备在第三时间点之后新增的数据;其中,在所述第二时间点与所述第三时间点之间,客户端访问存储设备的IP地址由所述数据迁移设备对应的IP地址修改为所述目标存储设备对应的IP地址。
9.一种数据迁移设备,其特征在于,包括:
第一数据接收模块,所述第一数据接收模块用于接收源存储设备发送的第一数据,所述第一数据为第一时间点之前所述源存储设备中的所有数据;
第二数据接收模块,所述第二数据接收模块用于接收源存储设备发送的至少一个第二数据,所述第二数据是第一时间点和第二时间点之间的增量信息;
新增数据生成模块,所述新增数据生成模块用于根据各所述第二数据得到所述源存储设备在第一时间点和第二时间点之间新增的数据,以使所述源存储设备与所述数据迁移设备的数据同步;
第三数据发送模块,所述第三数据发送模块用于发送至少一个第三数据至所述源存储设备,所述第三数据是在第三时间点之后存储至所述数据迁移设备的增量信息;其中,在所述第二时间点与所述第三时间点之间,客户端访问存储设备的IP地址由所述源存储设备对应的IP地址修改为所述数据迁移设备对应的IP地址。
CN201710295883.7A 2017-04-28 2017-04-28 数据迁移方法及设备 Pending CN107247727A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710295883.7A CN107247727A (zh) 2017-04-28 2017-04-28 数据迁移方法及设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710295883.7A CN107247727A (zh) 2017-04-28 2017-04-28 数据迁移方法及设备

Publications (1)

Publication Number Publication Date
CN107247727A true CN107247727A (zh) 2017-10-13

Family

ID=60016921

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710295883.7A Pending CN107247727A (zh) 2017-04-28 2017-04-28 数据迁移方法及设备

Country Status (1)

Country Link
CN (1) CN107247727A (zh)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101127640A (zh) * 2007-09-10 2008-02-20 中兴通讯股份有限公司 一种提高增量方式数据同步效率的方法
CN101266606A (zh) * 2007-03-15 2008-09-17 阿里巴巴公司 一种基于Oracle数据库的在线数据迁移方法
CN102122303A (zh) * 2011-03-15 2011-07-13 浪潮(北京)电子信息产业有限公司 一种进行数据迁移的方法及服务系统及服务器设备
CN102982085A (zh) * 2012-10-31 2013-03-20 北京奇虎科技有限公司 数据迁移系统和方法
CN103970833A (zh) * 2014-04-02 2014-08-06 浙江大学 一种基于日志的异构数据库同步系统中双向同步数据循环的解决方法
CN104424283A (zh) * 2013-08-30 2015-03-18 阿里巴巴集团控股有限公司 一种数据迁移的系统和数据迁移的方法
CN105183860A (zh) * 2015-09-10 2015-12-23 北京京东尚科信息技术有限公司 数据同步方法和系统

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101266606A (zh) * 2007-03-15 2008-09-17 阿里巴巴公司 一种基于Oracle数据库的在线数据迁移方法
CN101127640A (zh) * 2007-09-10 2008-02-20 中兴通讯股份有限公司 一种提高增量方式数据同步效率的方法
CN102122303A (zh) * 2011-03-15 2011-07-13 浪潮(北京)电子信息产业有限公司 一种进行数据迁移的方法及服务系统及服务器设备
CN102982085A (zh) * 2012-10-31 2013-03-20 北京奇虎科技有限公司 数据迁移系统和方法
CN104424283A (zh) * 2013-08-30 2015-03-18 阿里巴巴集团控股有限公司 一种数据迁移的系统和数据迁移的方法
CN103970833A (zh) * 2014-04-02 2014-08-06 浙江大学 一种基于日志的异构数据库同步系统中双向同步数据循环的解决方法
CN105183860A (zh) * 2015-09-10 2015-12-23 北京京东尚科信息技术有限公司 数据同步方法和系统

Similar Documents

Publication Publication Date Title
US5819272A (en) Record tracking in database replication
CN110798499B (zh) 一种分布式服务的协调系统及方法
CN105243067B (zh) 一种实现实时增量同步数据的方法及装置
CN103532741B (zh) 一种接入级网络拓扑管理方法与系统
US20110251931A1 (en) Accurate Method of Account Checking in the Situation of 7*24 Hours Transactions Between Telecom Multiple Systems
CN105989076A (zh) 一种数据统计方法以及装置
CN103399888B (zh) 电网模型数据的差分同步方法及系统
CN102890682A (zh) 构建索引的方法、检索方法、装置及系统
CN106339387B (zh) 一种数据库集群中新增服务器的数据同步方法及装置
CN103581231A (zh) Ugc主备数据同步方法及其系统
CN110941676B (zh) 一种配置方法、装置、设备及介质
CN105608126A (zh) 一种建立海量数据库二级索引的方法和装置
CN106503158A (zh) 数据同步方法及装置
CN108345617A (zh) 一种数据同步方法、装置以及电子设备
CN108965427A (zh) 一种离线巡检数据处理的方法及装置
CN109710586B (zh) 一种集群节点配置文件同步方法及装置
CN109933632A (zh) 一种数据库的数据迁移方法、装置及设备
CN109739684A (zh) 基于向量时钟的分布式键值数据库的副本修复方法与装置
CN112328702A (zh) 数据同步方法及系统
CN106789978A (zh) 一种数据汇聚系统和方法
CN109510681A (zh) 一种通信网络时间同步级数最小的基准节点选择方法
CN107247727A (zh) 数据迁移方法及设备
CN107276835A (zh) 一种集群部署配置方法及系统
CN109918044B (zh) 一种基于区块链技术的抽签/排序方法
CN110377602A (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
RJ01 Rejection of invention patent application after publication

Application publication date: 20171013

RJ01 Rejection of invention patent application after publication