数据迁移方法、代理节点及数据库实例技术

技术编号:13941673 阅读:82 留言:0更新日期:2016-10-29 17:24
本发明专利技术实施例公开了一种数据迁移方法、代理节点及数据库实例。所述数据迁移方法包括:向源数据库实例发送同步命令;接收所述源数据库实例发送的备份数据;根据对所述备份数据的解析,将所述备份数据发送至所述目标数据库实例。本发明专利技术实施例提供的数据迁移方法、代理节点及数据库实例实现了对Redis集群上数据的在线迁移。

【技术实现步骤摘要】

本专利技术实施例涉及数据库
,尤其涉及一种数据迁移方法、代理服务器及数据库服务器。
技术介绍
NoSQL数据库是Not Only SQL的简称,即不仅仅是SQL,是对SQL应用不足的一种补充,中文翻译过来也称为非关系型数据库。它是一类通常强调非关系型、分布式、开源和并行性的数据库。NoSQL数据存储无固定的表结构,通常也不存在连接操作关系,因此在针对大数据量的数据时具有高读写性能、易扩展、高可用的优势,并且还有多样灵活的数据结构可供根据实际需求进行选择。Redis(Remote Dictionary Server)是用C语言实现的一种高性能的key-value类型的内存持久性数据库。Redis定位于一个内存数据库。为了保证读写效率,Redis的数据都保存在内存中,但是Redis会周期性的吧更新的数据写入磁盘或把修改操作写入追加的记录文件,并且在此基础上实现了master-slave同步。因为是纯内存操作,Redis的性能非常出色,每秒可以处理超10万次读写操作,是已知性能最快的Key-Value数据库。Twemproxy是一个轻量级的Redis代理,主要用来减少对后端缓存服务器的连接数。由Twitter开源出来的缓存服务器集群管理工具,主要用来弥补Redis集群管理的不足。在实现本专利技术的过程中,专利技术人发现上述技术至少存在以下问题:在应用Twemproxy执行对Redis的代理的过程中,由于分片策略在集群创建时已经确定,无法实现Redis实例的动态添加和删除。一旦用户需要将正在提供服务的Redis实例上的数据进行迁移,需要将整个Redis集群下线,进行线下的数据迁移。这明显有悖于Redis集群高可用、高并发的设计初衷。
技术实现思路
针对上述技术问题,本专利技术实施例提供了一种数据迁移方法、代理节点及数据库实例,以实现数据库集群的在线迁移。第一方面,本专利技术实施例提供了一种数据迁移方法,应用于代理节点,所述方法包括:向源数据库实例发送同步命令;接收所述源数据库实例发送的备份数据;根据对所述备份数据的解析,将所述备份数据发送至所述目标数据库实例。第二方面,本专利技术实施例还提供了一种数据迁移方法,应用于源数据库实例,所述方法包括:接收代理节点发送的同步命令;根据所述同步命令向所述代理节点发送备份数据。第三方面,本专利技术实施例还提供了一种数据迁移方法,应用于目标数据库实例,所述方法包括:接收所述代理节点发送的备份数据;存储所述备份数据;基于存储的所述备份数据向客户节点提供数据访问服务。第四方面,本专利技术实施例还提供了一种代理节点,所述代理节点包括:命令转发模块,用于向源数据库实例发送同步命令;备份接收模块,用于接收所述源数据库实例发送的备份数据;备份转发模块,用于根据对所述备份数据的解析,将所述备份数据发送至所述目标数据库实例。第五方面,本专利技术实施例还提供了一种源数据库实例,所述源数据库实例包括:命令接收模块,用于接收代理节点发送的同步命令;备份发送模块,用于根据所述同步命令向所述代理节点发送备份数据。第六方面,本专利技术实施例还提供了一种目标数据库实例,所述目标数据库实例包括:备份数据接收模块,用于接收所述代理节点发送的备份数据;备份存储模块,用于存储所述备份数据;服务重启模块,用于基于存储的所述备份数据向客户节点提供数据访问服务。本专利技术实施例提供的数据迁移方法、代理节点及数据库实例,通过向源数据库实例发送同步命令,接收所述源数据库实例发送的备份数据,根据对所述备份数据的解析,将所述备份数据发送至所述目标数据库实例,从而实现了对Redis集群的在线数据迁移。附图说明通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本专利技术的其它特征、目的和优点将会变得更明显:图1是本专利技术提供的数据迁移方法的应用网络的拓扑图;图2是本专利技术第一实施例提供的数据迁移方法的流程图;图3是本专利技术第二实施例提供的数据迁移方法中备份转发的流程图;图4是本专利技术第三实施例提供的数据迁移方法的流程图;图5是本专利技术第三实施例提供的数据迁移方法中客户的访问请求处理的流程图;图6是本专利技术第四实施例提供的数据迁移方法的流程图;图7是本专利技术第五实施例提供的代理节点的结构图;图8是本专利技术第六实施例提供的源数据库实例的结构图;图9是本专利技术第七实施例提供的目标数据库实例的结构图。具体实施方式下面结合附图和实施例对本专利技术作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本专利技术,而非对本专利技术的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本专利技术相关的部分而非全部结构。图1示出了本专利技术提供的数据迁移方法所应用的网络的拓扑结构。参见图1,所述网络包括:用户侧的客户节点11,网络侧的源服务集群13及目标服务集群15。所述源服务集群13由多个源数据库实例131组成,是执行数据迁移之前对客户节点11提供数据服务的集群。所述目标服务集群15由多个目标数据库实例151组成,是执行数据迁移之后对客户节点11提供数据服务的集群。所述源服务集群13通过客户代理节点12与用于测的客户节点11连接。并且,所述源服务集群13与所述目标服务集群15通过代理节点14连接。具体的,在图1示出的拓扑结构中,所述源数据实例131及所述目标数据库实例151都是Redis实例。所述客户代理节点12及所述代理节点14都是twemproxy节点。第一实施例本实施例提供了数据迁移方法的一种技术方案。在该技术方案中,所述数据迁移方法由数据迁移装置执行,并且,所述数据迁移装置集成在图1示出的代理节点中。更进一步的,所述代理节点是twemproxy节点。参见图2,所述数据迁移方法包括:S21,向源数据库实例发送同步命令。所述同步命令又被称为SYNC命令,是在数据迁移的开始阶段,由数据迁移的目标数据库实例发送给源数据库实例的命令。由于所述代理节点与所述源数据库实例相连接,所述同步命令是由所述代理节点接收并转发至所述源数据库实例的。具体的,所述代理节点根据所述原数据库实例的地址将所述同步命令转发给所述源服务集群中的源数据库实例,以启动对源服务集群的数据迁移。S22,接收所述源数据库实例发送的备份数据。所述源数据库实例在接收到由所述代理节点发起的同步命令之后,会向所述目标数据库实例发送备份数据。由于所述代理节点是源服务集群与目标服务集群之间的唯一中继节点,所以所述代理节点需要对上述备份数据进行接收。具体的,所述备份数据是所述源数据库实例存储的RDB文件。S23,根据对所述备份数据的解析,将所述备份数据发送至所述目标数据库实例。在接收到所述备份数据,也就是所述RDB文件之后,所述代理节点对所述RDB文件进行解析。更为具体的,所述代理节点根据所述RDB文件记录中的键(Key),对所述RDB文件进行分片(Sharding),以完成所述RDB文件的解析。对所述RDB文件的解析完成之后,将所述RDB文件数据传输至所述目标数据库实例。所述目标数据库实例完成所述RDB文件数据的存储之后,所述目标服务集群上存储的数据即与所述源服务集群上存储的数据完全一致。此时,即完成了对Redis集群上全部数据的在线迁移。需要特别说明的是,同步命令发送后,源数据库实例会对当前内存中的数据进行全量备份,并存储至RDB文件本文档来自技高网
...

【技术保护点】
一种数据迁移方法,应用于代理节点,其特征在于,包括:向源数据库实例发送同步命令;接收所述源数据库实例发送的备份数据;根据对所述备份数据的解析,将所述备份数据发送至所述目标数据库实例。

【技术特征摘要】
1.一种数据迁移方法,应用于代理节点,其特征在于,包括:向源数据库实例发送同步命令;接收所述源数据库实例发送的备份数据;根据对所述备份数据的解析,将所述备份数据发送至所述目标数据库实例。2.根据权利要求1所述的方法,其特征在于,所述备份数据为RDB备份文件数据。3.根据权利要求2所述的方法,其特征在于,根据对所述备份数据的解析,将所述备份数据发送至所述目标数据库实例包括:根据所述RDB备份文件数据中的键,对所述RDB备份文件数据进行分片;将所述RDB备份文件数据的分片数据传输至其对应的目标数据库实例。4.根据权利要求3所述的方法,其特征在于,所述分片包括:哈希分片。5.一种数据迁移方法,应用于源数据库实例,其特征在于,包括:接收代理节点发送的同步命令;根据所述同步命令向所述代理节点发送备份数据。6.根据权利要求5所述的方法,其特征在于,还包括:在根据所述同步命令向所述代理节点发送备份数据之前,根据所述同步命令存储所述备份数据。7.根据权利要求5所述的方法,其特征在于,还包括:接收客户代理节点转发的由客户节点发起的访问请求;根据所述访问请求进行数据处理;根据所述数据处理的处理结果,向所述客户节点发送访...

【专利技术属性】
技术研发人员:陈鹏
申请(专利权)人:智者四海北京技术有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1