mysql转oracle工具_稳住!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。

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

遵循以下原则:

1bff11b3679075d4bc0dfa1a60bc42b9.png 五、Oracle迁移至 MYSQL表的限制、数据类型映射关系,如何处理? Oracle->MySQL的对照表:
MySQLOracle
bigintnumber(19,0)
bitraw
blobblob,raw
charchar
datedate
datetimedate
decimalfloat(24)
doublefloat(24)
enumvarchar2
floatfloat
六、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数据库么? 理论上和实践上都是可以的。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值