用于数据库集群数据迁移的方法和系统与流程

文档序号:14911279发布日期:2018-07-10 23:29阅读:172来源:国知局

本发明涉及数据库领域,尤其涉及一种用于数据库集群数据迁移的方法和系统。



背景技术:

随着移动4G业务的迅速发展,大量4G信令数据传输到大规模并行处理(massively parallel processing,MPP)数据库中,该数据采用多种BI工具,利用数据集成的方式,将企业内部的各生产平台数据集中到MPP数据库中。通过统计分析、数据挖掘等手段,为市场经营服务、为领导决策提供分析支撑。库数据库目前存放的基础数据主要为:客户资料、用户资料、话单、业务受理等,同时也包含了客服、网管、信令等平台传递给经分系统的数据。然而,与日俱增的数据导致数据库运行压力倍增,已不能承载当前日益增长的业务需求,急需建立一套更高性能的MPP数据库来承载数据仓库业务,并让数据库数据在最短的时间内迁移到新库上。

传统的数据库迁移方法主要包括以下几种:

(一)数据备份恢复;

(二)数据直接拷贝;

(三)第三方迁移工具;

发明人在研究的过程中发现,上述数据迁移方法存在如下缺陷:

(一)数据备份恢复:

1、传统的数据备份和恢复需要消耗大量的本地CPU和磁盘IO资源。

2、备份出来的数据文件需要借助网络或其他存储介质传输到目标库。在数据传输过程中存在网络丢包、异常中断、数据丢失等风险。而采用存储介质传输又涉及设备采购、部署、维护等工作。再次,在目的库对备份数据进行恢复操作时,存在数据文件损坏无法导入的风险,而且恢复时间比备份时间更长,甚至达到两倍。

3、数据恢复完成后需要做数据重分布操作,重分布期间对数据库性能影响巨大。

(二)数据直接拷贝:

1、数据直接拷贝的方式对源端和目的端主机的磁盘IO资源损耗巨大。

2、数据通过网络或其他存储介质传输到目的端过程中存在网络丢包、异常中断、数据丢失等风险,导致拷贝操作失败。

3、源端和目的端主机只能严格的一对一进行数据拷贝,一旦拷贝过程中数据文件丢失或损坏,存在数据库无法启动的风险。

4、如果目标主机和源主机个数不一致的话,数据库启动后需要做数据重分布操作,数据重分布期间对数据库性能影响巨大。

(三)第三方迁移工具:

类似kettle、informatica等第三方工具受限于自身服务器的性能,使用需要相应的专业知识,操作相对复杂,而且某些软件需要另行购买。

由于上述方法的数据库迁移需要对源库数据备份导出,传送到目标库,在目标库上进行数据恢复,耗时长,操作费时费力,中间实施风险较大,对业务影响大。因此如何进行大规模数据安全、高效的迁移就成了当前急需解决的问题。



技术实现要素:

本发明提供了一种用于数据库集群数据迁移的方法和系统,至少能够解决了大数据迁移过程中耗时长、费事费力、风险大的问题,大幅提高了数据抽取、传输、加载的安全性和性能,节省了数据搬迁的时间,减少了对业务的影响。

根据本发明的实施例,提供了一种用于数据库集群数据迁移的方法,包括:接收源端数据库集群采用批量调用点对点数据复制方式并行复制过来的全部数据;采用insert select方式做数据重分布,将接收到的数据重新打散到计算节点上。

进一步的,所述接收源端数据库集群采用批量调用点对点数据复制方式并行复制过来的全部数据,包括:源端数据库集群采用批量调用数据库底层API接口复制方式,在目的端数据库集群中随机选取与所述源端数据库集群中的源端数据库服务器等量的目的端服务器,通过互信方式接收源端数据库集群中的源端数据库服务器并行复制的全部数据。

更进一步的,所述通过互信方式接收源端数据库集群中的源端数据库服务器并行复制的全部数据,包括:源端数据库集群与目的端数据库集群间采用交换机互联,创建安全互信;源端数据库集群中的源端数据库服务器并行抽取各个计算节点上的数据,批量导出DDL,目的端数据库集群中的目的端数据库服务器上创建与源端数据库服务器批量导出DDL对应的所有对象;通过源端数据库集群中部署的复制工具,将数据并行复制到目的端服务器的计算节点上。

更进一步的,所述目的端数据库集群中的目的端数据库服务器上创建与源端数据库服务器批量导出DDL对应的所有对象,包括:获取源端数据库集群中的源端数据库服务器上的需要进行数据迁移的对象列表,基于所述对象列表,创建与源端数据库服务器批量导出DDL对应的所有对象。

更进一步的,所述通过源端数据库集群中部署的复制工具,将数据并行复制到目的端服务器的计算节点上,包括:源端数据库集群中部署的复制工具访问源端数据库服务器后台实例的复制接口,通过该接口批量抽取和加载数据,直接将源端数据库服务器上的数据并行复制到目的端数据库服务器上。

进一步的,所述采用insert select方式做数据重分布,将接收到的数据重新打散到计算节点上,包括:源端数据库服务器并行复制过来的数据直接加载到目的端数据库服务器新建的schema下,采用quicklz压缩随机分布的方式将数据存储,通过insert select方式在目的端数据库服务器中做数据重分布,将接收到的数据重新打散到目的端数据库服务器计算节点上,并通过Greenplum内部的数据重分布机制,并行完成数据重分布工作。

根据本发明的实施例,还提供了一种用于数据库集群数据迁移的系统,包括:接收模块,用于接收源端数据库集群采用批量调用点对点数据复制方式并行复制过来的全部数据;数据重分布模块,用于采用insert select方式做数据重分布,将接收到的数据重新打散到计算节点上。

进一步的,所述接收模块,包括:接收单元,用于基于源端数据库集群采用批量调用数据库底层API接口复制方式,在目的端数据库集群中随机选取与所述源端数据库集群中的源端数据库服务器等量的目的端服务器,通过互信方式接收源端数据库集群中的源端数据库服务器并行复制的全部数据。

进一步的,所述接收单元,包括:创建单元,用于在源端数据库集群与目的端数据库集群间采用交换机互联后,创建安全互信;并行复制单元,用于在源端数据库集群中的源端数据库服务器并行抽取各个计算节点上的数据后,批量导出DDL,目的端数据库集群中的目的端数据库服务器上创建与源端数据库服务器批量导出DDL对应的所有对象;通过源端数据库集群中部署的复制工具,将数据并行复制到目的端服务器的计算节点上。

进一步的,所述并行复制单元,包括:获取单元,用于获取源端数据库集群中的源端数据库服务器上的需要进行数据迁移的对象列表;创建子单元,用于基于所述对象列表,创建与源端数据库服务器批量导出DDL对应的所有对象;

并行复制子单元,用于基于源端数据库集群中部署的复制工具访问源端数据库服务器后台实例的复制接口,通过该接口批量抽取和加载数据,直接将源端数据库服务器上的数据并行复制到目的端数据库服务器上。

进一步的,所述数据重分布模块,包括:数据重分布单元,用于在源端数据库服务器并行复制过来的数据直接加载到目的端数据库服务器新建的schema下,采用quicklz压缩随机分布的方式将数据存储,通过insert select方式在目的端数据库服务器中做数据重分布,将接收到的数据重新打散到目的端数据库服务器计算节点上,并通过Greenplum内部的数据重分布机制,并行完成数据重分布工作。

本发明的实施例提供了一种用于数据库集群数据迁移的方法和系统,通过接收源端数据库集群采用批量调用点对点数据复制方式并行复制过来的全部数据;采用insert select方式做数据重分布,将接收到的数据重新打散到计算节点上。根据本发明的实施例,对源端数据库集群的CPU、磁盘IO资源消耗少,传输过程安全可靠;目的端数据库集群在并行复制完数据后,直接在数据库内部采用insert select的方式进行数据重分布,大幅提高了数据抽取、传输、加载的安全性和性能,大大节省了数据搬迁的时间,减少了对业务的影响。

附图说明

通过阅读以下参照附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显,其中,相同或相似的附图标记表示相同或相似的特征。

图1为根据本发明的一种数据库集群数据迁移的方法的实施例一的流程图;

图2为根据本发明的一种数据库集群数据迁移的方法的实施例二的流程图;

图3为根据本发明的一种数据库集群数据迁移的系统的实施例三的示意图;

图4为根据本发明的接收模块的实施例三的示意图;

图5为根据本发明的接收单元的实施例三的示意图;

图6为根据本发明的并行复制单元的实施例三的示意图;

图7为根据本发明的数据重分布模块的实施例三的示意图;

图8为根据本发明的一种数据库集群数据迁移的系统的实施例四的示意图;

图9为根据本发明的并行复制模块的实施例四的示意图;

图10为根据本发明的第一并行复制单元的实施例四的示意图;以及

图11为根据本发明的第一并行复制子单元的实施例四的示意图。

具体实施方式

下面将详细描述本发明的各个方面的特征和示例性实施例。在下面的详细描述中,提出了许多具体细节,以便提供对本发明的全面理解。但是,对于本领域技术人员来说很明显的是,本发明可以在不需要这些具体细节中的一些细节的情况下实施。下面对实施例的描述仅仅是为了通过示出本发明的示例来提供对本发明的更好的理解。本发明决不限于下面所提出的任何具体配置和算法,而是在不脱离本发明的精神的前提下覆盖了元素、部件和算法的任何修改、替换和改进。在附图和下面的描述中,没有示出公知的结构和技术,以便避免对本发明造成不必要的模糊。

实施例一

参照图1,图1示出了本发明提供的一种数据库集群数据迁移的方法的流程图。包括:步骤S110和步骤S120。

在步骤S110中,接收源端数据库集群采用批量调用点对点数据复制方式并行复制过来的全部数据。

具体地,源端数据库集群采用批量调用数据库底层API接口复制方式,在目的端数据库集群中随机选取与所述源端数据库集群中的源端数据库服务器等量的目的端服务器,通过互信方式接收源端数据库集群中的源端数据库服务器并行复制的全部数据。

其中,数据库底层API接口可为PostgreSQL数据库的libpg copy接口。数据库并行调用数据库API接口完成各自数据节点上的数据抽取和加载,每个instance实例操作相互之间没有资源使用的冲突,可以充分保证各自应用不受影响。

其中,所述通过互信方式接收源端数据库集群中的源端数据库服务器并行复制的全部数据,包括:

源端数据库集群与目的端数据库集群间采用交换机互联,创建安全互信;源端数据库集群中的源端数据库服务器并行抽取各个计算节点上的数据,批量导出DDL(数据库定义语言),目的端数据库集群中的目的端数据库服务器上创建与源端数据库服务器批量导出DDL对应的所有对象;通过源端数据库集群中部署的复制工具,将数据并行复制到目的端服务器的计算节点上。

更进一步的,所述目的端数据库集群中的目的端数据库服务器上创建与源端数据库服务器批量导出DDL对应的所有对象,包括:获取源端数据库集群中的源端数据库服务器上的需要进行数据迁移的对象列表,基于所述对象列表,创建与源端数据库服务器批量导出DDL对应的所有对象。

更进一步的,所述通过源端数据库集群中部署的复制工具,将数据并行复制到目的端服务器的计算节点上,包括:源端数据库集群中部署的复制工具访问源端数据库服务器后台实例的复制接口,通过该接口批量抽取和加载数据,直接将源端数据库服务器上的数据并行复制到目的端数据库服务器上。

可根据集群服务器各自资源使用情况合理调整抽取和加载的并行进程数,确保数据迁移过程的高效、稳定运行。

在步骤S120中,采用insert select(插入选择)方式做数据重分布,将接收到的数据重新打散到计算节点上。

包括:源端数据库服务器并行复制过来的数据直接加载到目的端数据库服务器新建的schema(数据库中的schema为数据库对象的集合)下,采用quicklz压缩随机分布的方式将数据存储,通过insert select方式在目的端数据库服务器中做数据重分布,将接收到的数据重新打散到目的端数据库服务器计算节点上,并通过Greenplum内部的数据重分布机制,并行完成数据重分布工作。

目的端在并行复制完数据后,直接在数据库内部采用insert select的方式进行数据重分布,大大提高了重分布的效率,大幅提高了数据抽取、传输、加载的安全性和性能,大大节省了数据搬迁的时间,减少了对业务的影响。

进一步的,该方法还包括:在目的端数据库集群承载业务后,关闭源端数据库集群的运行。

根据一优选实施例,通过数据迁移工具,在24台源端数据库服务器(144个instance实例)上采用批量调用数据库底层API接口复制方式,直接在目的端数据库服务器随机选取24台segment服务器(144个instance实例),通过互信方式将源端数据库服务器上的数据(例如Greenplum数据库后台postgresql实例中的数据)并行复制过来。复制过来的数据直接加载到目的端数据库服务器新建的stage_fs schema下,数据存储采用quicklz压缩随机分布的方式。此方法极大减少源端服务器CPU消耗,加快数据入库速度。

另一应用实例,包括以下步骤:

1)搭建目的端数据库集群(即新数据库集群):

例如用50台x86服务器部署新数据库集群,其中2台服务器为master管理节点,其他48台服务器作为segment计算节点。每台segment计算节点上创建6个primary计算实例和6个mirror镜像实例;

2)新旧集群间创建安全互信;

3)新旧集群网络性能测试,要求新旧集群之间网络通信带宽至少为万兆网络;新旧集群间采用万兆交换机互联;

4)源端数据库服务器批量导出DDL;

5)目的端数据库服务器上创建所有对象;

6)部署集群复制模块(进行数据迁移);

在源数据库服务器上部署复制工具,通过自行开发数据迁移工具,编译调用了postgreql lib库中的libpq C函数库,以及dump.so和utf8_and_iso8859_1.so文件。本工具的目的是访问数据库后台实例postgresql的copy接口,通过该接口抽取和加载数据。

7)获取数据迁移列表;

在源数据库上获取需要进行数据迁移的对象列表。

8)执行数据批量复制;

通过数据迁移工具,批量调用点对点数据copy复制方式,直接将源端数据库服务器上的数据并行复制过来。复制过来的数据直接加载到目的端数据库新建的schema下,数据存储采用quicklz压缩随机分布的方式。

9)新库数据重分布;

数据全部复制到目的端之后,目的端数据库采用insert select的方式在数据库内部做数据重分布,将数据全部重新打散到目的端数据库segment计算节点上。通过Greenplum内部的数据重分布机制,并行完成数据重分布工作,加快重分布的速度。

10)新库执行ANALYZE收集统计信息

在新库上执行VACUUM ANALYZE对数据库上所有表进行信息收集。提高相关表的使用效率。

11)关闭老版本数据库。

在新数据库承载业务后,即可正式关闭老库的运行。

例如,本次数据库搬迁工程中,源端Greenplum数据库26台segment计算节点上的数据向目标端50台segment计算节点上进行数据迁移。如采用传统方式则需要144小时才能完成,而且期间的风险较大,对业务影响较大。而采用本次新技术后,搬迁工期缩短为48小时,大大提高了效率,而且不消耗本地空间和磁盘IO,大大降低了工程实施的复杂度。

随着近几年大数据平台的数据规模越来越大,MPP大规模并行处理数据库应用越来越广泛,数据库集群越来越多,集群内服务器也越来越多。由于不同时期的X86服务器硬件性能参差不齐,如果没有一种高效的技术来实现不同数据库中的数据迁移,仅依靠传统方法进行备份导出、数据传送和数据恢复,做为数据搬迁方式,效率较低,风险较大,对业务影响较大,影响时间长。本实施例一中直接将源端数据库服务器上的数据并行复制到目的端数据库服务器上的技术方案,对源端本地服务器的CPU、磁盘IO资源消耗少,传输过程安全可靠。本技术脱离传统备份方案的思路,采用新方案,数据不落地,主要优点如下:

1)数据复制过程中数据不落地,不需要额为设备做中间数据存储。

本技术只对网络带宽有要求,数据迁移过程中数据不落地,减少了硬件投资降低了成本。

2)支持异构系统复制,即:M个节点到N个节点的复制。

由于各集群主机数量或instance实例数量配置的不同,新技术根据各集群主机运行情况和资源损耗情况,可以合理调整抽取和加载的并发进程数,合理有效的利用不同集群主机的性能资源。

3)不消耗本地空间和磁盘IO,对本地CPU消耗小。

4)源端所有的节点能够访问目标集群所有节点,只需要提供足够的网络带宽,没有其它要求。

5)并发性能很高,没有单点性能瓶颈。

6)数据完成迁移后无需再进行水平扩容,数据库迁移过程直接做数据重分布。

源数据库中的数据采用并行抽取技术,各segment server(计算节点)节点上的instance实例最大效率的卸载数据库中的数据,目的端数据库同样采用并行加载技术,大规模并行读取源端数据库中的数据,并行加载到目的数据库各segment服务器中。集群中各segment服务器上的instance实例相互之间没有资源使用的冲突,互不干扰,极大的提高了数据迁移效率,降低了对业务影响和对开发的影响。

本发明实施例一提供的一种数据库集群数据迁移的方法,通过接收源端数据库集群采用批量调用点对点数据复制方式并行复制过来的全部数据;采用insert select方式做数据重分布,将接收到的数据重新打散到计算节点上的技术方案,脱离传统备份方案的思路,采用新技术,中间数据不落地,对源端数据库集群的CPU、磁盘IO资源消耗少,传输过程安全可靠;目的端数据库集群在并行复制完数据后,直接在数据库内部采用insert select的方式进行数据重分布,大幅提高了数据抽取、传输、加载的安全性和性能,大大节省了数据搬迁的时间,减少了对业务的影响。

实施例二

参照图2,图2示出了本发明提供的一种数据库集群数据迁移的方法的一实施例的流程图。包括:步骤S210。

在步骤S210中,采用批量调用点对点数据复制方式将全部数据并行复制到采用insert select方式做数据重分布,可将接收到的数据重新打散到计算节点上的目的端数据库集群中。

具体地,源端数据库集群采用批量调用数据库底层API接口复制方式,在目的端数据库集群中随机选取与所述源端数据库集群中的源端数据库服务器等量的目的端服务器,通过互信方式接收源端数据库集群中的源端数据库服务器并行复制的全部数据。

其中,数据库底层API接口可为PostgreSQL数据库的libpg copy接口。数据库并行调用数据库API接口完成各自数据节点上的数据抽取和加载,每个instance实例操作相互之间没有资源使用的冲突,可以充分保证各自应用不受影响。

更进一步的,所述通过互信方式接收源端数据库集群中的源端数据库服务器并行复制的全部数据,包括:

源端数据库集群与目的端数据库集群间采用交换机互联,创建安全互信;源端数据库集群中的源端数据库服务器并行抽取各个计算节点上的数据,批量导出DDL,目的端数据库集群中的目的端数据库服务器上创建与源端数据库服务器批量导出DDL对应的所有对象;通过源端数据库集群中部署的复制工具,将数据并行复制到目的端服务器的计算节点上。

更进一步的,所述目的端数据库集群中的目的端数据库服务器上创建与源端数据库服务器批量导出DDL对应的所有对象,包括:

源端数据库集群中的源端数据库服务器向目的端数据库集群发送需要进行数据迁移的对象列表,基于所述对象列表,目的端数据库集群创建与源端数据库服务器批量导出DDL对应的所有对象。

更进一步的,所述通过源端数据库集群中部署的复制工具,将数据并行复制到目的端服务器的计算节点上,包括:

源端数据库集群中部署的复制工具访问源端数据库服务器后台实例的复制接口,通过该接口批量抽取和加载数据,直接将源端数据库服务器上的数据并行复制到目的端数据库服务器上。

可根据集群服务器各自资源使用情况合理调整抽取和加载的并行进程数,确保数据迁移过程的高效、稳定运行。

进一步的,所述采用insert select方式做数据重分布,将接收到的数据重新打散到计算节点上的目的端数据库集群,包括:

源端数据库服务器并行复制过来的数据直接加载到目的端数据库服务器新建的schema下,采用quicklz压缩随机分布的方式将数据存储,通过insert select方式在目的端数据库服务器中做数据重分布,将接收到的数据重新打散到目的端数据库服务器计算节点上,并通过Greenplum内部的数据重分布机制,并行完成数据重分布工作。

目的端在并行复制完数据后,直接在数据库内部采用insert select的方式进行数据重分布,大大提高了重分布的效率,大幅提高了数据抽取、传输、加载的安全性和性能,大大节省了数据搬迁的时间,减少了对业务的影响。

进一步的,该方法还包括:在目的端数据库集群承载业务后,关闭源端数据库集群的运行。

根据一优选实施例,通过数据迁移工具,在24台源端数据库服务器(144个instance实例)上采用批量调用数据库底层API接口复制方式,直接在目的端数据库服务器随机选取24台segment服务器(144个instance实例),通过互信方式将源端数据库服务器上的数据(例如Greenplum数据库后台postgresql实例中的数据)并行复制过来。复制过来的数据直接加载到目的端数据库服务器新建的stage_fs schema下,数据存储采用quicklz压缩随机分布的方式。此方法极大减少源端服务器CPU消耗,加快数据入库速度。

另一应用实例,包括以下步骤:

1)搭建目的端数据库集群(即新数据库集群):

例如用50台x86服务器部署新数据库集群,其中2台服务器为master管理节点,其他48台服务器作为segment计算节点。每台segment计算节点上创建6个primary计算实例和6个mirror镜像实例;

2)新旧集群间创建安全互信;

3)新旧集群网络性能测试,要求新旧集群之间网络通信带宽至少为万兆网络;新旧集群间采用万兆交换机互联;

4)源端数据库服务器批量导出DDL;

5)目的端数据库服务器上创建所有对象;

6)部署集群复制模块(进行数据迁移);

在源数据库服务器上部署复制工具,通过自行开发数据迁移工具,编译调用了postgreql lib库中的libpq C函数库,以及dump.so和utf8_and_iso8859_1.so文件。本工具的目的是访问数据库后台实例postgresql的copy接口,通过该接口抽取和加载数据。

7)获取数据迁移列表;

在源数据库上获取需要进行数据迁移的对象列表。

8)执行数据批量复制;

通过数据迁移工具,批量调用点对点数据copy复制方式,直接将源端数据库服务器上的数据并行复制过来。复制过来的数据直接加载到目的端数据库新建的schema下,数据存储采用quicklz压缩随机分布的方式。

9)新库数据重分布;

数据全部复制到目的端之后,目的端数据库采用insert select的方式在数据库内部做数据重分布,将数据全部重新打散到目的端数据库segment计算节点上。通过Greenplum内部的数据重分布机制,并行完成数据重分布工作,加快重分布的速度。

10)新库执行ANALYZE收集统计信息

在新库上执行VACUUM ANALYZE对数据库上所有表进行信息收集。提高相关表的使用效率。

11)关闭老版本数据库。

在新数据库承载业务后,即可正式关闭老库的运行。

例如,本次数据库搬迁工程中,源端Greenplum数据库26台segment计算节点上的数据向目标端50台segment计算节点上进行数据迁移。如采用传统方式则需要144小时才能完成,而且期间的风险较大,对业务影响较大。而采用本次新技术后,搬迁工期缩短为48小时,大大提高了效率,而且不消耗本地空间和磁盘IO,大大降低了工程实施的复杂度。

随着近几年大数据平台的数据规模越来越大,MPP大规模并行处理数据库应用越来越广泛,数据库集群越来越多,集群内服务器也越来越多。由于不同时期的X86服务器硬件性能参差不齐,如果没有一种高效的技术来实现不同数据库中的数据迁移,仅依靠传统方法进行备份导出、数据传送和数据恢复,做为数据搬迁方式,效率较低,风险较大,对业务影响较大,影响时间长。本实施例一中直接将源端数据库服务器上的数据并行复制到目的端数据库服务器上的技术方案,对源端本地服务器的CPU、磁盘IO资源消耗少,传输过程安全可靠。本技术脱离传统备份方案的思路,采用新方案,数据不落地,主要优点如下:

1)数据复制过程中数据不落地,不需要额为设备做中间数据存储。

本技术只对网络带宽有要求,数据迁移过程中数据不落地,减少了硬件投资降低了成本。

2)支持异构系统复制,即:M个节点到N个节点的复制。

由于各集群主机数量或instance实例数量配置的不同,新技术根据各集群主机运行情况和资源损耗情况,可以合理调整抽取和加载的并发进程数,合理有效的利用不同集群主机的性能资源。

3)不消耗本地空间和磁盘IO,对本地CPU消耗小。

4)源端所有的节点能够访问目标集群所有节点,只需要提供足够的网络带宽,没有其它要求。

5)并发性能很高,没有单点性能瓶颈。

6)数据完成迁移后无需再进行水平扩容,数据库迁移过程直接做数据重分布。

源数据库中的数据采用并行抽取技术,各segment server(计算节点)节点上的instance实例最大效率的卸载数据库中的数据,目的端数据库同样采用并行加载技术,大规模并行读取源端数据库中的数据,并行加载到目的数据库各segment服务器中。集群中各segment服务器上的instance实例相互之间没有资源使用的冲突,互不干扰,极大的提高了数据迁移效率,降低了对业务影响和对开发的影响。

本发明实施例二提供的一种数据库集群数据迁移的方法,通过采用批量调用点对点数据复制方式将全部数据并行复制到采用insert select方式做数据重分布,可将接收到的数据重新打散到计算节点上的目的端数据库集群中的技术方案,对源端数据库集群的CPU、磁盘IO资源消耗少,传输过程安全可靠;目的端数据库集群在并行复制完数据后,直接在数据库内部采用insert select的方式进行数据重分布,大幅提高了数据抽取、传输、加载的安全性和性能,大大节省了数据搬迁的时间,减少了对业务的影响。

实施例三

参照图3,图3出了本发明提供的一种数据库集群数据迁移的系统300的一实施例的结构框图,包括:

接收模块31,用于接收源端数据库集群采用批量调用点对点数据复制方式并行复制过来的全部数据。

数据重分布模块32,用于采用insert select方式做数据重分布,将接收到的数据重新打散到计算节点上。

进一步的,如图4所示,所述接收模块31,包括:

接收单元311,用于基于源端数据库集群采用批量调用数据库底层API接口复制方式,在目的端数据库集群中随机选取与所述源端数据库集群中的源端数据库服务器等量的目的端服务器,通过互信方式接收源端数据库集群中的源端数据库服务器并行复制的全部数据。

进一步的,如图5所示,所述接收单元311,包括:

创建单元3111,用于在源端数据库集群与目的端数据库集群间采用交换机互联后,创建安全互信;

并行复制单元3112,用于在源端数据库集群中的源端数据库服务器并行抽取各个计算节点上的数据后,批量导出DDL,目的端数据库集群中的目的端数据库服务器上创建与源端数据库服务器批量导出DDL对应的所有对象;通过源端数据库集群中部署的复制工具,将数据并行复制到目的端服务器的计算节点上。

进一步的,如图6所示,所述并行复制单元3112,包括:

获取单元31121,用于获取源端数据库集群中的源端数据库服务器上的需要进行数据迁移的对象列表;

创建子单元31122,用于基于所述对象列表,创建与源端数据库服务器批量导出DDL对应的所有对象;

并行复制子单元31123,用于基于源端数据库集群中部署的复制工具访问源端数据库服务器后台实例的复制接口,通过该接口批量抽取和加载数据,直接将源端数据库服务器上的数据并行复制到目的端数据库服务器上。

进一步的,如图7所示,所述数据重分布模块32,包括:

数据重分布单元321,用于在源端数据库服务器并行复制过来的数据直接加载到目的端数据库服务器新建的schema下,采用quicklz压缩随机分布的方式将数据存储,通过insert select方式在目的端数据库服务器中做数据重分布,将接收到的数据重新打散到目的端数据库服务器计算节点上,并通过Greenplum内部的数据重分布机制,并行完成数据重分布工作。

进一步的,还包括:第一关闭模块(图中未示),用于在目的端数据库集群承载业务后,关闭源端数据库集群的运行。

由于本实施例三的系统所实现的处理及功能基本相应于前述图1所示的方法的实施例、原理和实例,故本实施例的描述中未详尽之处,可以参见前述实施例中的相关说明,在此不做赘述。

本发明实施例三提供的一种数据库集群数据迁移的系统,通过接收模块接收源端数据库集群采用批量调用点对点数据复制方式并行复制过来的全部数据;数据重分布模块采用insert select方式做数据重分布,将接收到的数据重新打散到计算节点上的技术方案,对源端数据库集群的CPU、磁盘IO资源消耗少,传输过程安全可靠;目的端数据库集群在并行复制完数据后,直接在数据库内部采用insert select的方式进行数据重分布,大幅提高了数据抽取、传输、加载的安全性和性能,大大节省了数据搬迁的时间,减少了对业务的影响。

实施例四

参照图8,图8示出了本发明提供的一种数据库集群数据迁移的系统400的一实施例的结构框图,包括:

并行复制模块41,用于采用批量调用点对点数据复制方式将全部数据并行复制到采用insert select方式做数据重分布,可将接收到的数据重新打散到计算节点上的目的端数据库集群中。

进一步的,如图9所示,所述并行复制模块41,包括:

第一并行复制单元411,用于在源端数据库集群采用批量调用数据库底层API接口复制方式,在目的端数据库集群中随机选取与所述源端数据库集群中的源端数据库服务器等量的目的端服务器,通过互信方式接收源端数据库集群中的源端数据库服务器并行复制的全部数据;

第二并行复制单元412,用于在源端数据库服务器并行复制过来的数据直接加载到目的端数据库服务器新建的schema下,采用quicklz压缩随机分布的方式将数据存储,通过insert select方式在目的端数据库服务器中做数据重分布,将接收到的数据重新打散到目的端数据库服务器计算节点上,并通过Greenplum内部的数据重分布机制,并行完成数据重分布工作。

进一步的,如图10所示,所述第一并行复制单元411,包括:

第一创建单元4111,用于在源端数据库集群与目的端数据库集群间采用交换机互联,创建安全互信;

第一并行复制子单元4112,用于在源端数据库集群中的源端数据库服务器并行抽取各个计算节点上的数据,批量导出DDL,目的端数据库集群中的目的端数据库服务器上创建与源端数据库服务器批量导出DDL对应的所有对象;通过源端数据库集群中部署的复制工具,将数据并行复制到目的端服务器的计算节点上。

进一步的,如图11所示,所述第一并行复制子单元4112,包括:

第一创建子单元41121,用于在源端数据库集群中的源端数据库服务器向目的端数据库集群发送需要进行数据迁移的对象列表,基于所述对象列表,目的端数据库集群创建与源端数据库服务器批量导出DDL对应的所有对象。

第二并行复制子单元41122,用于在源端数据库集群中部署的复制工具访问源端数据库服务器后台实例的复制接口,通过该接口批量抽取和加载数据,直接将源端数据库服务器上的数据并行复制到目的端数据库服务器上。

进一步的,还包括:第二关闭模块(图中未示),用于在目的端数据库集群承载业务后,关闭源端数据库集群的运行。

由于本实施例四的系统所实现的处理及功能基本相应于前述图2所示的方法的实施例、原理和实例,故本实施例的描述中未详尽之处,可以参见前述实施例中的相关说明,在此不做赘述。

本发明实施例四提供的一种数据库集群数据迁移的系统,通过并行复制模块采用批量调用点对点数据复制方式将全部数据并行复制到采用insert select方式做数据重分布,可将接收到的数据重新打散到计算节点上的目的端数据库集群中的技术方案,对源端数据库集群的CPU、磁盘IO资源消耗少,传输过程安全可靠;目的端数据库集群在并行复制完数据后,直接在数据库内部采用insert select的方式进行数据重分布,大幅提高了数据抽取、传输、加载的安全性和性能,大大节省了数据搬迁的时间,减少了对业务的影响。

以上所述的结构框图中所示的功能块可以实现为硬件、软件、固件或者它们的组合。当以硬件方式实现时,其可以例如是电子电路、专用集成电路(ASIC)、适当的固件、插件、功能卡等等。当以软件方式实现时,本发明的元素是被用于执行所需任务的程序或者代码段。程序或者代码段可以存储在机器可读介质中,或者通过载波中携带的数据信号在传输介质或者通信链路上传送。“机器可读介质”可以包括能够存储或传输信息的任何介质。机器可读介质的例子包括电子电路、半导体存储器设备、ROM、闪存、可擦除ROM(EROM)、软盘、CD-ROM、光盘、硬盘、光纤介质、射频(RF)链路,等等。代码段可以经由诸如因特网、内联网等的计算机网络被下载。

本发明可以以其他的具体形式实现,而不脱离其精神和本质特征。例如,特定实施例中所描述的算法可以被修改,而系统体系结构并不脱离本发明的基本精神。因此,当前的实施例在所有方面都被看作是示例性的而非限定性的,本发明的范围由所附权利要求而非上述描述定义,并且,落入权利要求的含义和等同物的范围内的全部改变从而都被包括在本发明的范围之中。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1