[发明专利]一种异构数据库迁移方法、装置及存储介质有效
| 申请号: | 202010692087.9 | 申请日: | 2020-07-17 |
| 公开(公告)号: | CN111984621B | 公开(公告)日: | 2022-08-30 |
| 发明(设计)人: | 吕江博 | 申请(专利权)人: | 新华三大数据技术有限公司 |
| 主分类号: | G06F16/21 | 分类号: | G06F16/21;G06F16/22;G06F16/25 |
| 代理公司: | 暂无信息 | 代理人: | 暂无信息 |
| 地址: | 450000 河南省郑州市郑州高*** | 国省代码: | 河南;41 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 数据库 迁移 方法 装置 存储 介质 | ||
本公开提供一种异构数据库迁移方法、装置及存储介质,用于解决异构数据库迁移效率低、不稳定等技术问题。本公开基于源表之间的依赖关系及数据量对源表进行分组,并通过多个迁移任务并行执行源数据库的导出及向目的数据库的导入步骤。在数据导出和导入过程中迁移的数据不落地,直接通过内存缓存分批导入,提高了迁移的效率。在迁移中断的情况下,可查找到中断时迁移的偏移量,重新迁移时基于偏移量增量迁移,提高了迁移的稳定性。
技术领域
本公开涉及数据库技术领域,尤其涉及一种异构数据库迁移方法、装置及存储介质。
背景技术
在现代企业的业务系统中,关系型数据库(Relation Database Manage System,RDBMS)在数据存储中仍然占据着最为重要的地位。随着企业业务的扩展,业务系统不断增加,会使用到多种不同的RDBMS。此时如果需要对不同业务系统的数据进行整合分析,或者是更换数据库,都面临着异构数据库的迁移需求。
PostgreSQL、Oracle、SQL server等关系型数据库,在企业中被广泛应用,因此这些数据库都面临着异构数据库迁移的需求。数据库迁移是一个将数据从源端数据库传送到目标端数据库的过程,在常规的处理方法中,数据库管理员(DBA)需要先将源端数据库的数据备份出来,然后进行手动的语法适配(将源端的数据库的SQL语法转换为目标端数据库的SQL语法),然后传输到目标端数据库所在服务器,再导入目标端数据库。这个过程的弊端在于过程繁琐复杂,耗时长,占用资源多、容易出错导致迁移失败。
发明内容
有鉴于此,本公开提供一种异构数据库迁移方法、装置及存储介质,用于解决异构数据库迁移效率低、不稳定等技术问题。
基于本公开一实施例,本公开提供了一种异构数据库迁移方法,包括:
对源数据库中待迁移的源表进行分组,将具有依赖关系的源表分在同一分组中且将被依赖的源表放在依赖该被依赖的源表的前面;
根据分组数量生成相同数量的迁移任务,所述迁移任务并行运行;
所述迁移任务将分组内的源表依顺序导出为SQL部分和表内数据部分,并根据预设的源数据库和目的数据库之间的SQL语法映射关系对SQL部分进行SQL语法转换;
迁移任务首先执行SQL部分,然后再将表内数据部分导入到目的数据库中。
基于本公开实施例,进一步地,该方法还包括:
在基于依赖关系对源表进行分组的基础上,还根据每个源表的大小,均衡每个分组的数据量。
基于本公开实施例,进一步地,所述SQL部分和表内数据部分缓存在内存中,迁移任务直接从内存中读取缓存的SQL部分和表内数据部分并进行导入操作。
基于本公开实施例,进一步地,该方法还包括:
在执行向目的数据库导入表内数据的操作中断的情况下,从目的数据库中获取目的表的最新写入位置信息,根据目的表的最新写入位置信息确定源表的表内数据中断位置,从中断位置继续执行导入操作。
基于本公开实施例,进一步地,通过预先编写的自动化执行脚本,自动执行所述源表分组、对SQL部分进行SQL语法转换以及导入步骤。
基于本公开实施例,进一步地,本公开还提供了一种异构数据库迁移装置,该装置包括:
分组模块,用于对源数据库中待迁移的源表进行分组,将具有依赖关系的源表分在同一分组中且将被依赖的源表放在依赖该被依赖的源表的前面;
任务模块,用于根据分组数量生成相同数量的迁移任务,所述迁移任务并行运行;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于新华三大数据技术有限公司,未经新华三大数据技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010692087.9/2.html,转载请声明来源钻瓜专利网。





