使用OGG 21c迁移Oracle 12c到MySQL 8.0并配置实时同步

0    996    4

Tags:

👉 本文共约2257个字,系统预计阅读时间或需9分钟。

类似文章

OGG有传统的经典架构,也有最新的微服务,2个都可以远程捕获和应用数据,对数据库服务器是0侵入,而传统的经典架构是纯命令行模式,最新的微服务架构是图形化界面操作,几乎所有操作都可以在界面进行。相关文章可以参考:

环境准备

使用OGG 21c迁移Oracle 12c到MySQL 8.0并配置实时同步

Oracle端数据初始化

最终,在Oracle端共包括16张表,2个视图,其中2个表TSRSLOB和IMAGE_LOB包括了blob和clob字段。

生成MySQL端DDL语句

可以使用Navicat的数据传输功能或其它工具直接从Oracle端生成MySQL类型的建表语句如下:

DDL语句如下:

Oracle ogg基本配置

本人提供Oracle(OCP、OCM)、MySQL(OCP)、PostgreSQL(PGCA、PGCE、PGCM)等数据库的培训和考证业务,私聊QQ646634621或微信db_bao,谢谢!

MySQL ogg基本配置

Oracle全量同步到MySQL

注意:在此阶段,源端需要停业务,不能产生新数据。

同步过程:

可以发现“Record”记录在变化,同时查询MySQL端的表数据量,会发现行数在不断增大:

大概7分钟之后,同步完成,查看日志:

全量数据同步完成。

校验基本数据量

使用OGG 21c迁移Oracle 12c到MySQL 8.0并配置实时同步

使用OGG 21c迁移Oracle 12c到MySQL 8.0并配置实时同步

校验LOB数据

可以看到,clob和blob内容都已成功同步!!!

使用OGG 21c迁移Oracle 12c到MySQL 8.0并配置实时同步

配置Oracle到MySQL的实时同步

Oracle端

MySQL端

测试同步

测试BLOB和CLOB

Oracle端测试:

查看OGG统计信息:

可以看到,数据会实时同步,BLOB和CLOB都已经同步了。

使用OGG 21c迁移Oracle 12c到MySQL 8.0并配置实时同步

Oracle端压测

可见,数据是实时同步的。

使用OGG 21c迁移Oracle 12c到MySQL 8.0并配置实时同步

总结

1、全量初始化会将视图的数据也同步,所以,需要排除视图:

2、OGG从12.2开始就不再需要配置defgen表结构文件了

3、若全量同步失败,则需要truncate掉MySQL的数据,从头开始同步

4、初始化全量同步的时候,Oracle的clob和blob会全部同步,但是在实时同步时,blob会报错,“OGG-05798 Write LOB column segment operation (token 0x23) detected at trail file /oggoracle/dirdat/eo000000000, RBA 2759, for table LHR.IMAGE_LOB, column T_IMAGE. Write LOB column segment operation is not supported for this target.” 。 其实blob的内容已经捕获到了,只是不能写入MySQL而已。

解决办法为,在源端添加如下参数,然后重新抽取:

5、另外,迁移oracle到MySQL,也可以直接使用Navicat工具进行整体迁移,已在真实项目中使用过,若有任何问题,可以私聊麦老师。

标签:

Avatar photo

小麦苗

学习或考证,均可联系麦老师,请加微信db_bao或QQ646634621

您可能还喜欢...

发表回复

嘿,我是小麦,需要帮助随时找我哦。
  • 18509239930
  • 个人微信

  • DB宝
  • 个人邮箱
  • 点击加入QQ群
  • 个人微店

  • 回到顶部