Oracle 迁移至 MySQL 的过程中遇到的一些问题及想法

【前言】

近年来,各大行业去O运动愈演愈烈,一方面是基于对数据库安全可控的考虑,另一方面分布式数据库逐渐占据了OLTP领域较大的市场,尤其在互联网领域,MySQL、PG等分布式数据库的应用非常广泛。

在进行Oracle向MySQL迁移时会遇到很多难点,那么,从Oracle迁移至MySQL会遇到哪些问题?这些问题是否能顺利解决?

一、为什么是MySQL?

MySQL具备如下优势:

丰富的实践经验和蓬勃生态,阿里等行业巨头已成功地使用MySQL替换Oracle并支撑了庞大的业务。

支持行锁和事务的Innodb存储引擎越来越强大,对于高并发下OLTP优势明显;

灵活的逻辑复制搭建主从可以在架构设计上有更多的空间。

丰富的开源中间件搭配MySQL可以提供更高的业务需求。

二、Oracle数据能否无损迁移至MYSQL数据库?

首先需要非常熟悉MySQL和Oracle的差别,如果单纯的考虑表的数据,那么需要详细对比不同数据的字段类型的兼容性。迁移前需要梳理清楚,应该就不会有太大问题。
另外需要考虑迁移后的维护问题,高可用的方案,而不是单纯的说无损迁移。
DSG的同步软件也能进行数据的迁移,但是在实际使用中,用DSG的来做全库的初始化效率稍微有点差。

三、Oracle数据库迁移至MYSQL过程中如何保障系统稳定性?

很大程度上取决于能多大程度上接受业务中断。

正式迁移前需要反复测试、试运行,尽可能保证正式迁移稳、准、快。如果业务允许可以尝试切割方式,分几次迁移,两边都同步运行一小段时间。

也可以在应用层面控制数据一致性,通过应用双写,确保异构数据库都能运行正常,最后停掉迁移之前的DB。

四、数据一致性还比较容易保证,业务逻辑(存储过程、触发器、自定义函数等)方面如何改造,兼容性如何保障?

遵循以下原则:

六、Oracle与 MySQL的 SQL语法有很多不兼容的地方,有哪些合适的工具可以快速完成 SQL的转换?

MySQL语法要完全兼容Oracle的语法是一件非常困难的事,目前业内兼容Oracle做的比较好的应该是EDB了。

阿里云号称兼容Oracle的PPAS实际上就是EDB,从实际的测试来看,也还是有很多不尽如人意的地方。

所以想完全实现自动转换,基本上没这个可能。不过部分的兼容是可以实现的,

七、Oracle与mysql 有些语法、数据类型等略有不同,迁移过去后是否必须要逐条修正?

迁移前期,Oracle 与 MySQL的 SQL语法兼容性,数据类型间的映射关系就要提前测试验证好。

原则就是在测试环境使用准生产数据进行不断地迁移演练,不断改善迁移中越到的类似问题。

八、Oracle数据库迁移至MySQL数据库后,上层应用是否需要修改,修改的方面有哪些?

是否需要修改以及修改哪些内容,这些都非常依赖目前应用是如何使用Oracle的。
不管什么业务和使用情况,都需要修改几点是:
1.数据类型。Oracle和MySQL不一样的地方。
2.访问数据源驱动。譬如JDBC。
3.部分SQL写法。

九、Oracle数据库迁移至MySQL数据库后,还能逆向回迁至Oracle数据库么?

理论上和实践上都是可以的。

posted on 2020-11-25 13:25  阿陶学长  阅读(177)  评论(0编辑  收藏  举报