GOLDENGATE 9.50关于DDL复制读书笔记

2019-04-09 11:26

GOLDENGATE 9.50关于DDL复制读书笔记

1、

DDL marker table

该表的缺省名称为:GGS_MARKER,用来存储数据库表中的DDL变化,该表只能插入INSERT;

2、 3、

Sequence on marker table DDL history table

用以标识表GGS_MARKER的列数据,类似于数据库的sequence数据;

DDL 历史记录表;

4、 Object ID history table

用以记录DDL语句操作的数据库对象;

5、 DDL trigger

DDL操作引发的操作,把DDL语句写入GGS_MARKER、以及history表; 6、

DDL SHEMA

需要用来复制DDL操作的数据库用户名,必须在参数文件GLOBALS中声明; 7、

USER ROLE

用户用以复制DDL操作的规则 8、

Internal setup table;

内部安装表,用以记录内部数据使用; 9、

DUMPDLL TABLES

代表一系列表,用以存储DUMPDLL命令查询的数据库状态数据—元数据; 10、

DDL_PIN

用以跟踪DDL操作的标记,以及性能提高的参数;

11、 ddl_cleartrace.sql 清空DDL跟踪文件脚本; 12、 ddl_status.sql

用来查询DDL安装包的安装情况; 13、 Marker_status.sql

用以查询MARKER表的安装情况; 14、 Ddl_tracelevel.sql 设置DDL跟踪文件的等级; 15、

Object ID history table

用以记录DDL语句操作的数据库对象;

二、安装DDL的顺序

1、首先确认安装使用的数据库用户,必须有SYSDBA权限; 2、编写全局参数文件GLOBALS

GGSSCHEMA DATABASE_SYSDBA;

3、一些参数和对象的名称改变必须在安装过程中修改,在运行过程中修改必须使用固定的脚本文件;并且参数名称的修改必须在GLOBALS文件中声明;

4、关闭ORACLE RECYCLE—9I中没有,否则将无法安装; 5、安装目录必须和GOLDENGATE是同一个目录; 6、

三、数据库与DDL同步相关的指南

1、GOLDENGATE 支持DDL复制的目标和操作范围

Clusters----集群 Functions---函数 Indexes---索引 Packages---数据包 Procedures—过程 Roles---规则

Sequences---序列号

Synonyms---同义词--- GOLDENGATE关于Synonyms复制,不复制Synonyms里面的数据;

Tables---数据表

Tablespaces---表空间 Triggers---触发器 Types---类型 Views—视图

materialized views (also known as--snapshots)物化视图

users---用户

2、ORACLE有些保留的SCHEMA是不允许使用的(注意)

四、TABLE DEFINE---表的定义;

当DDL数据被复制的时候,相关的表的数据转换,GOLDENGATE是不允许一些特殊的数据类型的转换的;

参考详细可以支持的数据类型转换;

DDL数据复制时候,目标和源数据库操作的对象必须是一致的;

ASSUMETARGETDEFS参数在REPLICAT参数文件的使用,而SOURCEDEFS参数在源端使用,一旦数据库对象产生了DDL操作那必然,REP进程会ABEND;

五、TRUNCATE操作

GOLDENGATE支持TRUNCATE操作是独立与DDL同步的一部分内容;在9。5以前就有;

目前9。5的DDL包支持所有包括TRUNCATE以及其它表操作的数据库表记录; 在9。5以前的版本中专门用了GETTRUNCATES参数来控制;

The standalone TRUNCATE feature supports the replication of TRUNCATE TABLE, but no other DDL.

The full DDL feature supports TRUNCATE TABLE, ALTER TABLE TRUNCATE PARTITION, and other DDL

六、ALTER TABLE NAME 和RENAME

GOLDENGATE处理两个DDL操作是将RENAME转换为了ALTER TABLE NAME,但是RENAME并不需要使用SCHEMA,但是ALTER TABLE NAME却需要SCHEMA;

新表的名称不能超过18个字符;

七、OPERATION ON LOBS COLUMNS---大对象数据列复制的操作;

DDL操作不会被复制,当指定的目标表正在执行DML操作的时候;EXT从数据库日志中读取到记录后,会自动按顺序产生事务的记录,所以数据库的状态数据—元数据用来被使用来解决这个问题,用以提示是否有DML操作出现;

异常发生在大对象数据上,EXT抓取一个大对象数据的值通过回闪查询,但是ORACLE并不支持象除了DROP以外的DDL操作提供这样一个值的功能;

当大对象数据列被操作的时候,大对象列的数据结构需要反射目前的元数据,但是在日志中,大队列的数据记录反映的是旧的数据库元数据;

但是GOLDENGATE为了从结构上解决这个问题,GOLDENGATE通过名称、类型、长度、编译成一些的小列数据;这样大数据的读取就变成了从小列数据中取得了;

但是由于DDL的出现,可能导致在小列数据DROP或则没有及时刷新,这样事务日志中记录的数据与实际的数据可能无法保证一致性;

例如如果存在DDL将某一列删除后,重新建设了一个同名但是数据类型不同的列,这样复制进程REP在目标端可能导致错误;

为了解决这个问题,注意: A、 保证抓取时间的延迟必须在一个限度; B、 或则保证DDL在DML后面被复制;

C、 如果让包含大对象数据列的表仅仅执行DM操作,表可以使用一个唯一的小数

据字段作为主键,或则建设一个复合的主键,或则通过全字段组合识别,如果一定要使用DDL复制,必须注意的是“ 1、 暂停源数据的DML的EXT;

2、 确保REP队列中的DML数据已经完成; 3、 然后执行DDL; 4、 恢复DML;

八、OPERATION ON UDTS---DDL用于用户定义DDL复制操作需要注意的 I、 DDL可能包含了部分用户自己定义的DML应用范围内,导致应用错误;比如

数据修改数据类型,而DML无法实现被复制;

II、

九、没有使用的字段UNUSERD COLUMNS

通常情况下,GOLDENGATE不支持通过表中没有使用的字段进行数据复制,但是9。5通过“DBOPTIONS ALLOWUNUSEDCOLUMN “实现了这个功能;

首先,两端都必须有这样一个没有使用的字段,这样在REP的参数文件中,使用“Include ALTER TABLE...SET UNUSED statements in your DDL replication configuration. “

十、Comments in SQL

如果DDL语句中保留了数据对象,那复制的语句也必然回保留那个数据对象; 比如CREATE SCHEMA1。TABLENAME1

目标端自然也是 CREATE SCHEMA。TABLENAME1

十一、Special characters—特殊字符

!, $, and #. 字符被限制使用在参数文件中的 mapped with TABLE or MAP 中;

十二、Compilation errors

如果一个存储过程、功能、函数、功能包中的CREATE出错,但是GOLDENGATE还是会继续执行DDL复制的;

十三、ALTER TABLE MOVE TABLESPACE

修改表空间大小必须要确认数据是否出现丢失或者改变的问题;

十四、GoldenGate-related guidelines for DDL support 一些部署DDL同步的限制和知道考虑的地方;

1、 Ensuring data continuity after DDL—保证数据在复制

DDL后

的持续复制;

例如,复制一个DML操作到一个源端数据库中由CREATE或则RENAME的表,EXT以及REP的配置文件中都必须在TABLE,和MAP参数中包含住,否则将出现DML错误;

创建了一个新的用户,将新的数据表移动到新的用户名下,这样同样需要在配置文件里面增加制定的相关参数,否则将出现DML复制被丢失的情况;

2、 初始化导入

3、 Wildcard resolution—通配符解决方案

initial load


GOLDENGATE 9.50关于DDL复制读书笔记.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:《鲁滨逊漂流记》阅读指导课教案

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: