各位新朋友~记得先点蓝字关注我哦~
最近有越来越多的客户关心异构数据库之间的迁移,为了缩短迁移时的停机时间,OGG就成为了一种非常棒的方案。于是小编最近潜心研究了一段时间的mysql数据库到oracle数据库的OGG配置。
此次实验测试的是从mysql5.6出发同步到oracle11.2.0.4。
注:mysql5.6需要ogg12.1.2以及更高的版本才支持。此前的版本仅支持mysql5.1-5.5。小伙伴们自己测试的时候可要注意别下错版本哦!
此次实验分为以下五个步骤
一、mysql数据库所需前提条件:
二、mysql服务器端配置过程:
三、oracle数据库所需前提条件:
四、oracle服务器端配置过程:
五、数据初始化
1
mysql数据库所需前提条件
1.mysql数据库需要开启二进制日志(需要重启数据库),开启方法如下:
vi /etc/my.cnf(加入下面两行参数)
重启mysql数据库生效,开启二进制日志是ogg能够挖掘mysql数据库的前提条件,务必提前开启。
2.一个供ogg软件使用的数据库用户(需要赋予目标数据库的所有权限)
2
mysql服务器端配置过程
1.配置挖掘进程
add extract ext_ms,tranlog,begin now
add exttrail ./dirdat/ms,extract ext_ms
edit param ext_ms
2.配置传输进程
add extract dmp_ms,exttrailsource ./dirdat/ms
add rmttrail ./dirdat/ms,extract dmp_ms
edit params dmp_ms
3.生成defgen文件(数据定义文件,在异构ogg中是必须的)
edit params defgen
./defgen paramfile dirprm/defgen.prm
4.将生成的defgen文件传输到目标端
scp /ogg_ms/dirdef/defgen.prm oracle@192.168.152.22:/odc/dirdef/
3
oracle数据库所需前提条件
1. 一个供ogg软件使用的数据库用户
4
oracle服务器端配置过程
1.创建checkpoint表(使用ogg管理用户登录数据库,运行ogg软件目录下chkpt_ora_create.sql脚本)
sqlplus odc/odc
@/odc/chkpt_ora_create.sql
2.配置管理进程
edit param mgr
3.配置应用进程
dblogin userid odc password odc
ADD CHECKPOINTTABLE odc.checkpointtable
add replicat rep_ms exttrail ./dirdat/ms CHECKPOINTTABLE odc.checkpointtable
edit param rep_ms
5
数据初始化
1.mysql端配置初始化进程
edit params msinit
add extract msinit,sourceistable
2.oracle端配置初始化进程
edit params msinit
add replicat msinit,specialrun
3.目标端创建表结构
小编使用的方法是通过navicat将mysql的表结构导出成对应的oracle表结构,再导入到oracle数据库。
4.启动初始化进程
start msinit
总结
其实异构之间ogg的配置并不复杂。与同平台ogg配置相比,主要难点在于如何进行第一次数据初始化。本次实验使用了ogg自身的初始化进程来完成这一步骤,但这种方式在数据量较大的时候效率会非常低下。
当数据量较大时,可以借助复制一个mysql中间库的方式来完成数据的初始化。通过mysql中间库,整体初始化的时间会显著缩短,但相对的过程也会比较复杂。之后小编会详细的介绍一下如何通过mysql中间库来完成适用性更高、速度更快的异构ogg初始化!
美创运维中心数据库服务团队拥有Oracle ACE 1人、OCM 10余人、数十名Oracle OCP、MySQL OCP、红帽RHCA、中间件weblogic、tuxedo认证、达梦工程师 ,著有《Oracle DBA实战攻略》,《Oracle数据库性能优化方法和最佳实践》,《Oracle内核技术揭秘》等多本数据运维优化书籍。目前运维各类数据库合计2000余套,精通Oracle、MySQL、SQLServer、DB2、PostgreSQL、达梦等主流商业和开源数据库。并成为首批国内达梦战略合作伙伴之一,拥有海量经验和完善的人员培养体系。并同时提供超融合,私有云整体解决方案。