楼主: ysping

gg add trandata的问题

[复制链接]
论坛徽章:
37
2008新春纪念徽章
日期:2008-02-13 12:43:032010广州亚运会纪念徽章:击剑
日期:2011-01-22 20:59:112011新春纪念徽章
日期:2011-02-18 11:43:33茶鸡蛋
日期:2011-08-05 15:44:24ITPUB十周年纪念徽章
日期:2011-11-01 16:21:152012新春纪念徽章
日期:2012-01-04 11:51:22玉石琵琶
日期:2012-02-21 15:04:38ITPUB 11周年纪念徽章
日期:2012-10-09 18:06:202013年新春福章
日期:2013-02-25 14:51:24劳斯莱斯
日期:2013-09-12 15:56:37
11#
 楼主| 发表于 2010-8-12 09:47 | 只看该作者
原帖由 jaychu649 于 2010-8-11 14:53 发表



FYI:
http://hoopercharles.wordpress.c ... al-logging-enabled/

the table level logging for supplemental log for primary key , unique key , foreign key is not enabled unless you execute

SQL>
ALTER DATABASE ADD SUPPLEMENTAL LOG DATA  (PRIMARY KEY, UNIQUE, FOREIGN KEY) COLUMNS;

or
ggsci>
add trandata username.table_name , COLS (col1)

你的意思是ALTER DATABASE ADD SUPPLEMENTAL LOG DATA  (PRIMARY KEY, UNIQUE, FOREIGN KEY) COLUMNS;
和add trandata username.table_name , COLS (col1)只需要执行一个就可以了?两个作用是一样的?

这个说法与我贴的reference guide的内容是矛盾的:
One of the following additional steps must be taken when using ADD TRANDATA for Oracle 9i
or later, depending on the logging method that was specified:
● Supplemental logging: Besides table-level logging, minimal supplemental logging
must be enabled at the database level in order for GoldenGate to process updates to
primary keys and chained rows. This is a known Oracle issue and must be done
through the database interface, not through GoldenGate.

使用道具 举报

回复
论坛徽章:
4
2009日食纪念
日期:2009-07-22 09:30:00祖国60周年纪念徽章
日期:2009-10-09 08:28:00ITPUB9周年纪念徽章
日期:2010-10-08 09:32:252011新春纪念徽章
日期:2011-02-18 11:42:50
12#
发表于 2010-8-12 10:30 | 只看该作者

回复 #11 ysping 的帖子

理论上是这样,但OracleGoldenGate_Documentation : gg_ora_inst_v104.pdf 提供的步骤是用add trandata 去开启table level suplemental log的

使用道具 举报

回复
论坛徽章:
37
2008新春纪念徽章
日期:2008-02-13 12:43:032010广州亚运会纪念徽章:击剑
日期:2011-01-22 20:59:112011新春纪念徽章
日期:2011-02-18 11:43:33茶鸡蛋
日期:2011-08-05 15:44:24ITPUB十周年纪念徽章
日期:2011-11-01 16:21:152012新春纪念徽章
日期:2012-01-04 11:51:22玉石琵琶
日期:2012-02-21 15:04:38ITPUB 11周年纪念徽章
日期:2012-10-09 18:06:202013年新春福章
日期:2013-02-25 14:51:24劳斯莱斯
日期:2013-09-12 15:56:37
13#
 楼主| 发表于 2010-8-12 11:09 | 只看该作者
原帖由 jaychu649 于 2010-8-12 10:30 发表
理论上是这样,但OracleGoldenGate_Documentation : gg_ora_inst_v104.pdf 提供的步骤是用add trandata 去开启table level suplemental log的

reference guide的意思应该是说在使用add trandata 的时候,附加日志必须已经开启。

使用道具 举报

回复
论坛徽章:
37
2008新春纪念徽章
日期:2008-02-13 12:43:032010广州亚运会纪念徽章:击剑
日期:2011-01-22 20:59:112011新春纪念徽章
日期:2011-02-18 11:43:33茶鸡蛋
日期:2011-08-05 15:44:24ITPUB十周年纪念徽章
日期:2011-11-01 16:21:152012新春纪念徽章
日期:2012-01-04 11:51:22玉石琵琶
日期:2012-02-21 15:04:38ITPUB 11周年纪念徽章
日期:2012-10-09 18:06:202013年新春福章
日期:2013-02-25 14:51:24劳斯莱斯
日期:2013-09-12 15:56:37
14#
 楼主| 发表于 2010-11-22 09:57 | 只看该作者
SQL>alter database add supplemental log data;
将数据库附加日志打开后还需要对每张表执行
add trandata 吗?

谁知道啊?

使用道具 举报

回复
论坛徽章:
47
2011新春纪念徽章
日期:2011-01-04 10:24:02奥迪
日期:2013-11-09 23:09:27保时捷
日期:2013-10-15 20:14:48阿斯顿马丁
日期:2013-10-12 09:11:59三菱
日期:2013-09-14 16:45:56雪铁龙
日期:2013-08-21 12:50:25马自达
日期:2013-08-14 12:51:35ITPUB社区千里马徽章
日期:2013-06-09 10:15:34蓝锆石
日期:2013-04-12 00:10:42劳斯莱斯
日期:2013-11-09 23:09:27
15#
发表于 2010-11-22 10:42 | 只看该作者
原帖由 ysping 于 2010-11-22 09:57 发表
SQL>alter database add supplemental log data;
将数据库附加日志打开后还需要对每张表执行
add trandata 吗?

谁知道啊?



需要!
如果不执行add trandata,insert同步没有问题(ORACLE数据库),但是在同步update或delete操作时,就会因为丢失主键报同步错误。不开启表级的最小附加日志,update的redo信息不记录没有进行更新的字段信息,如主键不更新的话主键不记录在redo中,所以会导致同步失败。

我有亲自实践过,不信你也可以试试。

使用道具 举报

回复
论坛徽章:
47
2011新春纪念徽章
日期:2011-01-04 10:24:02奥迪
日期:2013-11-09 23:09:27保时捷
日期:2013-10-15 20:14:48阿斯顿马丁
日期:2013-10-12 09:11:59三菱
日期:2013-09-14 16:45:56雪铁龙
日期:2013-08-21 12:50:25马自达
日期:2013-08-14 12:51:35ITPUB社区千里马徽章
日期:2013-06-09 10:15:34蓝锆石
日期:2013-04-12 00:10:42劳斯莱斯
日期:2013-11-09 23:09:27
16#
发表于 2010-11-22 10:44 | 只看该作者
表述不一定准确,官方文档里对add trandata有详细的介绍说明

使用道具 举报

回复
论坛徽章:
47
2011新春纪念徽章
日期:2011-01-04 10:24:02奥迪
日期:2013-11-09 23:09:27保时捷
日期:2013-10-15 20:14:48阿斯顿马丁
日期:2013-10-12 09:11:59三菱
日期:2013-09-14 16:45:56雪铁龙
日期:2013-08-21 12:50:25马自达
日期:2013-08-14 12:51:35ITPUB社区千里马徽章
日期:2013-06-09 10:15:34蓝锆石
日期:2013-04-12 00:10:42劳斯莱斯
日期:2013-11-09 23:09:27
17#
发表于 2010-11-22 10:45 | 只看该作者
add trandata后的表名可以加通配符,不用一个表一个表执行。

使用道具 举报

回复
论坛徽章:
37
2008新春纪念徽章
日期:2008-02-13 12:43:032010广州亚运会纪念徽章:击剑
日期:2011-01-22 20:59:112011新春纪念徽章
日期:2011-02-18 11:43:33茶鸡蛋
日期:2011-08-05 15:44:24ITPUB十周年纪念徽章
日期:2011-11-01 16:21:152012新春纪念徽章
日期:2012-01-04 11:51:22玉石琵琶
日期:2012-02-21 15:04:38ITPUB 11周年纪念徽章
日期:2012-10-09 18:06:202013年新春福章
日期:2013-02-25 14:51:24劳斯莱斯
日期:2013-09-12 15:56:37
18#
 楼主| 发表于 2010-11-22 11:14 | 只看该作者
我查了资料搞明白了:
表级补全日志需要在最小补全日志打开的情况下才起作用,只开启最小补全日志(alter database add supplemental log data;),redolog记录的信息还不够全面,必须再使用add trandata开启表级的补全日志以获得必要的信息。
谢谢楼上的兄弟。

使用道具 举报

回复
论坛徽章:
26
2009新春纪念徽章
日期:2009-01-04 14:52:28咸鸭蛋
日期:2011-11-13 14:16:262012新春纪念徽章
日期:2012-01-04 11:51:22紫蛋头
日期:2012-02-02 13:13:42玉石琵琶
日期:2012-02-21 15:04:38蛋疼蛋
日期:2012-03-09 08:25:45奥运纪念徽章
日期:2012-11-27 15:37:34复活蛋
日期:2012-12-07 13:05:172013年新春福章
日期:2013-02-25 14:51:242014年世界杯参赛球队:西班牙
日期:2014-06-26 12:03:53
19#
发表于 2010-12-28 13:26 | 只看该作者
谢谢!

使用道具 举报

回复
论坛徽章:
12
奥运会纪念徽章:乒乓球
日期:2012-08-13 17:45:07itpub13周年纪念徽章
日期:2014-10-08 15:15:25祖国65周年纪念徽章
日期:2014-09-30 16:01:33本田
日期:2013-12-19 17:29:18优秀写手
日期:2013-12-18 09:29:16ITPUB社区12周年站庆徽章
日期:2013-10-17 13:56:59迷宫蛋
日期:2013-06-21 10:26:302013年新春福章
日期:2013-02-25 14:51:24迷宫蛋
日期:2012-11-21 10:45:03灰彻蛋
日期:2012-11-12 17:03:27
20#
发表于 2013-10-28 20:26 | 只看该作者
zhoujiongfield 发表于 2010-11-22 10:42
需要!
如果不执行add trandata,insert同步没有问题(ORACLE数据库),但是在同步update或delete操 ...

学习了

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 未成年人举报专区 
京ICP备16024965号-8  北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表