GOLDENGATE 9.50关于DDL复制读书笔记(2)

2019-04-09 11:26

通过“*”与标准的配置语句结合,来实现DDL的同步,为了保证通配符的正常使用,通常参数WILDCARDRESOLVE parameter is set to DYNAMIC by default;

4、 SQLEXEC

在实现DDL复制功能的时候,使用SQLEXEC功能必须考虑到调用的存储过程或则SQL语句的函数可能和复制DDL操作所影响的对象可能一致,这样就必须保证在执行SQL时候,被DDL修改的数据库对象能够正确的实现所谓的SQLEXEC的调用; 所以,DDL的操作必然是有相对的优先级的;

而SQLEXEC调用的过程或则函数中包含的对象,在MGR启动以前,也就是DDL复制以前就是必须已经存在的;因此,DDL的复制操作的对象是和EXEC的对象是不可能一致的,所以必须给DDL的过滤条件给过滤开;否则DDL将很可能修改了某些数据对象的结构,导致SQLEXEC无法实现调用;

5、 User Exits

GoldenGate user exits are not supported for use with DDL synchronization

6、 Identifying GoldenGate DDL operations

区分GOLDENGATE DDL操作,To identify GoldenGate DDL operations, the following comment ispart of each Extract and Replicat DDL statement:

/* GOLDENGATE_DDL_REPLICATION */

7、 Controlling the propagation of Replicat DDL 缺省的情况下,EXT忽略本地REP的DDL复制操作;通过DDL语句中的

/* GOLDENGATE_DDL_REPLICATION */

来实现;

DDLOPTIONS下的参数 GETREPLICATES 、IGNOREREPLICATES 来控制本地的REP的DDL复制操作是否被EXT进程捕获或则忽略;

DDLOPTIONS的参数GETAPPLOPS 、IGNOREAPPLOPS 除了控制REP外的DDL还包括控制从数据库事务的DDL是否被EXT进程抓取或则忽略;

通常意义上来说,在配置双向的时候,我们通常使用DDLOPTIONS

IGNOREREPLICATES, GETAPPLOPS;这样EXT只抓取事物交易中的DDL,而忽略来自REP的操作;

在一个级联配置中,使用DDLOPTIONS参数 GETREPLICATES, IGNOREAPPLOPS.

Extract must capture the DDL from Replicat on each intermediary system and cascade it to the next system downstream.

8、 DDL and data pumps---数据泵

A data pump does not process DDL. It can only pass it to the next process.

Without DDL support, a data pump cannot filter—过滤 or manipulate—操作控制 DML on objects

affected by DDL operations. The pump must be configured in pass-through—传递 mode.

9、 configure pass-through mode---如何配置传递模式

1在data pump的参数文件中引如. PASSTHRU 参数,如果遇到DLL操作,而没有设置PASSTHRU,data pump 会abend

2.不要为 data pump配置任何DLL的参数:DDLOPTIONS, DDLSUBST, DDLERROR, PURGEDDLHISTORY, PURGEMARKERHISTORY或则其它的跟踪使用DDL的参数,这些参数都将导致data pump abend.

10、 Pallel Extract and Replicat processes-- 并行的EXT、REP进程;

可以通过并行的进程来分别处理不同的数据对象,如此提高系统的性能,当我们采用并行进程的时候,应该如此配置;

某些对象的 DDL、 DML 应该使用一个共同的EXT或则REP进程; ??所有业务数据相关的数据对象必须在一个进程里面;

保证有关联的DDL和DML在一个进程里面,必须保证数据的完整性;

For example, if ReplicatA processes DML for Table1, then it should also process the DDL for Table1. If Table2 has a foreign key to Table1, then its DML and DDL operations also should be processed by ReplicatA.

11、Multi-target configurations

如果一个EXT进程写多个队列,他们被不同的REP进程读,这样EXT将所有的DDL操作写入队列TRAIL中,而每个REP进程通过自己的参数文件进行DDL的过滤;

11、 Understanding DDL scopes—DDL范围

GOLDENGATE将数据库objects 按范围分类,一个对象范围事实上是由DDL可以始终的操作来进行区分的;

??MAPPED ??UNMAPPED ??OTHER

通过这三个参数来控制DDL的操作上的过滤;

Mapped scope---MAP范围

数据库对象在进程配置文件中 参数 TABLE and MAP 后,导致EXT、REP对指定对象的操

作进行过滤;除非出现覆盖他们的规则被特殊声明;

.例如,For objects in TABLE and MAP statements, 而the DDL operations listed in Table 41 are supported

TABLE、MAP不支持一些被一些操作影响数据库对象名称的特殊的DDL操作;

例如,对于EXT来说,MAPPED的范围确定队列中哪写DDL是需要被REP进程所复制的;REP会自动检测MAPPED的范围,并将DDL转换成MAPPED中TARGET的目标下;

例如:

Extract (source) Replicat (target)

TABLE fin.expen; TABLE hr.tab*;

MAP fin.expen, TARGET fin2.expen2; MAP hr.tab*, TARGET hrBackup.bak_*

当源端:ALTER TABLE fin.expen ADD notes varchar2(100);

EXT检测到TABLE中的参数设置将它抓获放入队列

而目标端:检测到,MAP fin.expen, TARGET fin2.expen2;则转换DDL到FIN2下执行 ALTER TABLE fin2.expen2 ADD notes varchar2(100); 同样:

Source: CREATE TABLE hr.tabPayables ... ;

Target: CREATE TABLE hrBackup.bak_tabPayables ...; 当复制的对象在MAPPED范围内,我们可以忽略DDL的DDL的一些参数,除非我们希望可以转换在不同的SCHEMA下面执行某些DDL操作;

并且我们必须在MAPPED的范围内的目标端做好相关的SCHEMA的指定;

12、Unmapped scope---不复制的范围—REP进程;

如果某个DDL涉及的数据对象不在TABLE和MAP范围参数中的任何一个,那他就是UNMAPPED范围内的;

一个数据库对象目标在源端UNMAPPED范围内, (not in an Extract TABLEstatement),但是在目标端的MAPPED范围内;(in a Replicat MAP statement), DDL将直接被用源端的(数据库对象+DDL)进行操作执行;. When DDL is of UNMAPPED scope in the Replicat configuration, it is applied to the target with the same owner and object name as in the source DDL.

13、Other scope

14、Enabling and filtering DDL for synchronization

通常情况下,在源数据库中,DDL是不被抓取的,我们必须配置EXT进程的参数文件让EXT进程抓取DDL;

在目标端,DDL通常是被缺省复制的,这是为了保证事务提交的数据被完整的保留;所以,通常意义下,REP进程在没有参数配置的情况下会将所有的DDL都复制在目标数据库;

当然我们可以通过配置REP关于DDL复制的过滤参数来实现对DDL语句的选择性复制;

EXT进程根据自己的参数文件,去抓获符合参数文件规定的DDL操作,然后将DDL语句写入队列文件中;

REP进程,它复制所有的队列里面的DDL操作到目标数据库;尽管在没有任何参数的前提下也会如此;

所谓的过滤事实上就是,去include or exclude DDL ??scope ??object type ??operation type ??object name ??strings in the DDL command syntax or comments, or both

仅仅一个DDL参数能被在进程的参数文件中使用,所以我们必须集合multiple inclusion and exclusion options to filter the DDL 以达到我们的过滤目标 ;

集合的复合型的参数设置申明用“AND”进行连接;所有符合这个组合参数设置申明的DDL都会被完全复制;

所以,集合的复合型参数设置必须在使用前经过测试;

Syntax DDL [

{INCLUDE | EXCLUDE}

[, MAPPED | UNMAPPED | OTHER | ALL] [, OPTYPE ]

[, OBJTYPE ‘’] [, OBJNAME “”] [, INSTR ‘’]

[, INSTRCOMMENTS ‘’] ] [...]

Syntax

INCLUDE | EXCLUDE

使用INCLUDE and EXCLUDE 用以标记出包含还是不包含从句;

一个包含还是不包含从句,必须用INCLUDE or EXCLUDE 关键字;后面用一些通过一些DDL参数进行有效的组合;

Forexample, the following is invalid:

DDL EXCLUDE OBJNAME “hr.*”

However, you can use either of the following:

DDL INCLUDE ALL, EXCLUDE OBJNAME “hr.*” DDL INCLUDE OBJNAME “fin.*” EXCLUDE “fin.ss”

同样的标准级别内,EXCLUDE 拥有比INCLUDEs 更高的权限;所以我们可以使用多方组合的inclusion and exclusion clauses.

MAPPED | UNMAPPED | OTHER | ALL

Use MAPPED, UNMAPPED, OTHER, and ALL to apply INCLUDE or EXCLUDE based on the DDL operation scope. ??MAPPED applies INCLUDE or EXCLUDE to DDL operations that are of MAPPED scope. MAPPED filtering is performed before filtering that is specified with other DDL parameter options. ??UNMAPPED applies INCLUDE or EXCLUDE to DDL operations that are of UNMAPPED scope. ??OTHER applies INCLUDE or EXCLUDE to DDL operations that are of OTHER scope. ??ALL applies INCLUDE or EXCLUDE to DDL operations of all scopes.


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

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

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

马上注册会员

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