以下对goldengate数据复制的限制情况进行说明。

不支持文件等非结构化数据复制

GoldenGate依赖对于数据库日志的解析获取数据变化,因此只能支持数据库中的数据变化复制,无法支持文件等非结构化数据的复制。

Oracle数据类型限制

GoldenGate支持Oralce常见数据类型的复制。

GoldenGate不支持的数据类型

1)         ANYDATA

2)         ANYDATASET

3)         ANYTYPE

4)         BFILE

5)         BINARY_INTEGER

6)         MLSLABEL

7)         PLS_INTEGER

8)         TIMEZONE_ABBR

9)         TIMEZONE_REGION

10)     URITYPE

11)     UROWID

GoldenGate有限制支持XML Type复制

1)        仅限于Oracle 9i及以后版本

2)        表必须有主键或者唯一索引

GoldenGate有限制支持UDT用户自定义类型复制

如果系统中存在UDT用户自定义类型,请联系技术支持人员并提供脚本。

Oracle DML操作支持

GoldenGate当前支持普通表的所有DML操作和有限制支持部分特殊对象的DML操作,对于特殊表或对象请参照后面特殊对象一节的说明。

GoldenGate不支持nologging的表等对象

当表或表空间被设置为nologging后,使用sqlloader或者append等非常规模式插入数据将不会被写入到数据库日志,因此GoldenGate无法获取这些数据变化。建议将所有需要的业务表设置为logging状态,对于nologging的表不予以复制。

GoldenGate暂不支持对象和操作如下

1)        REF

2)        使用COMPRESS 选项建立的表空间和表

3)        Database Replay

GoldenGate可以通过复制源表支持对于同义词或者DBLink的复制

由于对于这些对象本身的操作发生于其所链接的源数据库对象,数据库日志中并不记录对这些链接目标对象的操作,因此GoldenGate不复制对同义词或者DBLink本身的操作,但这些操作会应用在源表上并产生日志,因此可以通过复制源表复制变化。

GoldenGate有限制支持IOT索引组织表复制

1)        仅限于Oracle 10.2及以后版本

2)        能够支持使用MAPPING TABLE创建的IOT,但是只抽取基表的数据变化,而不是MAPPING TABLE。

3)        不支持以compress模式存储的IOT。例如,不支持存储在一个使用compress选项的表空间里的IOT。

GoldenGate有限制支持Clustered Table复制

1)        仅限于Oracle 9i及以后版本

2)        不支持Encrypted加密和compressed压缩的clustered tables

GoldenGate有限制支持物化视图复制

1)        不支持使用WITH ROWID选项创建的物化视图

2)        源表必须有主键

3)        不支持物化视图的Truncate但支持DELETE FROM

4)        目标物化视图必须是可更新的

5)        只在Oracle 10g或以后的版本支持物化视图的Full refresh

Oracle DDL复制限制

GoldenGateDDL复制的原理是通过Trigger从源数据库获取sql,到目标端进行重现,在实际使用中有较多限制,即源端能够执行的sql到了目标端未必能够执行成功。以下为常见的一些问题:

1)        当SQL语句里面设计的对象在目标不存在时,DDL无法执行成功。例如,源建立了一个DBLINk或create table as select * from mydblink,此时目标端可能并没有这个dblink指向的库或对象,所以sql语句会报错;

2)        当两端的物理位置不同时,建立data file或tablespace等与物理位置相关的语句需要在目标端替换为目标的物理位置;

3)        当创建约束没有指定名称时,在源和目标会生成不同名称的对象,这样以后对这些对象再进行修改时就无法正确映射到目标端;

4)        当复制带有LOB的表时,ddl操作必须等待DML操作全部完成以后再复制;

5)        不能复制表明和列名带有中文的表;

6)        表或其它对象的定义里面不能加入中文注释;

7)        不能复制带有编译错误的CREATE trigger/procedure/function/package等对象;

8)        不能复制结尾带有‘/’的sql语句.

此外,GoldenGate DDL复制需要关闭Oracle的_RECYCLEBIN参数(Oracle 10.1)或者RECYCLEBIN参数(Oracle 10.2及以后版本)。

GoldenGate V11.1数据复制限制的更多相关文章

  1. GoldenGate实时投递数据到大数据平台(5) - Kafka

    Oracle GoldenGate是Oracle公司的实时数据复制软件,支持关系型数据库和多种大数据平台.从GoldenGate 12.2开始,GoldenGate支持直接投递数据到Kafka等平台, ...

  2. ODAC (V9.5.15) 学习笔记(二十一)数据复制

    用TVirtualTable在内存中缓存TOraQuery中的数据,主要应用场景是参照其他数据,需要将TOraQuery中的数据复制到TVirtualTable,由于没有类似于TClientDataS ...

  3. SQL把表中的数据复制到另一个数据库中

    1 删除整张表的数据,并还原自增长值TRUNCATE TABLE TbWeixinActivity 2 3张表左连接select a.ID,c.Name,b.nickname,a.CreateDate ...

  4. docker 数据共享,数据复制

    docker 提供的数据共享的方式有 docker   run  -it  -v:/dataname  image 数据复制使用 docker  cp  containerid:/dataname   ...

  5. SqlServer将表中数据复制到另一张表

    insert into phone2(ph,attr,type,carrier) select top 1000 ph,attr,type,carrier from phone 将表phone的字段和 ...

  6. 将表A的数据复制到表B,以及关于主表和子表的删除办法

    如果表A的数据结构和表B的数据结构是一样的,字段名字可以不用相同,但是对应的数据类型是一样的 这样的情况下可以用如下的方式实现将表A的数据复制到表B INSERT INTO #TEMP2 SELECT ...

  7. Oracle数据库间的数据复制 - SQLPlus中的COPY命令

    Copy命令可以实现不同Oracle数据库间的数据的复制,也是可以实现同一数据库的数据复制,其性能表现和导入/导出相同. 根据9i文档,说Copy命令未来会不支持,但实际上Oracle 11g仍然支持 ...

  8. SQL数据库中把一个表中的数据复制到另一个表中

    1.如果是整个表复制表达如下: insert into table1 select  * from table2 2.如果是有选择性的复制数据表达如下: insert into table1(colu ...

  9. ODI利用goldengate实现增量数据捕获

    ODI利用goldengate实现增量数据捕获 上个月,Oracle发布了ODI的最新版本10.1.3.6_02,其中增加了针对采用goldengate获取源数据库增量变化的知识模块,这样当系统需要实 ...

随机推荐

  1. 安卓 使用Gradle生成正式签名apk文件

    1. 进入app中的build.gradle下面进行配置 2.进入Gradle下面选择clean和assembleRelese,双击 3.生成成功,前往查看 4.加密更安全

  2. Git 时间,将代码托管到GitHub 上

    第一步:在github上创建一个项目,选择所属类型.会自动生成下面的文件. 第二步:使用安卓创建项目 第三步:使用git bash 进入项目目录,通过指令clone到本地 克隆完成后会出现下面的内容 ...

  3. 你务必知道的css简写

    欢迎加入前端交流群来py:749539640   简写属性是可以让你同时设置其他几个 CSS 属性值的 CSS 属性.使用简写属性,Web 开发人员可以编写更简洁.更具可读性的样式表,节省时间和精力. ...

  4. 实战c++中的vector系列--正确释放vector的内存(clear(), swap(), shrink_to_fit())

    关于vector已经写的差不多了,似乎要接近尾声了,从初始化到如何添加元素再到copy元素都有所涉及,是时候谈一谈内存的释放了. 是的,对于数据量很小的vector,完全没必要自己进行主动的释放,因为 ...

  5. sql server 去掉某字段左边的0

    比如:将以下Code字段 Code 000 001 002 ... 009 010 依次去掉左边的0,000替换为0,001替换为1,010替换为10,以此类推 Code 0 1 2 ... 9 10 ...

  6. ASP.NET使用MergeInto做数据同步,同步SQLSERVER不同数据库的相同表结构的数据

    public string SynchronousData() { ReturnJson Rejson = new ReturnJson(); //将WebConfig中的数据库连接name中的值写进 ...

  7. Sublime使用随记

    1.安装 Package Control Ctrl+` 打开命令行,执行如下代码: 适用于 Sublime Text 3: import urllib.request,os;pf='Package C ...

  8. OpenGL编程(七)3D模型的深度(z轴)检测

    下图是我们要修改后的效果图: 一.深度检测 1.模型Z轴显示有问题: 上一次试验中,如果认真留意,会发现一个问题.当控制锥体在左右或上下旋转时,你会发现锥体看起来是在+-180度之间来回摆动,而不是3 ...

  9. jq滚动条美化

    https://github.com/inuyaksa/jquery.nicescroll(插件地址) https://blog.csdn.net/zyy_0725/article/details/8 ...

  10. Vue 基础篇

    Vue 基础篇 一.框架与库的区别 JQ库->DOM(DOM操作) + Ajax请求 art-template库->模板引擎 框架 -> 全方位.功能齐全 简易的DOM体验 + 发请 ...