本发明属于信息,具体涉及一种集群间数据迁移方法及自动化运维工具。
背景技术:
1、“大数据”时代的到来,对社会和人类的发展产生了不容忽视的影响,越来越多的行业向数据驱动转变,数据成为了“新”的生产力。从衣食住行到娱教医养,数据已经渗透到我们生活和工作的方方面面。依托于大数据发展的机器学习、人工智能等技术的热度更是居高不下。在这个数据信息爆炸式增长时代,快速的数据采集和精准的数据挖掘为高效的数据应用提供了必要条件;数据资产日益增长,数据在不同集群环境下的迁移同步,是作为数据库运维人员和开发人员需要关注的重点。
2、大数据产业发展迅速,基于mpp架构的greenplum新一代pb级分布式htap数据库,为越来越多的需要同时涉及oltp和olap的系统采用,但是相对来说相关运维工具的自动化还处于起步阶段。目前greenplum的dba门槛较高,相关运维任务执行成本也较重。本发明是从greenplum数据库集群的运维过程中总结经验和方法,封装了gpcopy工具,并提供了相应的可视化运维工具,较大地提升了集群间数据同步的效率,为greenplum集群运维体系的发展添砖加瓦。
技术实现思路
1、本发明的目的在于提升数据迁移的效率,降低相关任务执行成本,弥补现有数据迁移方法的不足,提出并开发一种集群间数据迁移方法及可视化运维工具,具体
技术实现要素:
如下。
2、一种集群间数据迁移方法,能够较大地降低迁移数据的成本;是基于greenplum数据库集群的任意两个集群间的数据迁移,数据迁移具体任务执行的实现方式及步骤如下:
3、步骤1:在django管理后台中添加集群信息、集群间单向关系信息、dba信息,分别用于存储待管理集群信息、集群间可执行数据迁移的单向关系、可执行数据同步任务的数据库管理人员;
4、集群信息:包括集群域名、集群端口、警告信息、详细备注和信息添加时间;
5、集群间单向关系信息:包括集群关系组、源数据集群和目标数据集群;
6、dba信息:包括姓名、账号密码、集群关系组权限和过期时间;
7、步骤2:登录并选择源数据集群;
8、通过登录者权限选择从可访问数据集群中选择源数据集群;
9、步骤3:选择源数据集群中的待同步数据库;
10、通过选择的源数据集群中查询可执行数据迁移的数据库的列表,从中选择一个数据库作为待同步数据库;
11、步骤4:根据选择的待同步数据库,以树形勾选框方式分层展示待同步schema或表;勾选schema默认勾选schema下所有的表;
12、步骤5:填写目标数据库名称;
13、可自定义目标数据库名称,格式为mdmaster_<租户名称>_<虚拟编码>_<环境标识>,例如:
14、待同步数据库名称为:
15、mdmaster_test_551_dev
16、目标数据库名称为:
17、默认mdmaster_test_551_dev与待同步数据库名称相同;
18、可修改为mdmaster_demo_552_test;
19、其中修改后的目标数据库可以是目标数据集群已存在的数据库,也可以是当前不存在的数据库,存在则根据数据迁移策略对目标数据集群中的数据进行同步,可选策略有:备份存量表并新建表结构并同步数据,保留表结构清空目标库数据并同步数据,追加数据。
20、步骤6:生成相应迁移命令脚本,创建任务记录,添加任务至celery任务队列,通过paramiko远程执行脚本;所述的任务类型包括即时任务或定时任务,其中定时任务需要选择执行时间,点击开始同步按钮添加待执行任务;即时任务立即开始执行;
21、通过celery队列限制同一时间、源数据集群的任务只允许单一任务执行;
22、步骤7:查询同步任务记录,记录内容包括:
23、①执行shell脚本完整内容;②执行操作者;③任务类型;④执行状态;⑤执行主机;⑥目标表文件;⑦集群代码;⑧时间与日志;
24、本发明还提供一种集群间数据迁移的可视化运维工具,该工具的技术架构共包含7大模块:集群信息管理模块、集群间关系模块、dba用户管理模块、任务创建模块、脚本命令模块、任务记录模块、消息队列模块。
25、所述的集群信息管理模块:通过后台新增、删除或禁用可执行数据迁移的集群的信息数据;
26、所述的集群间关系模块:根据集群关系组,描述集群间数据迁移方向的单向关系;
27、所述的dba用户管理模块:根据登录的数据库管理员不同的集群管理权限,展示可执行相关操作的集群信息;
28、所述的任务创建模块:即步骤3-6中所列举各操作步骤执行的可视化交互界面,具体先选择源数据集群中的待同步数据库,后以树形勾选框方式分层展示待同步schema或表;再填写目标数据库名称;最后生成相应迁移命令脚本,创建任务记录,添加任务至celery任务队列,通过paramiko远程执行脚本。
29、所述的脚本命令模块:根据添加的数据迁移任务的勾选填写的参数,生成可执行脚本命令;
30、所述的任务记录模块:添加的任务会记录并在执行开始后更新任务状态,查询任务执行日志;
31、所述的消息队列模块:将任务通过队列的方式,定时依次执行任务或即时执行任务。
32、所述可视化运维工具的执行方法如下:
33、执行方式1:通过访问集群管理页面,选择待迁移数据的对应集群;选择数据库后,勾选全量schema;执行数据迁移任务;
34、执行方式2:通过访问集群管理页面,选择待迁移数据的对应集群;选择数据库后,勾选部分数据表;执行数据迁移任务;
35、所述的执行方式中任务执行可选择定时或即时执行。
36、所述可视化运维工具的日志存储机制如下:
37、日志存储1:数据迁移脚本日志,执行结束后所有日志存储在gpadminlogs目录下按日期区分的gpcopy_<date>.log文件中,用户可自行查看,能够显示信息包括同步数据大小、同步数据时间、同步表信息;
38、同步表包括成功同步表、失败同步表。
39、日志存储2:数据迁移任务创建日志,执行结束后,执行日志存储在django服务所在机器的日志记录中,主要记录dba访问数据迁移工具页面日志和数据迁移任务创建交互日志。
40、本发明有益效果:
41、本发明通过封装工具gpcopy、抽象数据迁移方法,提出一种集群间数据迁移方法及可视化运维工具,并对集群存量数据库进行分类,编写适用于不同场景的数据迁移程序,开发出一种可定时或即时执行数据迁移的可视化运维工具。本发明通过步骤3-5的可视化方式,简化了dba管理数据集群键数据库迁移的复杂度;步骤6执行命令底层通过gpcopy实现了数据迁移的高效执行;步骤7通过执行迁移操作记录,做到了迁移动作信息可追溯。简化了数据迁移操作的同时,有利于提升数据迁移效率。
42、本方法及工具可定时执行数据迁移任务,便于选择合适的时间平抑数据峰谷,更合理利用网络带宽,降低执行数据同步任务的人员需要的技术门槛,极大地提升数据迁移的工作效率。
1.一种集群间数据迁移方法,其特征在于,该方法是实现基于greenplum数据库集群的任意两个集群间的数据迁移,数据迁移具体任务执行的实现方式及步骤如下:
2.根据权利要求1所述的一种集群间数据迁移方法,其特征在于,目标数据库是目标数据集群已存在的数据库,或是当前不存在的数据库,存在则根据数据迁移策略对目标数据集群中的数据进行同步。
3.根据权利要求2所述的一种集群间数据迁移方法,其特征在于可选的数据迁移策略有:备份存量表并新建表结构并同步数据,保留表结构清空目标库数据并同步数据,追加数据。
4.一种集群间数据迁移的可视化运维工具,其特征在于,该可视化运维工具的技术架构共包含7大模块:集群信息管理模块、集群间关系模块、dba用户管理模块、任务创建模块、脚本命令模块、任务记录模块、消息队列模块。
5.如权利要求4所述的一种集群间数据迁移的可视化运维工具,包含对所述可视化运维工具的执行方法如下:
6.如权利要求5所述的一种集群间数据迁移的可视化运维工具,包含对所述可视化运维工具的执行方法如下:
7.如权利要求4所述的一种集群间数据迁移的可视化运维工具,包含对所述可视化运维工具的日志存储机制如下: