环境介绍
软件安装
# For advice on how to change settings please see# http://dev.mysql.com/doc/refman/5.7/en/server-configuration-defaults.html[mysqld]## Remove leading # and set to the amount of RAM for the most important data# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.# innodb_buffer_pool_size = 128M## Remove leading # to turn on a very important data integrity option: logging# changes to the binary log between backups.# log_bin## Remove leading # to set options mainly useful for reporting servers.# The server defaults are faster for transactions and fast SELECTs.# Adjust sizes as needed, experiment to find the optimal values.# join_buffer_size = 128M# sort_buffer_size = 2M# read_rnd_buffer_size = 2Mdatadir=/var/lib/mysqlsocket=/var/lib/mysql/mysql.sockserver_id=1innodb_flush_log_at_trx_commit=1sync_binlog=1log-bin=mysql-binbinlog_format=rowslave_skip_errors = allmax_connections = 65535max_connections = 1000table_open_cache = 128kmax_allowed_packet = 52Mbinlog_cache_size = 1Mmax_heap_table_size = 64Mread_buffer_size = 2Mread_rnd_buffer_size = 16Msort_buffer_size = 16Mjoin_buffer_size = 8Mquery_cache_size = 64Mquery_cache_limit = 2M# Disabling symbolic-links is recommended to prevent assorted security riskssymbolic-links=0log-error=/var/log/mysqld.logpid-file=/var/run/mysqld/mysqld.pid

选择对应的Oracle版本

配置Oracle到MySQL的进程
#以下为Oracle服务器的配置#添加表附加日志,我这里添加过了。所以显示already enabled for table OGG.STUDENTGGSCI (oracle) 52> dblogin userid ogg,password oggSuccessfully logged into database.GGSCI (oracle) 53> add trandata ogg.studentLogging of supplemental redo log data is already enabled for table OGG.STUDENT.GGSCI (oracle) 54>#配置globalGGSCI (oracle) 54> edit params ./GLOBAL#添加文件内容如下ggschema ogg#创建管理进程,并启动GGSCI (oracle) 56> edit param mgr#添加文件内容如下port 8006dynamicportlist 8006-8010autorestart er *, retries 5, waitminutes 3purgeoldextracts /home/ogg/dirdat/**,usecheckpoints,minkeepfiles 10LAGREPORTHOURS 5LAGINFOMINUTES 10LAGCRITICALMINUTES 15#启动GGSCI (oracle) 57> start mgr#查看状态GGSCI (oracle) 58> info all#可以看到状态为running#创建extract进程,并启动GGSCI (oracle) 59> edit params ext1#文件内容extract ext1setenv(NLS_LANG = "SIMPLIFIED CHINESE.AL32UTF8")userid ogg,password oggexttrail ./dirdat/e1table ogg.student;#table后面的分号要注意GGSCI (oracle) 60> add extract ext1,tranlog,begin nowGGSCI (oracle) 61> add exttrail ./dirdat/e1,extract ext1#查看GGSCI (oracle) 62> info all#此时可以看到有个EXTRACT(EXT1)stopped#启动GGSCI (oracle) 63> start ext1#创建pump进程,并启动GGSCI (oracle) 64> edit params push#文件内容extract pushsetenv(NLS_LANG = "SIMPLIFIED CHINESE.AL32UTF8")passthruuserid ogg,password oggrmthost 目标数据库服务器IP,mgrport 8006rmttrail /root/ogg/dirdat/e1table ogg.student;#exttrailsource /home/ogg/dirdat/e1 路径与ext1进程抽取到的数据路径一致GGSCI (oracle) 65> add extract push,exttrailsource /home/ogg/dirdat/e1#rmttrail /root/mysql/ogg/dirdat/e1 路径与mysql端获取数据的路径一致GGSCI (oracle) 66> add rmttrail /root/ogg/dirdat/e1,extract pushGGSCI (oracle) 67> info all#此时可以看到有个EXTRACT(PUSH)stopped#启动GGSCI (oracle) 68> start push#创建要同步的表的定义#创建参数文件GGSCI (oracle) 69> edit param test#文件内容defsfile ./dirdef/test.defuserid ogg, password oggtable ogg.student;GGSCI (oracle) 70> exit#生成表定义文件./defgen paramfile ./dirprm/test.prm#此时在目录dirdef生成文件test.def#传至目标库目录scp /home/oracle/ogg/dirdef/test.def root@目标数据库服务器IP:/root/ogg/dirdef/#以下是MySQL服务器的配置#以下配置mgr在配置Oracle到MySQL的P进程之前就要配置好并且启动否则会报错#创建管理进程,并启动GGSCI (mysql) 2> edit param mgr#文件内容port 8006dynamicportlist 8006-8010autorestart er *, retries 5, waitminutes 3purgeoldextracts /root/ogg/dirdat/**,usecheckpoints,minkeepfiles 10LAGREPORTHOURS 5LAGINFOMINUTES 10LAGCRITICALMINUTES 15#启动GGSCI (mysql) 3> start mgr#配置globalGGSCI (mysql) 4> edit params ./GLOBALS#文件内容ENABLEMONITORINGGGSCI (mysql) 5> edit params ./globals#文件内容checkpointtable test.checkpoint_table#配置检查点#登录GGSCI (mysql) 6> dblogin sourcedb test@MySQL数据库IP:3306 userid ogg password Root!!2018#配置检查点GGSCI (mysql) 7> add checkpointtable test.checkpoint_table#查看检查点GGSCI (mysql) 8> info checkpointtable test.checkpoint_table#创建replicat进程并启动GGSCI (mysql) 9> edit params REP1#文件内容replicat rep1sourcedefs /root/ogg/dirdef/test.defTARGETDB test@MySQL数据库IP:3306,userid ogg,password Root!!2018reperror default,discarddiscardfile /root/ogg/dirrpt/rep1.dsc,append,megabytes 50allownoopupdatesmap ogg.student,target test.student;GGSCI (mysql) 10> add replicat rep1,exttrail /root/ogg/dirdat/e1,checkpointtable test.checkpoint_table#启动GGSCI (mysql) 11> start rep1
配置MySQL到Oracle的进程
#以下是MySQL服务器的配置GGSCI (mysql) 1> edit param ggext#文件内容extract ggextsetenv (MYSQL_HOME=”/usr/share/mysql”)tranlogoptions altlogdest /var/lib/mysql/mysql-bin.indexsourcedb test@MySQL服务器IP:3306,userid ogg,password Root!!2018exttrail /root/ogg/dirdat/mydynamicresolutiongettruncatestable test.student;GGSCI (mysql) 2> add extract ggext,tranlog,begin nowGGSCI (mysql) 3> add exttrail /root/ogg/dirdat/my,extract ggextGGSCI (mysql) 4> edit param ggpump#文件内容extract ggpumprmthost 目标数据库服务器,mgrport 8006rmttrail /home/ogg/dirdat/mypassthrugettruncatestable test.student;GGSCI (mysql) 5> add extract ggpump,exttrailsource /root/ogg/dirdat/myGGSCI (mysql) 6> add rmttrail /home/ogg/dirdat/my,extract ggpump#异构平台配置defgenGGSCI (mysql) 7> edit params defgen#文件内容defsfile /root/ogg/dirdef/defgen.prmsourcedb test@MySQL服务器IP:3306,userid ogg,password Root!!2018table test.student;#exit退出ogg命令界面,执行一下语句./defgen paramfile ./dirprm/defgen.prm#创建之后将产生的defgen.prm文件传到Oracle ogg的dirdef目录下scp /root/mysql/ogg/dirdef/defgen.prm root@Oracle服务器IP:/home/ogg/dirdef启动extract和pump进程GGSCI (mysql) 8> start EXTRACT GGEXTGGSCI (mysql) 9> start EXTRACT GGPUMP#以下是Oracle服务器的配置#配置p进程GGSCI (oracle) 2> dblogin userid ogg password oggSuccessfully logged into database.GGSCI (oracle as ogg@orcl) 3> add checkpointtable ogg.checkpoint_tableGGSCI (oracle as ogg@orcl) > edit param ./GLOBALS#文件内容checkpointtable ogg.CHECKPOINT_TABLEGGSCI (oracle as ogg@orcl) 5> edit param ggrep#文件内容replicat ggrepsourcedefs /home/ogg/dirdef/defgen.prmuserid ogg,password oggreperror default,discarddiscardfile /home/ogg/dirrpt/ggrep.dsc,append,megabytes 50dynamicresolutionmap test.student, target ogg.student;GGSCI (oracle as ogg@orcl) 6> add replicat ggrep,exttrail /home/ogg/dirdat/my,checkpointtable ogg.checkpoint_tableGGSCI (oracle as ogg@orcl) 7> start replicat ggrep

完成以上的步骤后。MySQL服务器的进程如下图所示:

测试数据同步
通过MySQL连接工具加一条id为5的数据

可以看到Oracle数据库也有同样一条数据被插入了

在Oracle数据库插入一条id为6的数据

可以看到MySQL数据也同样被插入了一条数据

软件下载链接地址
写在最后

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





