GoldenGate运维手册簿

上传人:仙*** 文档编号:100517729 上传时间:2022-06-02 格式:DOC 页数:40 大小:471.50KB
收藏 版权申诉 举报 下载
GoldenGate运维手册簿_第1页
第1页 / 共40页
GoldenGate运维手册簿_第2页
第2页 / 共40页
GoldenGate运维手册簿_第3页
第3页 / 共40页
资源描述:

《GoldenGate运维手册簿》由会员分享,可在线阅读,更多相关《GoldenGate运维手册簿(40页珍藏版)》请在装配图网上搜索。

1、wordGOLDENGATE运维手册2014年4月文档修改记录版本号日期说明编写者审核者2014/4文档编写目录1OGG常用监控命令3说明3启动GoldenGate进程3停止GoldenGate进程4查看整体运行情况6查看参数设置7查看进程状态7查看延时8查看统计信息9查看运行报告92OGG的常见运维任务指南11配置自动删除队列11配置启动MGR时自动启动Extract和Replicat进程11配置MGR自动重新启动Extract和Replicat进程12长事务管理12表的重新再同步需时间窗口15表的重新再同步无需时间窗口153数据结构变更和应用升级17仅复制DML时源端和目标端数据库增减复制

2、表17仅复制DML时修改表结构19仅复制DML时客户应用的升级19配置DDL复制自动同步数据结构变更21(一)是否打开DDL复制21(二)打开DDL复制的步骤21(三)DDL复制的典型配置234异常处理预案24网络故障24环境下单节点失败25进程常见异常25进程常见异常26异常处理一般步骤265附录28数据复制限制28(四)不支持文件等非结构化数据复制28(五)Oracle数据类型限制28(六)Oracle DML操作支持29(七)Oracle DDL复制限制305.2Oracle 9i中如何为超过32列的无主键表添加附加日志311 OGG常用监控命令1.1 说明对GoldenGate实例进展

3、监控,最简单的方法是通过GGSCI命令行的方式进展。通过在命令行输入一系列命令,并查看返回信息,来判断GoldenGate运行情况是否正常。命令行返回的信息包括整体概况、进程运行状态、检查点信息、参数文件配置、延时等。除了直接通过主机登录GGSCI界面之外,也可以通过GoldenGate Director Web界面登录到每个GoldenGate实例,并运行GGSCI命令。假设客户部署了很多GoldenGate实例,如果单独登录到每个实例的GGSCI界面,会很不方便,此时建议通过GoldenGate Director Web界面,登录到每个实例,并运行命令行命令。1.2 启动GoldenGat

4、e进程1) 首先以启动GoldenGate进程的系统用户一般为oracle登录源系统。2) 进入GoldenGate安装目录,执行./ggsci进入命令行模式。3) 启动源端管理进程GGSCI start mgr4) 同样登陆到目标端GoldenGate安装目录,执行./ggsci,然后执行GGSCI start mgr启动管理进程。5) 在源端执行GGSCI start er *启动所有进程6) 同样登录到备份端执行GGSCI start er *启动所有进程7) 使用GGSCI info er * 或者 GGSCI info 观察进程状态是否为Running表示已经启动。注意有的进程需要几

5、分钟起来,请重复命令观察其启动状态。说明:无论源还是目标,启动各extract/replicat进程前需要启动mgr进程。start 命令的一般用法是:start 如:GGSCI start extdm 启动一个名叫extdm的进程也可以使用通配符,如:GGSCI start er * 启动所有的extract和replicat进程GGSCI start extract *d* 启动所有的包含字符dextract进程GGSCI start replicat rep* 启动所有以“rep“开头的replicat进程1.3 停止GoldenGate进程依照以下步骤停止GoldenGate进程:1)

6、 以启动GoldenGate进程的系统用户一般为oracle登录源主机,进入GoldenGate安装目录执行./ggsci进入命令行管理界面2) 本步骤仅针对抽取日志的主extract进程, data pump进程和replicat进程不需要本步骤验证GoldenGate的抽取进程重起所需的日志存在,对各个主extXX进程,执行如下命令:ggsci info extXX, showch.Read Checkpoint #1. Recovery Checkpoint (position of oldest unprocessed transaction in the data source):

7、Thread #: 1 Sequence #: 9671 RBA: 239077904 Timestamp: Redo File: Not available Current Checkpoint (position of last record read in the data source): Thread #: 1 Sequence #: 9671 RBA: 239377476 Redo File: Not AvailableRead Checkpoint #2.Recovery Checkpoint (position of oldest unprocessed transaction

8、 in the data source): Thread #: 2 Sequence #: 5287 RBA: 131154160 Timestamp: Redo File: /dev/rredo07 Current Checkpoint (position of last record read in the data source): Thread #: 2 Sequence #: 5287 RBA: 138594492 Redo File: /dev/rredo07.首先观察Recovery Checkpoint所需要读取的最古老日志序列号,如举例中的实例1需要日志9671与其以后所有归

9、档日志,实例2需要序列号为5287与以后所有归档日志,确认这些归档日志存在于归档日志目录后才可以执行下一步重起。如果这些日志已经被删除,如此下次重新启动需要先恢复归档日志。注意:对于OGG 11与以后版本新增了自动缓存长交易的功能,缺省每隔4小时自动对未提交交易缓存到本地硬盘,这样只需要最多8个小时归档日志即可。但是缓存长交易操作只在extract运行时有效,停止后不会再缓存,此时所需归档日志最少为8个小时加上停机时间,一般为了保险起见建议确保重启时要保存有12个小时加上停机时间的归档日志。3) 执行GGSCI stop er *停止所有源进程,或者分别对各个进程执行stop 单独停止。4)

10、以oracle用户登录目标系统,进入安装目录/oraclelog1/goldengate,执行./ggsci进入命令行。5) 在目标系统执行stop er *停止复制6) 在两端进程都已停止的情况下,如需要可通过stop mgr停止各系统的管理进程。类似的,stop命令具有跟start命令一样的用法。这里不再赘述。注意,如果是只修改抽取或者复制进程参数,如此不需要停止MGR。不要轻易停止MGR进程,并且慎重使用通配符er *, 以免对其他复制进程造成不利影响。1.4 查看整体运行情况进入到GoldenGate安装目录,运行GGSCI,然后使用info all命令查看整体运行情况。如如下图示:G

11、roup表示进程的名称MGR进程不显示名字;Lag表示进程的延时;Status表示进程的状态。有四种状态:STARTING: 表示正在启动过程中RUNNING:表示进程正常运行STOPPED:表示进程被正常关闭ABENDED:表示进程非正常关闭,需要进一步调查原因正常情况下,所有进程的状态应该为RUNNING,且Lag应该在一个合理的围。1.5 查看参数设置使用view params 可以查看进程的参数设置。该命令同样支持通配符*。1.6 查看进程状态使用info 命令可以查看进程信息。可以查看到的信息包括进程状态、checkpoint信息、延时等。如:还可以使用info detail 命令查

12、看更详细的信息。包括所使用的trail文件,参数文件、报告文件、警告日志的位置等。如:使用info showch 命令可以查看到详细的关于checkpoint的信息,用于查看GoldenGate进程处理过的事务记录。其中比拟重要的是extract进程的recovery checkpoint,它表示源数据中最早的未被处理的事务;通过recovery checkpoint可以查看到该事务的redo log位于哪个日志文件以与该日志文件的序列号。所有序列号比它大的日志文件,均需要保存。1.7 查看延时GGSCI lag 可以查看详细的延时信息。如:此命令比用info命令查看到的延时信息更加准确。注意

13、,此命令只能够查看到最后一条处理过的记录的延时信息。此命令支持通配符 *。 1.8 查看统计信息GGSCI stats ,table . 可以查看进程处理的记录数。该报告会详细的列出处理的类型和记录数。如:GGSCI stats edr, total列出自进程启动以来处理的所有记录数。列出当天以来处理的有关gg.test表的所有记录数。1.9 查看运行报告GGSCI view report 可以查看运行报告。如:也可以进入到 /dirrpt/目录下,查看对应的报告文件。最新的报告总是以.rpt命名的。加后缀数字的报告是历史报告,数字越大对应的时间越久。如如下图示:如果进程运行时有错误,如此报告

14、文件中会包括错误代码和详细的错误诊断信息。通过查找错误代码,可以帮助定位错误原因,解决问题。2 OGG的常见运维任务指南2.1 配置自动删除队列1) 进入安装目录执行./ggsci;2) 执行edit param mgr编辑管理进程参数,参加或修改以下行purgeoldextracts /dirdat/*, usecheckpoint, minkeepdays 7其中,第一个参数为队列位置,*可匹配备份中心所有队列文件;第二个参数表示是首先要保证满足检查点需要,不能删除未处理队列;第三个参数表示最小保存多少天,后面的数字为天数。例如,如果希望只保存队列/ggs/dirdat/xm文件3天,可以

15、配置如下:purgeoldextracts/ggs/dirdat/xm, usecheckpoint, minkeepdays 33) 停止MGR进程,修改好参数后重启该进程GGSCI stop mgr输入y确认停止GGSCI start mgr注:临时停止mgr进程并不影响数据复制。2.2 配置启动MGR时自动启动Extract和Replicat进程1) 进入安装目录执行./ggsci;2) 执行edit param mgr编辑管理进程参数,参加以下行AUTOSTART ER *3) 停止MGR进程,修改好参数后重启该进程GGSCI stop mgrGGSCI start mgr注意:一般建

16、议不用自动启动,而是手工启动,便于观察状态验证启动是否成功,同时也便于手工修改参数。2.3 配置MGR自动重新启动Extract和Replicat进程GoldenGate具有自动重起extract或者replicat进程的功能,能够自动恢复如网络中断、数据库临时挂起等引起的错误,在系统恢复后自动重起相关进程,无需人工介入。1) 进入安装目录执行ggsci进入命令行界面;2) 执行edit param mgr编辑管理进程参数,参加以下行AUTORESTART ER *, RETRIES 3, WAITMINUTES 5, RESETMINUTES 60以上参数表示每5分钟尝试重新启动所有进程,共

17、尝试三次。以后每60分钟清零,再按照每5分钟尝试一次共试3次。3) 停止MGR进程,修改好参数后重启该进程,使修改后的参数文件生效GGSCI stop mgrGGSCI start mgr2.4 长事务管理在停止抽取进程前需要通过命令检查是否存在长交易,以防止下次启动无法找到归档日志:ggsci info extXX, showch.Read Checkpoint #1. Recovery Checkpoint (position of oldest unprocessed transaction in the data source): Thread #: 1 Sequence #: 967

18、1 RBA: 239077904 Timestamp: Redo File: Not available Current Checkpoint (position of last record read in the data source): Thread #: 1 Sequence #: 9671 RBA: 239377476 Redo File: Not AvailableRead Checkpoint #2.Recovery Checkpoint (position of oldest unprocessed transaction in the data source): Threa

19、d #: 2 Sequence #: 5287 RBA: 131154160 Timestamp: Redo File: /dev/rredo07 Current Checkpoint (position of last record read in the data source): Thread #: 2 Sequence #: 5287 RBA: 138594492 Redo File: /dev/rredo07.为了方便长交易的管理,GoldenGate提供了一些命令来查看这些长交易,可以帮助客户和应用开发商查找到对应长交易,并在GoldenGate中予以提交或者回滚。(一) 查看长交

20、易的方法Ggsci send extract , showtrans thread n count n其中,为所要观察的进程名,如extsz/extxm/extjx等;Thread n是可选的,表示只查看其中一个节点上的未提交交易;Count n也是可选的,表示只显示n条记录。例如,查看extsz进程中节点1上最长的10个交易,可以通过如下命令:Ggsci send extract extsz , showtrans thread 1 count 10输出结果是以时间降序排列的所有未提交交易列表,通过xid可以查找到对应的事务,请应用开发商和DBA帮助可以查找出未提交原因,通过数据库予以提交或

21、者回滚后GoldenGate的checkpoint会自动向前滚动。(二) 使用GoldenGate命令跳过或承受长交易的方法在GoldenGate中强制提交或者回滚指定事务,可以通过以下命令中的为参数:Ggsci SEND EXTRACT , SKIPTRANS THREAD /跳过交易GgsciSEND EXTRACT , FORCETRANS THREAD /强制认为该交易已经提交说明:使用这些命令只会让GoldenGate进程跳过或者认为该交易已经提交,但并不改变数据库中的交易,他们依旧存在于数据库中。因此,强烈建议使用数据库中提交或者回滚交易而不是使用GoldenGate处理。(三)

22、配置长交易告警可以在extract进程中配置长交易告警,参数如下所示:extract extszwarnlongtrans 12h, checkintervals 10mexttrail /backup/goldengate/dirdat/sz.以上表示GoldenGate会每隔10分钟检查一下长交易,如果有超过12个小时的长交易,GoldenGate会在根目录下的ggserr.log里面参加一条告警信息。可以通过观察ggserr.log或者在ggsci中执行view ggsevt命令查看这些告警信息。以上配置可以有助于与时发现长交易并予以处理。说明:在OGG 11g中,extract提供了B

23、R参数可以设置每隔一段时间默认4小时将长交易缓存到本地硬盘默认dirtmp目录下,因此extract只要不停止一般需要的归档日志不超过8个小时极限情况。但是如果extract停掉后,便无法再自动缓存长交易,需要的归档日志就会依赖于停机时间变长。2.5 表的重新再同步需时间窗口如果是某些表由于各种原因造成两边数据不一致,需要重新进展同步,可以参照以下步骤。1) 确认需要修改的表无数据变化如果有条件建议停止应用系统并锁定除去sys和goldengate以外的其它所有用户防止升级期间数据变化,或者锁定所要再同步的表;2) 重启dpe进程为了能够对统计信息清零;3) 停止目标端的rep进程;注意:步骤

24、4-6为将源端数据通过exp/imp导入到目标端,客户也可以选择其它初始化方式,比如在目标端为源端表建立dblink,然后通过create table as select from的方式初始化目标端表。4) 在源端使用exp导出该表或者几表数据。例如:exp goldengate/XXXX file=nanhai.dmp tables=ctais2.SB_ZSXX grants=y5) 通过ftp传输到目标端;6) 在目标端,使用imp导入数据;nohup imp goldengate/XXXXX file=nanhai.dmp fromuser=ctais2 touser=ctais2 ig

25、nore=y &7) 如果这些表有外键,在目标端检查这些外键并禁止它们记得维护dirsql下的禁止和启用外键的脚本SQL;8) 启动目标端的rep进程;9) 使用stats mydpe命令观察data pump的统计信息,观察里面是否包含了本次重新同步表的数据变化,如确认该时段这些表无数据变化,如此重新初始化成功;否如此中间可能产生重复数据,目标replicat会报错,将错误处理机制设置为reperror default,discard,等待replicat跟上后对discard中的记录进展再次验证,如果全部一致如此重新初始化也算成功完成,当然也可以另择时段对这些表重新执行初始化。2.6 表的

26、重新再同步无需时间窗口如果是某些表由于各种原因造成两边数据不一致,需要重新进展同步,但实际业务始终24小时可用,不能提供时间窗口,如此可以参照以下步骤。因较为复杂,使用需慎重!1) 确认ext/dpe/rep进程均无较大延迟,否如此等待追平再执行操作;2) 停止目标端的rep进程;注意:步骤3-5为将源端数据通过exp/imp导入到目标端,客户也可以选择其它初始化方式,比如expdp/impdp。3) 在源端获得当前的s号。例如:select dbms_flashback.get_system_change_number from dual;以下以获得的s号为1176681为例4) 在源端使用

27、exp导出所需重新初始化的表或者几表数据,并且指定到刚刚记下的s号。例如:exp / tables=ctais2.SB_ZSXX grants=n statistics=none triggers=npress=n FLASHBACK_S=11766815) 通过ftp传输到目标端;6) 在目标端,使用imp导入数据;nohup imp goldengate/XXXXX file=nanhai.dmp fromuser=ctais2 touser=ctais2 ignore=y &7) 如果这些表有外键,在目标端检查这些外键并禁止它们记得维护dirsql下的禁止和启用外键的脚本SQL;8) 编

28、辑目标端对应的rep参数文件,在其map里面参加一个过滤条件,只对这些重新初始化的表应用指定s号之后的记录一定要注意不要修改本次初始化之外的其它表,会造成数据丢失!:map source.mytab, target target.mytab, filter ( GETENV (TRANSACTION, CSN) 1176681 ) ;9) 确认参数无误后,启动目标端的rep进程;10) 使用info repxx或者lag repxx直到该进程追上,停止该进程去掉filter即可进入正常复制。3 数据结构变更和应用升级3.1 仅复制DML时源端和目标端数据库增减复制表(一) 增加复制表在Gold

29、enGate的进程参数中,如果通过*来匹配所有表,因此只要符合*所匹配的条件,那么只要在源端建立了表之后GoldenGate就能自动复制,无需修改配置文件,但是需要为新增的表添加附加日志。步骤如下:GGSCI dblogin userid goldengate, password XXXXXXXGGSCI info trandata .如果不是enable如此需要手动参加:GGSCI add trandata .注:仅对Oracle 9i如果该表有主键或者该表不超过32列,如此显示enabled表示添加成功;如果无主键并且列超过32列,如此可能出现错误显示无法添加如此需要手工处理,此时请根据附

30、录二中方法手工处理。如果没有使用统配符,如此需要在主Extract、Data Pump里面最后的table列表里参加新的复制表;在目标端replicat的map列表同样也参加该表的映射。然后,新增表请首先在目标端建立表结构。如果有外键和trigger,需要在目标表临时禁止该外键和trigger,并维护在dirsql下的禁止和启用这些对象的对应脚本文件。对于修改了文件的所有源和目标进程,均需重启进程使新的参数生效。(二) 减少复制表GoldenGate缺省复制所有符合通配符条件的表,如果有的表不再需要,可以在源端drop掉,然后到目标drop掉,无需对复制做任何修改。如果其中几个表依然存在,只是

31、无需GoldenGate复制,如此可以通过以下步骤排除:1) 在源端系统上首先验证所需归档日志存在后通过stop extXX停止对应的extXX进程;2) 在目标端系统上ggsci中执行stop repXX停止目标端的复制进程;3) 在源端修改ext进程的参数文件排除所不复制的表: Ggsci edit param extXXtableexclude ctais2.TMP_*;tableexclude ctais2.BAK_*;tableexclude ctais2.MLOG$_*;tableexclude ctais2.RUPD$_*;tableexclude ctais2.KJ_*;tab

32、leexclude myschema.mytable;table ctais2.*;.在文件定义table的行前面参加一行“tableexclude.; 注意写全schema和表的名称。注:如果是没有使用通配符,如此直接注释掉该表所在的table行即可。4) 在目标端修改rep进程参数,同样排除该表:GGSCIedit param repXX在map前面参加一行:-mapexclude myschema.mytableMAP ctais2.* ,TARGET ctais2.*; 注:如果是没有使用通配符,如此直接注释掉该表所在的map行即可。5) 在目标端系统上启动复制进程 repXXGGSC

33、I start repXX6) 在源端系统上启动源端的抓取进程extXXGGSCI start extXX即可进入正常复制状态。3.2 仅复制DML时修改表结构当数据库需要复制的表结构有所改变,如增加列,改变某些列的属性如长度等表结构改变后,可以按照如下步骤执行:1) 按照本文前面所述操作顺序停止源和目标端各抽取与投递进程注意停源端抽取要验证一下归档日志是否存在防止无法重起,无需停止manager进程;2) 修改目标表结构;3) 修改源表结构;4) 如果表有主键,并且本次修改未修改主键,如此可以直接启动源和目标所有进程继续复制,完本钱次修改;否如此,如果表无主键或者本次修改了主键如此需继续执行

34、如下步骤;ggsci dblogin userid goldengate, password XXXXXX仅对Oracle 9i如果表超过了32列如此上述操作可能会报错,此时需要手工进展处理,请参考附录二如何手动为表删除和增加附加日志。5) 重新启动源端和目标端的抓取和复制进程。3.3 仅复制DML时客户应用的升级如果是客户的应用进展了升级,导致了源系统表的变化,在不配置DDL复制到情况下,需要对GoldenGate同步进程进展修改,可以参照以下步骤。1) 停止源和目标端各抽取与投递进程注意停源端抽取要验证一下归档日志是否存在防止无法重起,无需停止manager进程;2) 对源系统进展升级;3

35、) 在目标端将客户升级应用所创立的存储过程、表、function等操作再重新构建一遍。对业务表的增删改等DML操作不必在目标端再执行,它们会被OGG复制过去;4) 在目标端手工禁止建立的trigger和外键,并将这些sql以与反向维护的即重新启用trigger和外键SQL添加到目标端OGG dirsql目录下对应的脚本文件里;注意:在安装实施时,应当将执行的禁止trigger和外键的表放到目标dirsql下,文件名建议为disableTrigger.sql和disableFK.sql。同时,需要准备一个反向维护即重新启用trigger和外键,建议为enableTrigger.sql和enabl

36、eFK.sqlSQL,同样放置到目标端OGG的dirsql目录下,以备将来接收应用时重新启用。5) 对于升级过程中在源端增加的表,需要为新增的表添加附加日志。步骤如下:GGSCI dblogin userid goldengate, password XXXXXXXGGSCI info trandata .如果不是enable如此需要手动参加:GGSCI add trandata .注:仅对Oracle 9i如果该表有主键或者该表不超过32列,如此显示enabled表示添加成功;如果无主键并且列超过32列,如此可能出现错误显示无法添加如此需要手工处理,此时请根据附录二中方法手工处理。6) 对于

37、升级过程中在源端drop掉的表,GoldenGate缺省复制所有符合通配符条件的表,可以直接在目标端drop掉,无需对复制做任何修改;7) 如果升级过程中修改了主键的表如此需继续执行如下步骤;ggsci dblogin userid goldengate, password XXXXXX仅对Oracle 9i如果表超过了32列如此上述操作可能会报错,此时需要手工进展处理,请参考附录二如何手动为表删除和增加附加日志。8) 重新启动源端和目标端的抓取和复制进程。3.4 配置DDL复制自动同步数据结构变更(一) 是否打开DDL复制对于OGG的DDL复制具体限制请参考附录(七)。鉴于这些限制,另外一个

38、重要因素是DDL的trigger会对源库性能带来一定的影响,在国网原如此上并不推荐DDL复制。如果有特殊理由需要打开DDL复制,可以与Oracle工程师予以协商。(二) 打开DDL复制的步骤以下容为配置DDL复制的步骤,仅作参考,具体请参照GoldenGate的官方安装文档。 可选,但强烈建议定期收集统计信息,提高数据字典访问速度OGG的DDL复制需要大量访问数据字典信息,通过数据库定期收集统计信息例如,每月一次,可以有效提高OGG DDL复制的性能。以下为一个例子:sqlplus /nolog TRUE);execute dbms_stats.gather_schema_stats(SYS,

39、cascade= TRUE);execute dbms_stats.gather_schema_stats(SYSTEM,cascade= TRUE);exitEOF 建立OGG复制用户,或给现有用户赋权限:CREATE USER goldengate IDENTIFIED BY goldengate DEFAULT TABLESPACE ts_ogg;GRANT CONNECT TO goldengate;GRANT RESOURCE TO goldengate;grant dba to goldengate; 指定DDL对象所在的schema,这里直接建立在goldengate用户下:Gg

40、sciEDIT PARAMS ./GLOBALSGGSCHEMA goldengate 检查数据库的recyclebin参数是否已关闭:SQL show parameter recyclebinNAME TYPE- -VALUE-recyclebin stringon如不是off,需要关闭recyclebin:alter system set recyclebin=off 建立OGG的DDL对象:sqlplus / as sysdbaEnter GoldenGate schema name:goldengateEnter GoldenGate schema name:goldengateGra

41、nt this role to each user assigned to the Extract, Replicat, GGSCI, and Manager processes, by using the following SQL mand:GRANT GGS_GGSUSER_ROLE TO where is the user assigned to the GoldenGate processes.注意这里的提示:它需要你手工将这个GGS_GGSUSER_ROLE指定给你的extract所使用的数据库用户即参数文件里面通过userid指定的用户,可以到sqlplus下执行类似的sql:G

42、RANT GGS_GGSUSER_ROLE TO ggs1;这里的ggs1是extract使用的用户。如果你有多个extract,使用不同的数据库用户,如此需要重述以上过程全部赋予GGS_GGSUSER_ROLE权限。 启动OGG DDL捕捉的trigger在sqlplus里面执行脚本启用ddl捕捉的trigger。说明:ddl捕捉的trigger与OGG的extract进程是相互独立的,它并不依赖于extract进程存在。即使OGG的extract进程不存在或者没有启动,但是trigger已经启用了,那么捕捉ddl的动作就一直延续下去。如想彻底停止捕捉DDL捕捉,需要执行下步禁用ddl的tr

43、igger。 可选安装提高OGG DDL复制性能的工具为了提供OGG的DDL复制的性能,可以将ddl_pin脚本参加到数据库启动的脚本后面,该脚本需要带一个OGG的DDL用户即安装DDL对象的用户,本例中是goldengate的参数:SQL ddl_pin 如果不再需要DDL复制时停止OGG DDL捕捉的trigger在sqlplus里面执行ddl_disa脚本启用ddl捕捉的trigger。(三) DDL复制的典型配置GoldenGate的data pump进程和replicat的ddl开关默认是打开的,只有主extract是默认关闭的,所以DDL的配置一般只在主extract进展。 结合附

44、录所述的OGG的各种限制,如果需要打开DDL复制,如此建议只打开跟数据有密切关系的表和index的DDL复制,参数如下:DDL &INCLUDE MAPPED OBJTYPE table &INCLUDE MAPPED OBJTYPE index DDLOPTIONS ADDTRANDATA, NOCROSSRENAME另外,在mgr里面参加自动purge ddl中间表的参数:userid goldengate,password XXXXXPURGEDDLHISTORY MINKEEPDAYS 3, MAXKEEPDAYS 7PURGEMARKERHISTORY MINKEEPDAYS 3,

45、MAXKEEPDAYS 7 对于其它对象,依然建议使用手工维护的方式在两端同时升级。要注意的是级联删除和trigger,在目标端建立后应当立即禁用。4 异常处理预案4.1 网络故障如果MGR进程参数文件里面设置了autorestart参数,GoldenGate可以自动重启,无需人工干预。当网络发生故障时, GoldenGate负责产生远地队列的Datapump进程会自动停止. 此时, MGRDatapump进程以试探网络是否恢复。在网络恢复后, 负责产生远程队列的Datapump进程会被重新启动,GoldenGate的检查点机制可以保证进程继续从上次中止复制的日志位置继续复制。需要注意的是,因

46、为源端的抽取进程Capture仍然在不断的抓取日志并写入本地队列文件,但是Datapump进程不能与时把本地队列搬动到远地,所以本地队列文件无法被自动去除而堆积下来。需要保证足够容量的存储空间来存储堆积的队列文件。计算公式如下:存储容量单位时间产生的队列大小网络故障恢复时间MGR定期启动抓取和复制进程参数配置参考:GGSCI edit param mgrport 7809autorestart er *,waitminutes 3,retries 5,RESETMINUTES 60每3分钟重试一次,5次重试失败以后等待60分钟,然后重新试三次。4.2 RAC环境下单节点失败在RAC环境下,Go

47、ldenGate软件安装在共享目录下。可以通过任一个节点连接到共享目录,启动GoldenGate运行界面。如果其中一个节点失败,导致GoldenGate进程中止,可直接切换到另外一个节点继续运行。建议在Oracle技术支持协助下进展以下操作:1) 以oracle用户登录源系统通过另一完好节点;2) 确认将GoldenGate安装所在文件系统装载到另一节点一样目录;3) 确认GoldenGate安装目录属于oracle用户与其所在组;4) 确认oracle用户与其所在组对GoldenGate安装目录拥有读写权限;5) 进入goldengate安装目录;6) 执行./ggsci进入命令行界面;7)

48、 执行start mgr启动mgr;8) 执行start er *启动所有进程;检查各进程是否正常启动,即可进入正常复制。以上过程可以通过集成到CRS或HACMP等集群软件实现自动的切换,具体步骤请参照国网测试文档。4.3 Extract进程常见异常对于源数据库,抽取进程extxm如果变为abended,如此可以通过在ggsci中使用view report命令观察报告,可以通过搜索ERROR快速定位错误。一般情况下,抽取异常的原因是因为其无法找到对应的归档日志,可以通过到归档日志目录命令行下执行 ls 观察该日志是否存在,如不存在如此可能的原因是: 日志已经被压缩GoldenGate无法自动解

49、压缩,需要人工解压缩后才能读取。 日志已经被删除如果日志已经被删除,需要进展恢复才能继续复制,请联系本单位DBA执行恢复归档日志操作。一般需要定期备份归档日志,并去除旧的归档日志。需要保证归档日志在归档目录中保存足够长时间之后,才能被备份和去除。即:定期备份去除假设干小时之前的归档,而不是全部归档。保存时间计算如下:某归档文件保存时间抽取进程处理完该文件中所有日志所需的时间可以通过命令行或者GoldenGate Director Web界面,运行info exXX showch命令查看抓取进程exXX处理到哪条日志序列号。在此序列号之前的归档,都可以被安全的去除。如如下图所示:4.4 Repl

50、icat进程常见异常对于目标数据库,投递进程repXX如果变为abended,如此可以通过在ggsci中使用view report命令观察报告,可以通过搜索ERROR快速定位错误。复制进程的错误通常为目标数据库错误,比如:1) 数据库临时停机;2) 目标表空间存储空间不够;3) 目标表出现不一致。可以根据报告查看错误原因,排除后重新启动rep进程即可。需要注意一点:往往容易忽略UNDO表空间。如果DML语句中包含了大量的update和delete操作,如此目标端undo的生成速度会很快,有可能填满UNDO表空间。因此需要经常检查UNDO表空间的大小。4.5 异常处理一般步骤如果GoldenGa

51、te复制出现异常,可以通过以下步骤尝试解决问题:1. 通过ggsciview report命令查找ERROR字样,确定错误原因并根据其信息进展排除;2. 通过ggsciview ggsevt查看告警日志信息;3. 检查两端数据库是否正常运行,网络是否连通;4. 如不能确定错误原因,如此可以寻求Oracle技术支持。在寻求技术支持时一般需要提供以下信息:a) 错误描述b) 进程报告,位于dirrpt下以大写;c) GGS日志ggserr.log,位于GGS主目录下;d) 丢失数据报告,在复制进程的参数disardfile中定义,一般结尾为.dsc;e) 当前队列,位于dirdat下。5 附录5.

52、1(四) 不支持文件等非结构化数据复制GoldenGate依赖对于数据库日志的解析获取数据变化,因此只能支持数据库中的数据变化复制,无法支持文件等非结构化数据的复制。(五) Oracle数据类型限制GoldenGate支持Oralce常见数据类型的复制。l GoldenGate不支持的数据类型a) ANYDATAb) ANYDATASETc) ANYTYPEd) BFILEe) BINARY_INTEGERf) MLSLABELg) PLS_INTEGERh) TIMEZONE_ABBRi) TIMEZONE_REGIONj) URITYPEk) UROWIDl GoldenGate有限制支持

53、XML Type复制 仅限于Oracle 9i与以后版本 表必须有主键或者唯一索引l GoldenGate有限制支持UDT用户自定义类型复制 如有该类型数据请联系技术支持人员并提供脚本。(六) Oracle DML操作支持GoldenGate当前支持普通表的所有DML操作和有限制支持局部特殊对象的DML操作,对于特殊表或对象请参照后面特殊对象一节的说明。l GoldenGate不支持nologging的表等对象当表或表空间被设置为nologging后,使用sqlloader或者append等非常规模式插入数据将不会被写入到数据库日志,因此GoldenGate无法获取这些数据变化。建议将所有需要

54、的业务表设置为logging状态,对于nologging的表不予以复制。l GoldenGate暂不支持对象和操作如下a) REFb) 使用PRESS 选项建立的表空间和表c) Database Replayl GoldenGate支持Sequence序列的复制l GoldenGate可以通过复制源表支持对于同义词或者DBLink的复制。由于对于这些对象本身的操作发生于其所的源数据库对象,数据库日志中并不记录对这些目标对象的操作,因此GoldenGate不复制对同义词或者DBLink本身的操作,但这些操作会应用在源表上并产生日志,因此可以通过复制源表复制变化。l GoldenGate有限制支持

55、IOT索引组织表复制 能够支持使用MAPPING TABLE创建的IOT,但是只抽取基表的数据变化,而不是MAPPING TABLE。 不支持以press模式存储的IOT。例如,不支持存储在一个使用press选项的表空间里的IOT。l GoldenGate有限制支持Clustered Table复制 仅限于Oracle 9i与以后版本 不支持Encrypted加密和pressed压缩的clustered tablesl GoldenGate有限制支持物化视图复制 不支持使用WITH ROWID选项创建的物化视图 源表必须有主键 不支持物化视图的Truncate但支持DELETE FROM 目标

56、物化视图必须是可更新的 只在Oracle 10g或以后的版本支持物化视图的Full refresh(七) Oracle DDL复制限制GoldenGateDDL复制的原理是通过Trigger从源数据库获取sql,到目标端进展重现,在实际使用中有较多限制,即源端能够执行的sql到了目标端未必能够执行成功。以下为常见的一些问题: 当SQL语句里面设计的对象在目标不存在时,DDL无法执行成功。例如,源建立了一个DBLINk或create table as select * from mydblink,此时目标端可能并没有这个dblink指向的库或对象,所以sql语句会报错; 当两端的物理位置不同时,

57、建立data file或tablespace等与物理位置相关的语句需要在目标端替换为目标的物理位置; 当创建约束没有指定名称时,在源和目标会生成不同名称的对象,这样以后对这些对象再进展修改时就无确映射到目标端; 当复制带有LOB的表时,ddl操作必须等待DML操作全部完成以后再复制; 不能复制明确和列名带有中文的表; 表或其它对象的定义里面不能参加中文注释; 不能复制带有编译错误的CREATE trigger/procedure/function/package等对象; 不能复制结尾带有/的sql语句.此外,GoldenGate DDL复制需要关闭Oracle的_RECYCLEBIN参数Ora

58、cle 10.1或者RECYCLEBIN参数Oracle 10.2与以后版本。还有一个比拟重要的是:由于是Trigger based,GoldenGate的DDL复制可能会降低源数据库的性能,所以不推荐使用DDL复制,具体请参照国网OGG实施原如此。说明:更多详细信息请参照OGG的官方参考手册。5.2 Oracle 9i中如何为超过32列的无主键表添加附加日志为数据库表添加附加日志操作的本质是执行如下的SQL语句:Alter table add supplemental log group (column,.) always;Oracle GoldenGate的add trandata 也是调用这个语句执行:1) 当表有主键时,会将所有作为主键的列放到columns子句里面添加到附加日志组里;2) 如果没有主键,如此会找唯一索引,将唯一索引列放到columns子句里面添加到附加日志组里;3) 如果没有主键和唯一索引,如此会将所有列添加到附加日志组中去。在对于无主键和唯一索引表添加附加日志时,Oracle 9i有个限制: 即每个附加日志组不可以超过32个列大致数字,与实际列定义长度有关.此时调用GoldenGate的add Trandata命令会失败,其处理方法是将该表的所有列拆分为假设干组,每组不超过32各列,然后分别添加附加日志组

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!