OGG实现虚拟机-->阿里云单向同步全库数据(DML)--第4部分
概述
前面的准备工作都做完了,接下来就是启动进程来进行数据库同步了和做数据库的一个同步测试工作。
一、启动进程进行数据库同步
1、添加传输表
光开启最小附加日志模式还不够,还需要打开表级的补全日志,可以在GoldenGate中使用add trandata命令强制重做日志记录主键值,以保证在目标端能成功复制:
GGSCI> dblogin userid ggate,password ggate --GoldenGate中登录OARCLE数据库 GGSCI>add trandata sender.* --表名可以使用通配符 GGSCI> add trandata coss3.per_test,nokey,cols(sampletime, objectid)
--无主键指定字段补全的示例
导库后执行如下
也可以在数据库中打开:
SQL> alter table <tablename> add supplemental log data (primary key) columns;
2、启动源端进程组
start mgr
3、启动抽取进程和传输进程
start extnd start dpend
4、启动目标端进程
start mgr start repnd
二、数据同步测试
1、源数据库上创建数据
insert into test1110 values(21);
insert into test1110 values(22);
insert into test1110 values(23);
insert into test1110 values(24);
test1110表没有主键,ogg自动创建主键
目的端查看数据:可以看到记录都在。
2、源端删除数据:
delete from test1110 where c_id=2;
delete from test1110 where c_id=21;
delete from test1110 where c_id=31;
目的端查看日志:
目的端查看数据:
3、源端更新数据:
update test1110 set c_id=99 where c_id=22;
update test1110 set c_id=100 where c_id=23;
update test1110 set c_id=101 where c_id=24;
目的端:
总结:
关于ogg同步的实验就介绍到这了,后面大家有兴趣可以自己测试一下。
最后再简单介绍下原理:源端来个insert,目标端也是执行了一个类似的insert,ogg同步的是数据变更,而不是语句,如果两边数据不一致但又执行了DML操作就很容易导致ogg同步进程abend了。