GOLDENGATE 950关于DDL复制读书笔记Word格式文档下载.docx

上传人:b****4 文档编号:7902280 上传时间:2023-05-09 格式:DOCX 页数:29 大小:28.41KB
下载 相关 举报
GOLDENGATE 950关于DDL复制读书笔记Word格式文档下载.docx_第1页
第1页 / 共29页
GOLDENGATE 950关于DDL复制读书笔记Word格式文档下载.docx_第2页
第2页 / 共29页
GOLDENGATE 950关于DDL复制读书笔记Word格式文档下载.docx_第3页
第3页 / 共29页
GOLDENGATE 950关于DDL复制读书笔记Word格式文档下载.docx_第4页
第4页 / 共29页
GOLDENGATE 950关于DDL复制读书笔记Word格式文档下载.docx_第5页
第5页 / 共29页
GOLDENGATE 950关于DDL复制读书笔记Word格式文档下载.docx_第6页
第6页 / 共29页
GOLDENGATE 950关于DDL复制读书笔记Word格式文档下载.docx_第7页
第7页 / 共29页
GOLDENGATE 950关于DDL复制读书笔记Word格式文档下载.docx_第8页
第8页 / 共29页
GOLDENGATE 950关于DDL复制读书笔记Word格式文档下载.docx_第9页
第9页 / 共29页
GOLDENGATE 950关于DDL复制读书笔记Word格式文档下载.docx_第10页
第10页 / 共29页
GOLDENGATE 950关于DDL复制读书笔记Word格式文档下载.docx_第11页
第11页 / 共29页
GOLDENGATE 950关于DDL复制读书笔记Word格式文档下载.docx_第12页
第12页 / 共29页
GOLDENGATE 950关于DDL复制读书笔记Word格式文档下载.docx_第13页
第13页 / 共29页
GOLDENGATE 950关于DDL复制读书笔记Word格式文档下载.docx_第14页
第14页 / 共29页
GOLDENGATE 950关于DDL复制读书笔记Word格式文档下载.docx_第15页
第15页 / 共29页
GOLDENGATE 950关于DDL复制读书笔记Word格式文档下载.docx_第16页
第16页 / 共29页
GOLDENGATE 950关于DDL复制读书笔记Word格式文档下载.docx_第17页
第17页 / 共29页
GOLDENGATE 950关于DDL复制读书笔记Word格式文档下载.docx_第18页
第18页 / 共29页
GOLDENGATE 950关于DDL复制读书笔记Word格式文档下载.docx_第19页
第19页 / 共29页
GOLDENGATE 950关于DDL复制读书笔记Word格式文档下载.docx_第20页
第20页 / 共29页
亲,该文档总共29页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

GOLDENGATE 950关于DDL复制读书笔记Word格式文档下载.docx

《GOLDENGATE 950关于DDL复制读书笔记Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《GOLDENGATE 950关于DDL复制读书笔记Word格式文档下载.docx(29页珍藏版)》请在冰点文库上搜索。

GOLDENGATE 950关于DDL复制读书笔记Word格式文档下载.docx

用以查询MARKER表的安装情况;

14、Ddl_tracelevel.sql

设置DDL跟踪文件的等级;

15、ObjectIDhistorytable

 

二、安装DDL的顺序

1、首先确认安装使用的数据库用户,必须有SYSDBA权限;

2、编写全局参数文件GLOBALS

GGSSCHEMADATABASE_SYSDBA;

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

并且参数名称的修改必须在GLOBALS文件中声明;

4、关闭ORACLERECYCLE—9I中没有,否则将无法安装;

5、安装目录必须和GOLDENGATE是同一个目录;

6、

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

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

Clusters----集群

Functions---函数

Indexes---索引

Packages---数据包

Procedures—过程

Roles---规则

Sequences---序列号

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

Tables---数据表

Tablespaces---表空间

Triggers---触发器

Types---类型

Views—视图

materializedviews(alsoknownas--snapshots)物化视图

users---用户

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

四、TABLEDEFINE---表的定义;

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

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

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

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

五、TRUNCATE操作

GOLDENGATE支持TRUNCATE操作是独立与DDL同步的一部分内容;

在9。

5以前就有;

目前9。

5的DDL包支持所有包括TRUNCATE以及其它表操作的数据库表记录;

5以前的版本中专门用了GETTRUNCATES参数来控制;

ThestandaloneTRUNCATEfeaturesupportsthereplicationofTRUNCATETABLE,

butnootherDDL.

ThefullDDLfeaturesupportsTRUNCATETABLE,ALTERTABLETRUNCATEPARTITION,

andotherDDL

六、ALTERTABLENAME和RENAME

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

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

七、OPERATIONONLOBSCOLUMNS---大对象数据列复制的操作;

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;

八、OPERATIONONUDTS---DDL用于用户定义DDL复制操作需要注意的

I、DDL可能包含了部分用户自己定义的DML应用范围内,导致应用错误;

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

II、

九、没有使用的字段UNUSERDCOLUMNS

通常情况下,GOLDENGATE不支持通过表中没有使用的字段进行数据复制,但是9。

5通过“DBOPTIONSALLOWUNUSEDCOLUMN“实现了这个功能;

首先,两端都必须有这样一个没有使用的字段,这样在REP的参数文件中,使用“IncludeALTERTABLE...SETUNUSEDstatementsinyour

DDLreplicationconfiguration.“

十、CommentsinSQL

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

比如CREATESCHEMA1。

TABLENAME1

目标端自然也是CREATESCHEMA。

TABLENAME1

十一、Specialcharacters—特殊字符

!

$,and#.字符被限制使用在参数文件中的mappedwithTABLEorMAP中;

十二、Compilationerrors

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

十三、ALTERTABLEMOVETABLESPACE

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

十四、GoldenGate-relatedguidelinesforDDLsupport

一些部署DDL同步的限制和知道考虑的地方;

1、EnsuringdatacontinuityafterDDL—保证数据在复制DDL后的持续复制;

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

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

2、初始化导入initialload

3、Wildcardresolution—通配符解决方案

通过“*”与标准的配置语句结合,来实现DDL的同步,为了保证通配符的正常使用,通常参数WILDCARDRESOLVEparameterissettoDYNAMICbydefault;

4、SQLEXEC

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

所以,DDL的操作必然是有相对的优先级的;

而SQLEXEC调用的过程或则函数中包含的对象,在MGR启动以前,也就是DDL复制以前就是必须已经存在的;

因此,DDL的复制操作的对象是和EXEC的对象是不可能一致的,所以必须给DDL的过滤条件给过滤开;

否则DDL将很可能修改了某些数据对象的结构,导致SQLEXEC无法实现调用;

5、UserExits

GoldenGateuserexitsarenotsupportedforusewithDDLsynchronization

6、IdentifyingGoldenGateDDLoperations

区分GOLDENGATEDDL操作,ToidentifyGoldenGateDDLoperations,thefollowingcommentispartofeachExtractandReplicatDDLstatement:

/*GOLDENGATE_DDL_REPLICATION*/

7、ControllingthepropagationofReplicatDDL

缺省的情况下,EXT忽略本地REP的DDL复制操作;

通过DDL语句中的

来实现;

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

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

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

IGNOREREPLICATES,GETAPPLOPS;

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

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

ExtractmustcapturetheDDLfromReplicatoneachintermediarysystem

andcascadeittothenextsystemdownstream.

8、DDLanddatapumps---数据泵

AdatapumpdoesnotprocessDDL.Itcanonlypassittothenextprocess.

WithoutDDLsupport,adatapumpcannotfilter—过滤ormanipulate—操作控制DMLonobjects

affectedbyDDLoperations.Thepumpmustbeconfiguredinpass-through—传递

mode.

9、configurepass-throughmode---如何配置传递模式

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

2.不要为datapump配置任何DLL的参数:

DDLOPTIONS,DDLSUBST,DDLERROR,PURGEDDLHISTORY,PURGEMARKERHISTORY或则其它的跟踪使用DDL的参数,这些参数都将导致datapumpabend.

10、PallelExtractandReplicatprocesses--并行的EXT、REP进程;

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

某些对象的DDL、DML应该使用一个共同的EXT或则REP进程;

●所有业务数据相关的数据对象必须在一个进程里面;

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

Forexample,ifReplicatAprocessesDMLforTable1,thenitshouldalsoprocessthe

DDLforTable1.IfTable2hasaforeignkeytoTable1,thenitsDMLandDDL

operationsalsoshouldbeprocessedbyReplicatA.

11、Multi-targetconfigurations

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

11、UnderstandingDDLscopes—DDL范围

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

●MAPPED

●UNMAPPED

●OTHER

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

Mappedscope---MAP范围

数据库对象在进程配置文件中参数TABLEandMAP后,导致EXT、REP对指定对象的操作进行过滤;

除非出现覆盖他们的规则被特殊声明;

.例如,ForobjectsinTABLEandMAPstatements,而theDDLoperationslistedinTable41

aresupported

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

例如,对于EXT来说,MAPPED的范围确定队列中哪写DDL是需要被REP进程所复制的;

REP会自动检测MAPPED的范围,并将DDL转换成MAPPED中TARGET的目标下;

例如:

Extract(source)Replicat(target)

TABLEfin.expen;

TABLEhr.tab*;

MAPfin.expen,TARGETfin2.expen2;

MAPhr.tab*,TARGEThrBackup.bak_*

当源端:

ALTERTABLEfin.expenADDnotesvarchar2(100);

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

而目标端:

检测到,MAPfin.expen,TARGETfin2.expen2;

则转换DDL到FIN2下执行

ALTERTABLEfin2.expen2ADDnotesvarchar2(100);

同样:

Source:

CREATETABLEhr.tabPayables...;

Target:

CREATETABLEhrBackup.bak_tabPayables...;

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

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

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

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

一个数据库对象目标在源端UNMAPPED范围内,(notinanExtractTABLEstatement),但是在目标端的MAPPED范围内;

(inaReplicatMAPstatement),DDL将直接被用源端的(数据库对象+DDL)进行操作执行;

.WhenDDLisofUNMAPPEDscopeintheReplicat

configuration,itisappliedtothetargetwiththesameownerandobjectnameas

inthesourceDDL.

13、Otherscope

14、EnablingandfilteringDDLforsynchronization

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

在目标端,DDL通常是被缺省复制的,这是为了保证事务提交的数据被完整的保留;

所以,通常意义下,REP进程在没有参数配置的情况下会将所有的DDL都复制在目标数据库;

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

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

REP进程,它复制所有的队列里面的DDL操作到目标数据库;

尽管在没有任何参数的前提下也会如此;

所谓的过滤事实上就是,去includeorexcludeDDL

●scope

●objecttype

●operationtype

●objectname

●stringsintheDDLcommandsyntaxorcomments,orboth

仅仅一个DDL参数能被在进程的参数文件中使用,所以我们必须集合multipleinclusionandexclusionoptionstofiltertheDDL以达到我们的过滤目标;

集合的复合型的参数设置申明用“AND”进行连接;

所有符合这个组合参数设置申明的DDL都会被完全复制;

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

SyntaxDDL[

{INCLUDE|EXCLUDE}

[,MAPPED|UNMAPPED|OTHER|ALL]

[,OPTYPE<

type>

]

[,OBJTYPE‘<

’]

[,OBJNAME“<

name>

”]

[,INSTR‘<

string>

[,INSTRCOMMENTS‘<

comment_string>

[...]

Syntax

INCLUDE|EXCLUDE

使用INCLUDEandEXCLUDE用以标记出包含还是不包含从句;

一个包含还是不包含从句,必须用INCLUDEorEXCLUDE关键字;

后面用一些通过一些DDL参数进行有效的组合;

Forexample,thefollowingisinvalid:

DDLEXCLUDEOBJNAME“hr.*”

However,youcanuseeitherofthefollowing:

DDLINCLUDEALL,EXCLUDEOBJNAME“hr.*”

DDLINCLUDEOBJNAME“fin.*”EXCLUDE“fin.ss”

同样的标准级别内,EXCLUDE拥有比INCLUDEs更高的权限;

所以我们可以使用多方组合的inclusionandexclusionclauses.

MAPPED|UNMAPPED|OTHER|ALL

UseMAPPED,UNMAPPED,OTHER,andALLtoapplyINCLUDEorEXCLUDEbasedonthe

DDLoperationscope.

●MAPPEDappliesINCLUDEorEXCLUDEtoDDLoperationsthatareofMAPPED

scope.MAPPEDfilteringisperformedbeforefilteringthatisspecifiedwith

otherDDLparameteroptions.

●UNMAPPEDappliesINCLUDEorEXCLUDEtoDDLoperationsthatareofUNMAPPED

scope.

●OTHERappliesINCLUDEorEXCLUDEtoDDLoperationsthatareofOTHERscope.

●ALLappliesINCLUDEorEXCLUDEtoDDLoperationsofallscopes.

DDLEXCLUDEALL---是一个比较特殊的进程参数,用来在禁止所有的DDL复制后,为GOLDENGATE保持每天更新的数据库元数据,

当需要阻止DDL操作被复制的时候而保证DML被完全的复制,我们可以使用DDLEXCLUDEALL;

这样系统将为GOLDENGATE提供当前数据库的元数据,因此避免了ER进程的停止和重新启动;

DDLEXCLUDEALL不需要INCLUDE从句的使用,为了完全避免任何DDL的元数据或则操作被复制,完全忽略了DDL的参数,DDLTRIGGER将继续在历史表中记录这些操作;

除非手动禁止;

OPTYPE<

----DDL命令类型参数

使用OPTYPE在INCLUDEorEXCLUDE去特别声明一个DDL的操作类型,例如:

asCREATE,ALTER,andRENAME.,对于后面的<

使用DDLcommand

:

DDLINCLUDEOPTYPEALTER

OBJTYPE‘<

’DDL数据对象类型参数

使用OBJTYPE在INCLUDEorEXCLUDE中,声明一个特别的数据库对象对于<

usesuchasTABLE,IND

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 自然科学 > 物理

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2