暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

解决方案丨从 Oracle 到 TiDB 的迁移方案与实践

TiDB Club 2023-05-28
1955

⬆️点击图片,立即试用 TiDB 企业版


近年来,科技创新、科技自立自强已作为重要发展战略,中国数据库市场正迎来发展的黄金窗口期。在 IT 基础设施之中,数据库作为三大基础软件之一,承载了各类业务系统的不同种类数据,如客户信息类、交易流水类、用户行为类等,通过对底层数据库的国产化替换和迁移,为企业 IT 系统的自主创新奠定坚实的基础。


当前,全球数字化浪潮推动数字经济与实体经济融合,更多的企业意识到数据平台对业务增长和创新的重要性。通过国产化迁移和替换数据库,中国数据库市场蓬勃发展,为企业自主创新奠定了基础。


中国人寿财险公司为例,从 Oracle 到 TiDB 分布式数据库的迁移共经历了四个阶段,金融行业对数据库的要求较高,通过严格的切换演练和全方位的运维保障,帮助中国人寿财险公司顺利完成迁移,展示出国产数据库的应用价值,进一步体现了 TiDB 分布式数据库亮眼性能。


下面我们将主要聚焦对源端 Oracle 及 Oralce 上应用服务的信息收集,帮助指导迁移可行性判断与工作量评估。

01

Oracle信息收集、分析与迁移评估

1. 挑战

由于存在大量不兼容的特性,Oracle 到 TiDB 的迁移是一项耗时且成本较高的任务。在着手改造和迁移之前,应划定迁移范围,并估算迁移工期和成本。因此 Oracle 数据库与应用的信息收集尤为关键,而这需要多个团队协作完成。

2. 解决方案

虽然 PingCAP 提供了 Oracle 数据库对象评估工具,但在一个成功的异构数据库迁移项目中,以下工作是必不可少的:

1、过滤掉明显不适合的场景

2、应用侧信息收集

3、运维侧信息收集


点击此处查看原文


02

数据库对象改造与应用适配

本阶段工作主要集中在应用改造与数据库对象改造上,对于某些异构数据库不兼容的特性,还需通过重构应用的方式来进行迁移。

1. 挑战

从 Oracle 迁移到 TiDB 的主要流程为:Oracle 信息收集、分析与工作量评估 ,数据库对象改造与应用适配,数据迁移与生产切换。数据库对象改造与应用适配是整个迁移中工作量最大、成本最高的部分。对于某些年代久远的应用,往往只能借助应用更新换代的契机来进行数据库迁移替换。

2. 解决方案

TiDB 兼容 MySQL 5.7 的语法与行为,部分不兼容特性,已经在 官网文档 中标出,Oracle 到 TiDB 的数据库对象改造应用适配中的大部分工作,可以参考 Oracle 到 MySQL 的方式进行迁移改造。


一、数据库对象改造

Schema 改造:PingCAP 提供 Oracle 表结构转换到 TiDB 表结构的自动化工具,该工具的字段转换规则总结于 PingCAP 过往实施的客户项目,用户也可以根据自己的需求对字段转换规则进行配置。需要注意的是,Schama 转换可能是有损的,需要去除 TiDB 不支持的特性,比如外键,比如有些超出 TiDB timestamp 类型最大精度的 Oracle timestamp 记录需要阶段后几位精度,等等。

物化视图改造:用实体表替代,数据处理逻辑和数据加载需要在数据库之外实现。

dblink 改造:用实体表代替,数据通过第三方 CDC 工具(如 DSG、OGG 等)加载。

......

点击此处查看原文

03

数据迁移与生产切换

本阶段主要工作包含数据迁移、数据校验、系统测试、生产流量验证、切换方案和回退方案制定、以及生产切换等。

1. 挑战

从 Oracle 迁移到 TiDB 的主要流程为: Oracle 信息收集、分析与工作量评估 , 数据库对象改造与应用适配 ,数据迁移与生产切换。数据迁移与生产切换是最需要多团队紧密合作的一个阶段,它直接决定了生产切换的成功与否。

2. 解决方案

本阶段的主要工作内容如下:

一、数据迁移

初步选定全量数据迁移工具和增量数据迁移工具,在上一阶段已经完成的上下游数据库数据模型匹配工作的基础上进行数据迁移性能测试。在评估出全量数据迁移性能和增量数据迁移工具性能状况后,根据业务对于停机时间的要求,确定在停机窗口采用全量迁移还是采用提前迁移全量数据并接入增量数据复制的方案,后者在停机窗口只需等待复制数据追平即可完成数据复制。PingCAP 提供多种可选的 Oracle 到 TiDB 的全量与增量数据复制方案。


二、数据校验

有别于一些同构数据库的基于 redo log 的物理复制技术,异构数据库的数据复制正确性难以保障,因此在数据迁移完成后,需要进行数据校验以确保复制的准确性,及时的对数据不一致进行修复。除简单的总行数校验之外,还应当具备对完整数据内容进行校验的能力。PingCAP 提供的 Oracle 与 TiDB 数据校验工具提供以下功能:

1.静态全量数据比对

2.运行中的全量数据快照比对(Oracle SCN 匹配 TiDB snapshot)

3.不同库名表名的表数据比对

4.部分行比对

5.部分列比对

6.无主键、唯一索引表的数据比对

7.支持生成下游库修复 sql

.....

点击此处查看原文


⬆️点击图片,立即试用 TiDB 企业版

文章转载自TiDB Club,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论