文档章节

OGG ORACLE TO MYSQL配置方法

boydreaming
 boydreaming
发布于 2016/01/12 13:30
字数 2362
阅读 800
收藏 2


一、源为ORACLE 11g,目的 MYSQL 5.6

二、从http://download.oracle.com/  找到并下载相应安装包,直接释放到相应目录。建设全用root,数据库也用dba。因为可能要改系统参数。

三、ORACLE端配置

     系统环境配置

      #sqlplus /nolog

      SQL>conn  / as sysdba

      SQL>ARCHIVE LOG LIST  查看归档状态

      SQL> ALTER DATABASE ARCHIVELOG;  设成归档模式

      如果已启动ORACLE,可能需要关闭再设置。

       SQL>SHUTDOWN IMMEDIATE;

       SQL>STARTUP MOUNT;

       SQL> ALTER DATABASE ARCHIVELOG; 

       SQL> ALTER DATABASE OPEN;

       打开辅助日志

       SQL> ALTER DATABASE ADD supplemental log data;

        关闭回收站

        SQL>alter system set recyclebin=off deferred;

--创建相应表空间

SQL>create tablespace oggtbs datafile '/u01/app/oracle/oradata/onimei1/oggtbs01.dbf' size 500M autoextend on;

--授权

SQL>create user ggs identified by ggs default tablespace oggtbs;

SQL>GRANT create table to ggs;

SQL>GRANT CONNECT TO ggs;

SQL>GRANT ALTER ANY TABLE TO ggs;

SQL>GRANT ALTER SESSION TO ggs;

SQL>GRANT CREATE SESSION TO ggs;

SQL>GRANT FLASHBACK ANY TABLE TO ggs;

SQL>GRANT SELECT ANY DICTIONARY TO ggs;

SQL>GRANT SELECT ANY TABLE TO ggs;

SQL>GRANT RESOURCE TO ggs;

SQL>GRANT DELETE ANY TABLE TO ggs;

SQL>GRANT INSERT ANY TABLE TO ggs;

SQL>GRANT UPDATE ANY TABLE TO ggs;

SQL>GRANT RESTRICTED SESSION TO ggs; 

SQL> @sequence.sql 
根据提示输入(以下导入也是):ggs

SQL> @marker_setup.sql 

SQL> @ddl_setup.sql 

SQL>@role_setup.sql 

SQL> grant GGS_GGSUSER_ROLE to ggs; 

SQL> @ddl_enable.sql 

10g需要安装dbms_share_pool包: 

SQL> @?/rdbms/admin/dbmspool.sql 

SQL> @ddl_pin ggs; 

SQL>QUIT;

#sqlplus /nolog

SQL>conn ggs/ggs

SQL>CREATE TABLE TEST (ID INT,NAME VARCHAR(50),TESTDATE DATE,PRIMARY KEY(ID));

SQL>QUIT;

GGS全局变量配置 

  #./ggsci

  GGSCI (ora11g) >CREATE SUBDIRS

在源库上执行: 

GGSCI (ora11g) 2> EDIT PARAMS ./GLOBALS

在编辑模式下输入并保存:ggschema ggs

GGSCI (ora11g) 1> dblogin userid ggs password ggs

Successfully logged into database.

GGSCI (ora11g) 3>  edit param mgr

PORT 7809

DYNAMICPORTLIST 7810-7909

--AUTOSTART ER *

AUTORESTART EXTRACT *,RETRIES 5,WAITMINUTES 3

PURGEOLDEXTRACTS ./dirdat/*,usecheckpoints, minkeepdays 3

LAGREPORTHOURS 1

LAGINFOMINUTES 30

LAGCRITICALMINUTES 45

MANAGER进程参数配置说明:

PORT:指定服务监听端口;这里以7809为例,默认端口为7809

DYNAMICPORTLIST:动态端口:可以制定最大256个可用端口的动态列表,当指定的端口不可用时,管理进程将会从列表中选择一个可用的端口,源端和目标段的Collector、Replicat、GGSCI进程通信也会使用这些端口;

COMMENT:注释行,也可以用--来代替;

AUTOSTART:指定在管理进程启动时自动启动哪些进程;

AUTORESTART:自动重启参数设置:本处设置表示每3分钟尝试重新启动所有EXTRACT进程,共尝试5次;

PURGEOLDEXTRACTS:定期清理trail文件设置:本处设置表示对于超过3天的trail文件进行删除。

LAGREPORT、LAGINFO、LAGCRITICAL:

定义数据延迟的预警机制:本处设置表示MGR进程每隔1小时检查EXTRACT的延迟情况,如果超过了30分钟就把延迟作为信息记录到错误日志中,如果延迟超过了45分钟,则把它作为警告写到错误日志中。

GGSCI (ora11g) 6> start mgr

Manager started.

GGSCI (ora11g) 7> info all

Program     Status      Group       Lag at Chkpt  Time Since Chkpt

MANAGER     RUNNING

添加并查看需要复制的表:

GGSCI (ora11g) 8> ADD TRANDATA ggs.test

GGSCI (ora11g) 9> info trandata ggs.*

配置抽取进程

GGSCI (ora11g) 11> edit params ext3

extract ext3

dynamicresolution

userid ggs,password ggs

exttrail /u01/ogg/11.2/dirdat/xs

table ggs.test;

--注意分号结尾


GGSCI (ora11g) 13> add extract ext3,tranlog,begin now

EXTRACT added.

GGSCI (ora11g) 14> add exttrail /u01/ogg/11.2/dirdat/xs,extract ext3

EXTTRAIL added.

ext的模板可以是:

EXTRACT extmb

setenv (NLS_LANG = "AMERICAN_AMERICA.UTF8")

SETENV (ORACLE_HOME = "/u01/oracle/product/11.2.0/db_1")

SETENV (ORACLE_SID = "orcl")

USERID ggs, PASSWORD ggs

--GETTRUNCATES

REPORTCOUNT EVERY 1 MINUTES, RATE

DISCARDFILE ./dirrpt/extmb.dsc,APPEND,MEGABYTES 1024

--THREADOPTIONS MAXCOMMITPROPAGATIONDELAY 60000 IOLATENS 60000

DBOPTIONS ALLOWUNUSEDCOLUMN

WARNLONGTRANS 2h,CHECKINTERVAL 3m

EXTTRAIL ./dirdat/mb

--TRANLOGOPTIONS EXCLUDEUSER USERNAME

FETCHOPTIONS NOUSESNAPSHOT

TRANLOGOPTIONS CONVERTUCS2CLOBS

TABLE hr.emp;

SETENV:配置系统环境变量

USERID/ PASSWORD: 指定OGG连接数据库的用户名和密码,这里使用3.4部分中创建的数据库用户OGG;

COMMENT:注释行,也可以用--来代替;

TABLE:定义需复制的表,后面需以;结尾

TABLEEXCLUDE:定义需要排除的表,如果在TABLE参数中使用了通配符,可以使用该参数指定排除掉得表。

GETUPDATEAFTERS|IGNOREUPDATEAFTERS:

是否在队列中写入后影像,缺省复制

GETUPDATEBEFORES| IGNOREUPDATEBEFORES:

是否在队列中写入前影像,缺省不复制

GETUPDATES|IGNOREUPDATES:

是否复制UPDATE操作,缺省复制

GETDELETES|IGNOREDELETES:

是否复制DELETE操作,缺省复制

GETINSERTS|IGNOREINSERTS:

是否复制INSERT操作,缺省复制

GETTRUNCATES|IGNORETRUNDATES:

是否复制TRUNCATE操作,缺省不复制;

配置投递进程

GGSCI (ora11g) 17> edit params push3 

extract push3

passthru

dynamicresolution

userid ggs,password ggs

rmthost 192.168.0.166,mgrport 7809

rmttrail /u01/ogg/11.2/dirdat/xs

table ggs.test;

push的模板:

EXTRACT pushmb

SETENV (NLS_LANG = "AMERICAN_AMERICA.UTF8")

USERID ggs, PASSWORD ggs

PASSTHRU

RMTHOST 192.168.0.165, MGRPORT 7809, compress

RMTTRAIL /u01/ogg/11.2/dirdat/xs

TABLE hr.ah4;

RMTHOST:指定目标系统及其Goldengate Manager进程的端口号,还用于定义是否使用压缩进行传输,本例中的compress为压缩传输;

RMTTRAIL:指定写入到目标断的哪个队列;

EXTTRAIL:指定写入到本地的哪个队列;

SQLEXEC:在extract进程运行时首先运行一个SQL语句;

PASSTHRU:禁止extract进程与数据库交互,适用于Data Pump传输进程;

REPORT:定义自动定时报告;

STATOPTIONS:定义每次使用stat时统计数字是否需要重置;

REPORTCOUNT:报告已经处理的记录条数统计数字;

TLTRACE:打开对于数据库日志的跟踪日志;

DISCARDFILE:定义discardfile文件位置,如果处理中油记录出错会写入到此文件中;

DBOPTIONS:指定对于某种特定数据库所需要的特殊参数;

TRANLOGOPTIONS:指定在解析数据库日志时所需要的特殊参数,例如:对于裸设备,可能需要加入以下参数 rawdeviceoggset 0

WARNLONGTRANS:指定对于超过一定时间的长交易可以在gsserr.log里面写入警告信息,本处配置为每隔3分钟检查一次场交易,对于超过2小时的进行警告;

配置define文件

GGSCI (ora11g) 21> edit params test

defsfile /u01/ogg/11.2/dirdef/test.prm

userid ggs,password ggs

table ggs.test;

去相应的目录下生产define文件:

[oracle@ora11g 11.2]$ ./defgen paramfile dirprm/test.prm 

拷贝到mysql相应位置
[root@ora11g ~]#  scp /u01/ogg/11.2/dirdef/ah4.prm 192.168.0.166:/u01/ogg/11.2/dirdef/

GGSCI (ora11g) 18> add extract push3,exttrailsource /u01/ogg/11.2/dirdat/xs

EXTRACT added.

GGSCI (ora11g) 19> add rmttrail /u01/ogg/11.2/dirdat/xs,extract push3

RMTTRAIL added.

四、MYSQL目的端配置

#vi /etc/my.cnf

log-bin=master-bin

binlog-format=row

mysql -u root -p

mysql>CREATE DATABASE ggs;

mysql>use ggs;

mysql>CREATE TABLE test (ID INT,NAME VARCHAR(50),TESTDATE DATE,PRIMARY KEY(ID)) engine=innodb;

创建ogg的初始化目录

#./ggsci

GGSCI (mysql) 1> create subdirs

配置mgr

GGSCI (mysql) 2> edit params mgr

PORT 7809

DYNAMICPORTLIST 7810-7909

--AUTOSTART ER *

AUTORESTART EXTRACT *,RETRIES 5,WAITMINUTES 3

PURGEOLDEXTRACTS ./dirdat/*,usecheckpoints, minkeepdays 3

LAGREPORTHOURS 1

LAGINFOMINUTES 30

LAGCRITICALMINUTES 45

GGSCI (mysql) 3> start mgr

Manager started.

GGSCI (mysql) 4> info all

Program     Status      Group       Lag at Chkpt  Time Since Chkpt

MANAGER     RUNNING      


配置checkpoint table

GGSCI(mysql)>dblogin sourcedb ggs,userid root,password 123456
如有特别端口,可用如下命令
dblogin sourcedb ggs@10.142.78.54:8866 userid test,password test

GGSCI (mysql) 7> edit  params ./GLOBALS

CHECKPOINTTABLE ggs.checkpoint 

GGSCI (mysql) 8>  add checkpointtable ggs.checkpointtab

Successfully created checkpoint table ggs.checkpointtab.

GGSCI (mysql) 9> info checkpointtable ggs.checkpointtab

在相应的mysql数据库中,也可以看到相应的表被添加了:

mysql> show tables;

+---------------+

| Tables_in_hr  |

+---------------+

| test           |

|checkpointtab_lox |

| checkpointtab |

+---------------+


配置应用进程

GGSCI (mysql) 10> edit params rep3 

replicat rep3

sourcedefs /u01/ogg/11.2/dirdef/test.prm

TARGETDB ggs,userid root,password 123456

reperror default,discard

discardfile /u01/ogg/11.2/dirrpt/rep3.dsc,append,megabytes 50

map ggs.test, target ggs.test;

GGSCI (nosql2) 13> add replicat rep3,exttrail /u01/ogg/11.2/dirdat/xs,checkpointtable ggs.test

PS:

REPLICAT进程参数配置说明:

ASSUMETARGETDEFS:假定两端数据结构一致使用此参数;

SOURCEDEFS:假定两端数据结构不一致,使用此参数指定源端的数据结构定义文件,该文件需要由GlodenGate工具产生。

MAP:用于指定源端与目标端表的映射关系;

MAPEXCLUDE:用于使用在MAP中使用*匹配时排除掉指定的表;

REPERROR:定义出错以后进程的响应,一般可以定义为两种:

ABEND,即一旦出现错误即停止复制,此为缺省配置;

DISCARD,出现错误后继续复制,只是把错误的数据放到discard文件中。

DISCARDFILE:定义discardfile文件位置,如果处理中油记录出错会写入到此文件中;

SQLEXEC:在进程运行时首先运行一个SQL语句;

GROUPTRANSOPS:将小交易合并成一个大的交易进行提交,减少提交次数,降低系统IO消耗。

MAXTRANSOPS:将大交易拆分,每XX条记录提交一次。

五、测试和排错

在源端

GGSCI>START ext3

GGSCI>START push3

通过info all

应该可以看到 mgr,ext3,push3被启动,观察一会儿,会不会掉下来。

在目的端

GGSCI>START rep3

通过 info all

可以看到mgr,rep3

如果不能正常启动,可以查看 ggserr.log。查找原因。

常见可能的出错原因有:

1、由于/tmp/mysql.sock不存在,导致dbloing失败。在自定义的目录,通过export MYSQL_UNIX_TCP= 来指向文件,或者通过ln -s建立软链接。

2、由于分号或其他参数配置问题导致参数出错。

3、由于两边对应关系不一致,导致不能正常启动相应进程。

4、字符集的问题,建议两端都设成UTF8.

  ORACLE端:

  1).       关闭数据库

   SQL>SHUTDOWN IMMEDIATE

   2) 启动到Mount

   SQL>STARTUP MOUNT;

   SQL>ALTER SYSTEM ENABLE RESTRICTED SESSION;

   SQL>ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0;

    SQL>ALTER SYSTEM SET AQ_TM_PROCESSES=0;

    SQL>ALTER DATABASE OPEN;

    SQL>ALTER DATABASE CHARACTER SET INTERNAL_USE AL32UTF8;

    SQL>ALTER DATABASE NATIONAL CHARACTER SET INTERNAL_USE AL16UTF16;

     SQL>SHUTDOWN IMMEDIATE;

     SQL>STARTUP

   LINUX环境配置:

 # export     NLS_LANG='American_America.AL32UTF8'

  #export  LANG=en_US.UTF-8

LANG,NLS_LANG,客户端OS 这3个字符集一致 

(GB2312 ZHS16GBK)

(UTF-8 AL32UTF8)

   MYSQL 端

  CREATE DATABASE TEST DEFAULT CHARSET SET UTF-8

   OGG 设置源端和目的端:

  ggsci>edit params ./GLOBALS

  在第一行加

   CHARSET UTF-8


参考官方文档

http://docs.oracle.com/goldengate/1212/gg-winux/GWURF/preface.htm#GWURF101

© 著作权归作者所有

boydreaming
粉丝 3
博文 68
码字总数 17343
作品 0
普陀
程序员
私信 提问
基于OGG的Oracle与Hadoop集群准实时同步介绍

版权声明:本文由王亮原创文章,转载请注明出处: 文章原文链接:https://www.qcloud.com/community/article/220 来源:腾云阁 https://www.qcloud.com/community Oracle里存储的结构化数据导...

偶素浅小浅
2016/11/16
24
1
利用ogg实现oracle到kafka的增量数据实时同步

转载请务必注明原创地址为:https://dongkelun.com/2018/05/23/oggOracle2Kafka/ 前言 ogg即Oracle GoldenGate是Oracle的同步工具,本文讲如何配置ogg以实现Oracle数据库增量数据实时同步到k...

dkl12
2018/05/25
0
0
OGG TO HDFS,及Kerberose验证方法

一、准备工作 1、源端ORACLE RDBMS 12c,及Oracle GoldenGate 12c for Oracle。安装需要有图形界面,需要准备好VNC或其他。 2、目的端Oracle GoldenGate 12 for Big Data 12 ,HADOOP 2.6 二、...

boydreaming
2016/10/21
274
0
GoldenGate配置文档,参数说明,常见错误处理

1 GoldenGate简要说明 GoldenGate现在是业内成熟的数据容灾与复制产品,经过多年的发展与完善,现在已经成为业内事实上的标准之一。 GoldenGate软件是一种基于日志的结构化数据复制软件,它通...

小哥哥
2016/03/21
790
0
一篇很详细很全的OGG配置文档

1 GoldenGate简要说明 GoldenGate现在是业内成熟的数据容灾与复制产品,经过多年的发展与完善,现在已经成为业内事实上的标准之一。 GoldenGate软件是一种基于日志的结构化数据复制软件,它通...

yanfeilai528
2018/08/10
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Leetcode PHP题解--D88 696. Count Binary Substrings

D88 696. Count Binary Substrings 题目链接 696. Count Binary Substrings 题目分析 给定一个01字符串,返回仅用连续的0和1串所能组成的二进制字符串个数。 例如,00110011,就包含0011,0...

skys215
6分钟前
0
0
基础工具类

package com.atguigu.util;import java.sql.Connection;import java.sql.SQLException;import java.util.Properties;import javax.sql.DataSource;import com.alibaba.druid......

architect刘源源
今天
43
0
P30 Pro劲敌!DxO官宣新机:排行榜又要变

5月26日晚间,DxOMark官方推特预告,将在5月27日公布一款新机型的DxOMark评分,猜猜是哪款? 网友猜想的机型有:红米K20、谷歌Pixel 3a、索尼Xperia 1、诺基亚9 PureView等。 DxOMark即将公布...

linux-tao
昨天
15
0
Ubuntu18.04.2窗口过小不能自适应(二次转载)

解决Ubuntu在虚拟机窗口不能自适应 2018年09月06日 16:20:08 起不了名儿 阅读数 855 此博文转载:https://blog.csdn.net/nuddlle/article/details/77994080(原地址) 试了很多办法这个好用 ...

tahiti_aa
昨天
2
0
死磕 java同步系列之CountDownLatch源码解析

问题 (1)CountDownLatch是什么? (2)CountDownLatch具有哪些特性? (3)CountDownLatch通常运用在什么场景中? (4)CountDownLatch的初始次数是否可以调整? 简介 CountDownLatch,可以...

彤哥读源码
昨天
7
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部