veridata实验例(5)在更改主键列值,update操作将被分成两个语句
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操作将被分成两个语句的更多相关文章
- SQLServer 自增主键创建, 指定自增主键列值插入数据,插入主键
http://blog.csdn.net/zh2qiang/article/details/5323981 SQLServer 中含自增主键的表,通常不能直接指定ID值插入,可以采用以下方法插入. 1 ...
- Transactional Replication2:在Subscriber中,主键列是只读的
在使用Transactional Replication时,Subscriber 被认为是“Read-Only”的 , All data at the Subscriber is “read-only ...
- Replication:事务复制 Subscriber的主键列是只读的
在使用Transactional Replication时,Subscriber 被认为是“Read-Only”的 , All data at the Subscriber is “read-only ...
- veridata实验例(3)验证veridata发现insert操作不会导致同步
veridata实验例(3)验证veridata发现insert操作不会导致同步 续接:<veridata实验举例(2)验证表BONUS与表SALGRADE两节点同步情况>,地址:点击打开 ...
- Linq 更改主键值
有一个班级表,主键是class_id,在管理班级时要进行逻辑删除,而只是单纯的is_del字段(记录每条数据是否有效)更改为true,主键class_id如果不变动,在再次增加一个班级时,其主键如果和 ...
- Mybatis获取自增主键的值
pojo: public class User { private Integer id; private String name; private String pwd; setter和getter ...
- 根据oracle的主键列生成SQLserver的主键
根据oracle的主键列生成MsSQLServer的主键列 select 'alter table ' || cu.table_name ||' add constraint '||' PK_' ...
- C#中使用MySqlCommand执行插入语句后获取该数据主键id值的方法
.net中要连接mysql数据库,需要引用MySql.Data.dll文件,这文件在mysql官网上有下载. 接着通过MySqlCommand执行插入语句后想要获取该数据主键id值的方法如下: lon ...
- MyBatis返回主键,MyBatis Insert操作返回主键
MyBatis返回主键,MyBatis Insert操作返回主键 >>>>>>>>>>>>>>>>> ...
随机推荐
- django datetime format 日期格式化
django datetime format 日期格式化 www.jx-lab.com python 中 date,datetime,time对象都支持strftime(format)方法,但有一些区 ...
- beanUtils操作bean的属性
beanUtils操纵bean属性: 需要jar包commons-beanutils-x.x.x.jar 同时commons-beanutils-x.x.x.jar需要commons-loggi ...
- JS 获取浏览器窗口大小clientWidth、offsetWidth、scrollWidth
常用: JS 获取浏览器窗口大小 // 获取窗口宽度 if (windows.innerWidth) winWidth = windows.innerWidth; else if ((docume ...
- android中像素单位dp、px、pt、sp的比较
dp(dip): device independent pixels(设备独立像素). 不同设备有不同的显示效果,这个和设备硬件有关,一般我们为了支持WVGA.HVGA和QVGA 推荐使用这个,不依赖 ...
- java Serialization and Deserializaton
This article from JavaTuturial Java provides a mechanism, called object serialization where an objec ...
- MacOS下使用VMware5 破解 安装win7 ISO 激活
VMware5 下载 破解 以及win7 ISO版本的安装 激活VMware5 下载与破解参考方法http://www.macx.cn/thread-2060440-1-1.htmlVMware5 是 ...
- oracle10g安装图解(win7)
一.Oracle10g 安装预备步骤取得 Oracle 10g 安装程序,或从 Oracle 技术网(OTN)下载光盘映像.在评估阶段您可以免费下载和使用无技术限制的全功能 Oracle,但在正式的商 ...
- [转]IE和Firefox兼容性问题及解决方法
今天测试代码时,发现不少IE可以运行的ajax,但在FF中报错.IE和Firefox(火狐)在JavaScript方面的不兼容及统一方法总结如下: 1.兼容firefox的 outerHTML,FF中 ...
- PROTEL 99SE的打印设置
现在市面上关于PTROTEL99SE的书很多,但都没有具体叙述有关电路图的打印设置方法.PROTEL99SE的打印设置较之以前的版本有了很多不同之处.特别是在实际做电路板时有些细节须注意. 原理图的打 ...
- A Brief Introduction to Multiset[STL]
基础 multiset是<set>库中一个非常有用的类型,它可以看成一个序列,插入一个数,删除一个数都能够在O(logn)的时间内完成,而且他能时刻保证序列中的数是有序的,而且序列中可以存 ...