goldengate 支持mysql_goldengate mysql到oracle 遇到的问题

本文档详细介绍了如何使用GoldenGate进行MySQL到Oracle的数据迁移和同步配置。从环境设置、Goldengate安装、初始化配置、同步配置到开始同步的步骤均有详细说明,并展示了在目标端遇到的问题及表定义。在测试同步阶段,遇到了列长度不匹配和进程启动失败的错误。
摘要由CSDN通过智能技术生成

以下是我的配置和构建过程

---------------------------------环境---------------------------------

source node :10.138.60.22

mysql version : 5.6.15

os user : oracle

db user : mysync

db name : sdb

os version : centos 6.5

goldengate uncompressed path : /usr/ogg

target node :10.100.12.12

oracle version : 11.0.2.0.3

os user : oracle

db user: mysync

os version : centos 6.5

goldengate uncompressed path : /usr/ogg

goldengate version :12.1.2.1

---------------------------------环境---------------------------------

---------------------------------安装---------------------------------

1、在源端和目标端都安装goldengate

[oracle@* ~]$ cd /usr/ogg/

[oracle@* ogg]$ ./ggsci

GGSCI (*) 1> create subdirs

---------------------------------安装---------------------------------

---------------------------------初始化配置---------------------------------

######source node######

1、配置mgr

GGSCI > dblogin sourcedb sdb@10.138.60.22:3306,userid mysync,password MySync

GGSCI > edit param mgr

port 8899

dynamicportlist 8910-8920, 8930

AUTOSTART ER *

AUTORESTART ER *, RETRIES 4, WAITMINUTES 4

STARTUPVALIDATIONDELAY 5

PURGEOLDEXTRACTS /usr/ogg/dirdat/*, USECHECKPOINTS, MINKEEPHOURS 2

2、配置初始化extract

GGSCI > add extract extinit0, sourceistable

GGSCI > edit param extinit0

extract extinit0

dboptions host 10.138.60.22, connectionport 3306

sourcedb sdb@10.138.60.22:3306,userid mysync,password MySync

rmthost 10.100.12.12, mgrport 8899

rmttask replicat, group repinit0

table sdb.*;

3、配置 defgen

GGSCI> edit params defgen

defsfile ./dirdef/source.def, purge

sourcedb sdb@10.138.60.22:3306,userid mysync,password MySync

sdb.t1;

4、构建source.def 文件并传输到目标端

[oracle@* ~]$ cd /usr/ogg/

[oracle@* ogg]$ ./defgen paramfile ./dirprm/defgen.prm

[oracle@* ogg]$ scp dirdef/source.def oracle@10.100.12.12:/usr/ogg/dirdef/sdb

######source node######

$$$$$$target node$$$$

1、配置mgr

GGSCI> dblogin userid mysync,password mysync

GGSCI> edit params mgr

port 8899

dynamicportlist 8910-8920, 8930

AUTOSTART ER *

AUTORESTART ER *, RETRIES 4, WAITMINUTES 4

STARTUPVALIDATIONDELAY 5

PURGEOLDEXTRACTS /usr/ogg/dirdat/*, USECHECKPOINTS, MINKEEPHOURS 2

2、配置 checkpointtable

GGSCI> add checkpointtable mysync.rep_checkpoint

3、配置 初始化 replicat

GGSCI> add replicat repinit0, exttrail /usr/ogg/dirdat/e0, checkpointtable mysync.rep_checkpoint

GGSCI> edit param repinit0

replicat repinit0

userid mysync, password mysync

sourcedefs ./dirdef/sdb/source.def

discardfile ./dirrpt/repinit0.dsc, purge

map sdb.t1, target mysync.t1;

$$$$$$target node$$$$

---------------------------------初始化配置---------------------------------

---------------------------------同步配置---------------------------------

######source node######

1、配置同步extract

GGSCI> add extract v203app,tranlog,begin now

GGSCI> edit param v203app

extract v203app

dboptions host 10.138.60.22,connectionport 3306

sourcedb sdb@10.138.60.22:3306,userid mysync,password MySync

rmthost 10.100.12.12,mgrport 8899

rmttrail /usr/ogg/dirdat/e0

tranlogoptions altlogdest /var/lib/mysql/binary-log.index

table sdb.*;

2、配置 remote trail

GGSCI> add rmttrail /usr/ogg/dirdat/e0,extract v203app

######source node######

$$$$$$target node$$$$

1、配置同步 replicat

GGSCI> add replicat r203papp, exttrail /usr/ogg/dirdat/e0, checkpointtable mysync.rep_checkpoint

GGSCI> edit param r203papp

replicat r203papp

userid mysync, password mysync

handlecollisions

assumetargetdefs

sourcedefs /usr/ogg/dirdef/sdb/source.def

discardfile /usr/ogg/dirrpt/r203papp.dsc, purge

map sdb.t1, target mysync.t1;

$$$$$$target node$$$$

---------------------------------同步配置---------------------------------

---------------------------------开始同步---------------------------------

$$$$$$target node$$$$

GGSCI> start replicat r203papp

$$$$$$target node$$$$

######source node######

GGSCI> start extract v203app

######source node######

---------------------------------开始同步---------------------------------

---------------------------------测试同步---------------------------------

######source node######

insert into t1 (c1,c2,c3,c4,c5,c6) values (1,'a',0,'a',now(),'a');

commit;

######source node######

$$$$$$target node$$$$

%%%%%%error message1%%%%%%

in target ggserr.log

error   ogg-01163  oracle goldengate delivery for oracle, r203papp.prm:  bad column length (8) specified for column c3 in table sdb.t1, maximum allowable length is 4.

action:modify table t1 definition on the target node

alter table t1 modify c3 varchar(20);

%%%%%%error message1%%%%%%

restarted replicat r204papp but met another error

%%%%%%error message2%%%%%%

Sending START request to MANAGER ...

ERROR: Cannot create process '/usr/ogg/replicat'. Child process is no longer alive

.

WARNING OGG-01742  Command sent to MGR MGR returned with an ERROR response.

%%%%%%error message2%%%%%%

$$$$$$target node$$$$

---------------------------------测试同步---------------------------------

---------------------------------原端表定义语句---------------------------------

create table t1 (

c1 bigint(20) not null unique auto_increment,

c2 varchar(30) not null unique,

c3 int(20) default 0 not null ,

c4 varchar(11) not null unique,

c5 timestamp not null default current_timestamp,

c6 varchar(20) not null

) engine=innodb default charset=utf8;

alter table t1 add constraint pk_t1_c1 primary key (c1);

create index idx_t1_c3 on t1(c3);

---------------------------------原端表定义语句---------------------------------

---------------------------------目标端表定义语句---------------------------------

create table t1 (

c1 number(20) not null unique,

c2 varchar(30) not null unique,

c3 number(20) default 0 not null ,

c4 varchar(11) not null unique,

c5 timestamp default sysdate not null,

c6 varchar(20) not null

) ;

alter table t1 add constraint pk_t1_c1 primary key (c1);

create index idx_t1_c3 on t1(c3);

---------------------------------目标端表定义语句---------------------------------

现在卡在错误信息那边,请教论坛的里的大神,究竟该怎么做才可以正常同步?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值