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. Git跨平台中文乱码临时解决方案

    Git 是一个非常优秀的分布式版本控制系统,最初为Linux Kernel版本管理进行量身定做.优点是,和其他版本控制系统相比,稳定,速度快,跨平台,易学易用,无需要花费成本.更多优点请点击阅读:ht ...

  2. EasyUI的使用步骤

    (1) 将easyui-1.4.3中jquery.min.js\jquery.easyui.min.js复制到工程的script下 (2) 将themes复制到工程中 (3) 在页面中引入2个JS 2 ...

  3. struts的MVC详细实现

    struts中核心类:ActionServlet,其中最主要的操作是RequestProcessor类中的process方法. struts实现mvc的详解图如下: 1.Tomcat一启动,根据web ...

  4. [LeetCode]题解(python):070-Climbing Stairs

    题目来源: https://leetcode.com/problems/climbing-stairs/ 题意分析: 爬楼梯,一次可以爬一步或者两步.如果要爬n层,问一共有多少种爬法.比如说,如果是3 ...

  5. [LeetCode]题解(python):067-Add Binary

    题目来源: https://leetcode.com/problems/add-binary/ 题意分析: 这题是要将二进制相加,比如“11”,“1”,那么就返回“100”. 题目思路: 模拟加法的过 ...

  6. AMD模块化JS

    参考http://ourjs.com/detail/52ad26ff127c76320300001f Offcial Site http://requirejs.org/ 下载http://requi ...

  7. 微软的MCE(Media Center Edition 媒体中心)标准

    Windows VISTA和Windows 7操作系统上,电脑遥控器01RN的强劲功能更是发挥得淋漓尽致,不仅可以单凭遥控器一键即实现“听歌.看碟.播放控制.曲目选择.照片欣赏.幻灯片播放.网络电影电 ...

  8. spring学习总结(mybatis,事务,测试JUnit4,日志log4j&slf4j,定时任务quartz&spring-task,jetty,Restful-jersey等)

    在实战中学习,模仿博客园的部分功能.包括用户的注册,登陆:发表新随笔,阅读随笔:发表评论,以及定时任务等.Entity层设计3张表,分别为user表(用户),essay表(随笔)以及comment表( ...

  9. MVC模式已死

    MVC模式:Model模型 View试图 Control控制器,是目前主流模式,被当作服务器软件入门基本模式学习和掌握,主流框架Struts 1/2 JSF Wicket基本都顺理成章支持MVC模式. ...

  10. .net c# 提交包含文件file 的form表单 获得文件的Stream流

    1.前台html代码 要写一个有id的form,可是不能有runat="server"属性.由于一个页面中,有这个属性的form表单仅仅能有一个. 再要有一个有name的ifram ...