开发者必看!你想知道的迁移之道都在这里了

摘要:数据库迁移的目的是为了业务迁移,而业务能否顺利切换取决于数据库的迁移能力和迁移后的准确性,站在业务侧的角度,至少要满足以下三个正确性才能够去做业务的切换。

本文分享自华为云社区《华为云GaussDB(for openGauss)专场直播第4期:用对迁移工具,迁移也可以很简单》,原文作者:心机胖 。

1.背景介绍

随着GaussDB(for openGauss)数据库的不断发展,越来越多的客户开始选择使用GaussDB(for openGauss),其中很大一部分客户是将现有的系统替换到GaussDB(for openGauss)上,客户当前所用的数据库类型多种多样,如Oracle、MySQL、PostgreSQL等。那么如何解决将客户当前数据库迁移到GaussDB(for openGauss)上是一个很迫切的需求。GaussDB(for openGauss)自带的GDS数据迁移工具实现了GaussDB(for openGauss)之间的高效数据迁移,但是无法解决异构同步和实时同步的场景。华为云数据库迁移工具DRS以一种易用、稳定、高效的云服务为GaussDB(for openGauss)提供了异构迁移和实时同步的能力,助力客户轻松将数据库迁移到GaussDB(for openGauss)。

2.数据库迁移整体解决方案

数据库迁移的目的是为了业务迁移,而业务能否顺利切换取决于数据库的迁移能力和迁移后的准确性,站在业务侧的角度,至少要满足以下三个正确性才能够去做业务的切换。

对象迁移是正确的

数据库的存储过程、函数、触发器、表结构、索引等全部数据库对象能够完整的迁移到目标库,并且能够保证对象的运行逻辑和源库是一致的。

数据迁移是正确的

将源库的全量数据迁移到目标库,当业务对停机时间窗口有要求的时候,要考虑全量+增量的在线迁移,保证业务不中断。同时要能够对同步的数据进行校验,保证迁移数据的准确性。

迁移后业务运行是正确的

当对象和数据都迁移到目标库后,业务的切换还存在两个风险点,一个是业务在目标库的运行结果是否正确,另一个是目标库性能能否和源库一样支撑住业务的负载。因为异构数据库之间的差异还是很大的,设计理念和实现方式存在很多不同,会导致看上去类似的两个对象,其运行结果或效率是完全不同的。所以要有工具来验证这种差异,保证迁移后业务运行的正确性。

为了实现以上业务切换需要满足的条件,华为云提供了数据库迁移的整体解决方案,通过语法迁移(UGO),DRS-数据迁移,DRS-数据校验和DRS-流量回放4个工具产品形成了整个迁移过程的闭环。

开发者必看!你想知道的迁移之道都在这里了

语法迁移(UGO)

实现了将oracle数据库对象迁移到GaussDB(for openGauss)的能力,可以给出完整的迁移评估报告,哪些对象可以完全兼容的进行迁移,哪些对象需要进行转换进行迁移,哪些对象需要业务配合改造。

DRS-数据迁移

实现将Oracle、MySQL、PostgreSQL等数据库数据实时迁移到GaussDB(for openGauss)的能力。

DRS-数据校验

实现了对数据迁移后的一致性校验,具备行级比对、内容级比对和实时的增量数据比对的能力。

DRS-流量回放

实现对Oracle数据库的业务流量抓取,并对流量SQL进行转换,然后在GaussDB(for openGauss)进行回放的能力。

3.DRS数据迁移上云

开发者必看!你想知道的迁移之道都在这里了

DRS提供了简单、易用的操作界面,采用流程化的配置方式,客户按照提示步骤一步一步操作便可以搭建出同步链路。DRS除了支持Oracle到GaussDB(for openGauss)的数据迁移外,还支持其他数据库之间的数据同步,下面给出了当前DRS所支持的源库和目标库类型的列表。

开发者必看!你想知道的迁移之道都在这里了

在数据迁移过程中,DRS采用很多手段和技术去降低可能存在的风险,保证迁移过程的稳定和最终数据的一致性。

在线迁移

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zyjysf.html