veridata实验例(5)更改主键列值,update操作将被分成两个语句

续接“veridata实验举例(4)验证veridata查找出updata、delete操作导致的不同步现象”。地址:点击打开链接

环境:

Item

Source System

Target System

Platform

Red Hat Enterprise

Linux Server release 5.4

Red Hat Enterprise

Linux Server release 5.4

Hostname

gc1

gc2

Database

Oracle 10.2.0.1

Oracle 11.2.0.1

Character Set

ZHS16GBK

ZHS16GBK

ORACLE_SID

PROD

EMREP

Listener Name/Port

LISTENER/1521

LISTENER/1521

Goldengate User

ogg

ogg

1、模拟实验环境,使gc1、gc2数据不同步,对gc2上主键列作update操作

GGSCI(gc1) 7> stop RORA_1

Sending STOP request to REPLICAT RORA_1 ...

Request processed.

GGSCI(gc1) 8> info all

Program    Status      Group       Lag          Time Since Chkpt

MANAGER    RUNNING

EXTRACT    RUNNING     EORA_1      00:00:00      00:00:01

EXTRACT    RUNNING     PORA_1      00:00:00      00:00:05

REPLICAT   STOPPED     RORA_1      00:00:00      00:00:01

gc2:

SQL>update TCUSTMER set CUST_CODE='NEW' WHERENAME='ROCKY FLYER INC.';
 --gc2上updata操作

SQL>commit;

SQL>select * from TCUSTMER where CUST_CODE='NEW';

CUST_CODE NAME                          CITY                 ST

---------- -------------------------------------------------- --

NEW       ROCKY FLYER INC.              SHANGHAI             CO

gc1:

SQL>select * from TCUSTMER where CUST_CODE='NEW'; --gc1查询。没有同步更改,查询不到

no rows selected

SQL>select * from TCUSTMER where CUST_CODE='JANE';
--gc1上保留的依旧是原数据

CUST_CODE NAME                          CITY                 ST

---------- -------------------------------------------------- --

JANE      ROCKY FLYER INC.              SHANGHAI             CO

2、执行veridata显示结果,例如以下:

--veridata捕捉到的不是update操作,而是将其拆分成了insert操作、delete操作

小结:

由上可知,当update主键所在的列时,veridata无法捕获出这是update操作。而是通过对照两张表。将update操作拆分成insert操作、delete操作。

3、处理同步

GGSCI(gc1) 10> start RORA_1

Sending START request to MANAGER ...

REPLICAT RORA_1 starting

GGSCI(gc1) 11> info all

Program    Status      Group       Lag           Time Since Chkpt

MANAGER    RUNNING

EXTRACT    RUNNING     EORA_1      00:00:00      00:00:02

EXTRACT    RUNNING     PORA_1      00:00:00      00:00:00

REPLICAT   RUNNING     RORA_1      00:12:48      00:00:02

SQL> select * from TCUSTMER where CUST_CODE='NEW';

CUST_CODE NAME                          CITY                 ST

---------- -------------------------------------------------- --

NEW       ROCKY FLYER INC.              SHANGHAI             CO

********************未完待续**************************

声明:

         原创作品。出自 “深蓝的blog” 博客。同意转载,转载时请务必注明出处(http://blog.csdn.net/huangyanlong)。

关于涉及版权事宜。作者有权追究法律责任。

版权声明:本文博主原创文章,博客,未经同意不得转载。

veridata实验例(5)在更改主键列值,update操作将被分成两个语句的更多相关文章

  1. SQLServer 自增主键创建, 指定自增主键列值插入数据,插入主键

    http://blog.csdn.net/zh2qiang/article/details/5323981 SQLServer 中含自增主键的表,通常不能直接指定ID值插入,可以采用以下方法插入. 1 ...

  2. Transactional Replication2:在Subscriber中,主键列是只读的

    在使用Transactional Replication时,Subscriber 被认为是“Read-Only”的 , All data at the Subscriber is “read-only ...

  3. Replication:事务复制 Subscriber的主键列是只读的

    在使用Transactional Replication时,Subscriber 被认为是“Read-Only”的 , All data at the Subscriber is “read-only ...

  4. veridata实验例(3)验证veridata发现insert操作不会导致同步

    veridata实验例(3)验证veridata发现insert操作不会导致同步 续接:<veridata实验举例(2)验证表BONUS与表SALGRADE两节点同步情况>,地址:点击打开 ...

  5. Linq 更改主键值

    有一个班级表,主键是class_id,在管理班级时要进行逻辑删除,而只是单纯的is_del字段(记录每条数据是否有效)更改为true,主键class_id如果不变动,在再次增加一个班级时,其主键如果和 ...

  6. Mybatis获取自增主键的值

    pojo: public class User { private Integer id; private String name; private String pwd; setter和getter ...

  7. 根据oracle的主键列生成SQLserver的主键

    根据oracle的主键列生成MsSQLServer的主键列 select 'alter table  ' || cu.table_name ||'  add constraint  '||' PK_' ...

  8. C#中使用MySqlCommand执行插入语句后获取该数据主键id值的方法

    .net中要连接mysql数据库,需要引用MySql.Data.dll文件,这文件在mysql官网上有下载. 接着通过MySqlCommand执行插入语句后想要获取该数据主键id值的方法如下: lon ...

  9. MyBatis返回主键,MyBatis Insert操作返回主键

    MyBatis返回主键,MyBatis Insert操作返回主键 >>>>>>>>>>>>>>>>> ...

随机推荐

  1. BZOJ 1483: [HNOI2009]梦幻布丁( 链表 + 启发式合并 )

    把相同颜色的串成一个链表, 然后每次A操作就启发式合并, 然后计算对答案的影响. ----------------------------------------------------------- ...

  2. 不小心中了machook病毒

    此文运用的是优雅的Markdown而书 前段回家过年的日子,我心爱的小air在运行时不停的弹出"machook停止运行"的提醒,上网google一下不看不要紧,才得知是mac上的一 ...

  3. java 读文件 解析

    [Java]读取文件方法大全   1.按字节读取文件内容2.按字符读取文件内容3.按行读取文件内容 4.随机读取文件内容 public class ReadFromFile {     /**     ...

  4. python的filter()函数

    filter()函数是 Python 内置的另一个有用的高阶函数. filter()函数接收一个函数 f 和一个list,这个函数 f 的作用是对每个元素进行判断,返回 True或 False,fil ...

  5. Dokcer 组成原理简介

    首先来张图了解Docker的组成 重要 Docker在启动容器的时候,需要创建文件系统,为rootfs提供挂载点.最初Docker仅能在支持Aufs文件系统的Linux发行版上运行,但是由于Aufs未 ...

  6. ASP.Net MVC3 - The easier to run Unit Tests by moq #Reprinted#

    From: http://www.cnblogs.com/techborther/archive/2012/01/10/2317998.html 前几天调查完了unity.现在给我的任务是让我调查Mo ...

  7. 12个高矮不同的人,排成两排(catalan数)

    问题描述: 12个高矮不同的人,排成两排,每排必须是从矮到高排列,而且第二排比对应的第一排的人高,问排列方式有多少种? 这个笔试题,很YD,因为把某个递归关系隐藏得很深. 问题分析: 我们先把这12个 ...

  8. Buffer Cache(缓冲区缓存)篇:缓存区块大小

    缓冲区缓存(Buffer Cache) Buffer Cache是SGA的一部分,保存最近从磁盘读取的或修改的(dml修改或添加)数据块.Buffer Cache的目的就是减少磁盘I/O,提高速度. ...

  9. JS实现日历控件选择后自动填充

    最近在做人事档案的项目,在做项目的初期对B/S这块不是很熟悉,感觉信心不是很强,随着和师哥同组人员的交流后发现,调试程序越来越好了,现在信心是倍增,只要自己自己踏实的去研究.理解代码慢慢的效果就出来了 ...

  10. PeopleEditor的取值及赋值

    /// <summary> /// 从PeopleEditor取值 /// </summary> /// <param name="peopleEditor&q ...