GOLDENGATE运维手册资料_第1页
GOLDENGATE运维手册资料_第2页
GOLDENGATE运维手册资料_第3页
GOLDENGATE运维手册资料_第4页
GOLDENGATE运维手册资料_第5页
已阅读5页,还剩9页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

GOLDENGATE运维手册

对ColdenGato实例进行监控,最简单的办法是通过GGSCI命令行的方式进行。通过在命令

行输入一系列命令,并查看返回信息,来判断GoldenGate运行情况是否正常。命令行返回的信

息包括整体概况、进程运行状态、检查点信息、参数文件配置、延时等,

除了直接通过主机登录GGSCI界面之外,也可以通过GoldenGateDirectorWeb界面登录

到每个GoldenGate实例,并运行GGSCI命令°假如客户部署了很多GoldenGate实例,如果单

独登录到每个实例的GGSCI界面,会很不方便,此时建议通过GoldenGateDirectorWeb界面,

登录到每个实例,并运行命令行命令。

1)首先以启动GoldenGate进程的系统用户(一般为oracle)登录源系统。

2)进入GoldenGate安装目录,执行

https://blog.csdn.net/u010794281/article/details/ggsci进入命令行模式。

3)启动源端管理进程GG3CI)startmgr

4)同样登陆到目标端GoldenGate安装目录,执行

https://blog.csdn.net/u010794281/article/details/ggsci,然后执行GGSCI>startmgr

启动管理进程。

5)在源端执行GGSCI>starter*启动所有进程

6)同样登录到备份端执行GGSCI>starter*启动所有进程

7)使用GGSCI>infoer*或者GGSCI>info<进程名〉察看进程状态是否为Running

(表示已经启动)。注意有的进程需要几分钟起来,请重复命令观察其启动状态。

说明:无论源还是目标,启动各extract/replicat进程前需要启动mgr进程。

start命令的,般用法是:start(进程名称)

如:

GGSC1>startextdm启动一个名叫extdm的进程

也可以使用通配符,如:

GGSCI>starter*启动所有的extract和replicat进程

GGSCI>startextract*d*启动所有的包含字符extract进程

GGSCI>startreplicatrep*启动所有以“rep"开头的replicat进程

依照以下步骤停止GoldenGate进程:

1)以启动GoldenGatc进程的系统用户(一般为oracle)登录源主机,进入GoldenGate

安装目录执行https://blog./u010794281/article/details/ggsci进入命令行管理

界面

2)(本步骤仅针对抽取日志的主extract进程,datapump进程和replicat进程不需要

本步骤)验证GoldcnGato的抽取进程重起所需的日志存在,对各个主。KtXX进程,执行如下命

令:

首先察看Rocovoi7Checkpoir.t所需要读取的最古老日志序列号,如举例中的实例1需要

F1志9671及其以后所有归档日志,实例2需要序列号为5287及以后所有归档日志,确认这些

归档日志存在于归档日志目录后才可以执行下一步重起。如果这些日志已经被删除,则下次重

新启动需要先恢复归档日志。

注意;对于OGG11及以后版本新增了自动缓存长交易的功能,缺省每隔4小时自动对未提

交交易缓存到本地硬盘,这样只需要最多8个小时归档日志即可。但是辍存长交易操作只在

extract运行时有效,停止后不会再缓存,此时所需归档日志最少为8个小时加上停机时间,

一般为了保险起见建议确保重启时要保留有12个小时加上停机时间的归档日志。

3)执行GGSCI>stoper*停止所有源进程,或者分别对各个进程执行stop<进程名〉单

独停止。

4)以oracle用户登录目标系统,进入安装目录/oraclelogl/goldongale,执行

https://blog.csdn.net/uO10794281/article/detai1s/ggsci进入命令行。

5)在目标系统执行slopor*停止复制

6)在两端进程都已停止的情况下,如需要可通过stopmgr停止各系统内的管理进程。

类似的,stop命令具有跟start命令一样的用法。这里不再赘述。

注意,如果是只修改抽取或者复制进程参数,则不需要停止MGR。不要轻易停止MGR进程,

并且慎重使用通配符er*,以免对其他复制进程造成不利影响。

进入到GoldenGate安装目录,运行GGSCI,然后使用infoall命令查看整体运行情况。

如下图示:

Group表示进程的名称(MGR进程不显示名字);Lag表示进程的延E寸;Status表示进程的

状态。有四种状态:

STARTING:表示正在后动过程中

RUNNING:表示进程正常运行

STOPPED;表示进程被正常关闭

ABENDED:表示进程非正常关闭,需要进一步调查原因

正常情况下,所有进程的状态应该为RUNNING,且Lag应该在一个合理的范围内。

使用viewparams<进程名>可以查看进程的参数设置。该命令同样支持通配符*。

使用info〈进程名称》命令可以查看进程信息。可以查看到的信息包括进程状态、checkpoint

信息、延时等。如:

还可以使用info〈进程名称》detail命令查看更详细的信息。包括所使用的trail文件,

参数文件、报告文件、警告日志的位置等。如:

使用info〈进程名称〉showch命令可以查看到详细的关于checkpcint的信息,用于查看

GoldenGale进程处理过的事务记录。其中比较重要的是exlracl进程的recoverycheckpoint,

它表示源数据中最早的未被处理的事务;通过recoverycheckpoint可以查看到该事务的

redolog位于哪个日志文件以及该日志文件的序列号。所有序列号比它大的日志文件,均需要

保留。

GGSCI>lag〈进程名称》可以查看详细的延时信息。如;

此命令比用info命令查看到的延时信息更加精确。

注意,此命令只能够查看到最后一条处理过的记录的延时信息。

此命令支持通配符*0

GGSCDstats〈进程名称),〈时间频度),table.可以查看进程处理的记录数。该报告会

详细的列出处理的类型和记录数。如:

GGSCI>statsedr,total列巴自进程启动以来处理的所有记录数。

GGSCI>statsedr,daily,tablegg.test列出当天以来处理的有关gg.test表的所有记

录数。

GGSCI>viewreport〈进程名称》可以查看运行报告。如:

也可以进入到/dirrpt/目录下,查看对应的报告文件。最新的报告总是以〈进程名称》.rpt

命名的。加后缀数字的报告是历史报告,数字越大对应的时间越久。如下图示:

如果进程运行时有错误,则报告文件中会包括错误代码和详细的错误诊断信息e通过查找

错误代码,可以帮助定位错误原因,解决问题。

1)进入安装目录执行/u010794281/article/details/ggsci;

2)执行editparammgr编辑管理进程参数,加入或修改以下行

purgeoldextracts//dirdat/*,usecheckpoint,minkeepdays7

其中,第一个参数为队列位置:*可匹配备份中心所有队列文件;

第二个参数表示是首先要保证满足检查点需要,不能删除未处理队列;

第三个参数表示最小保留多少天,后面的数字为天数。例如,如果希望只保留队列

/ggs/dirdat/xm文件3天,可以配置如下:

purgeoidextracts/ggs/dirdat/xm,usecheckpoint,minkeepdays3

3)停止MGR进程,修改好参数后重启该进程

GGSCI>stopmgr

输入y确认停止

GGSCI>startmgr

注:临时停止mgr进程并不影响数据复制。

1)进入安装目录执行https:〃blog.csdn.net/u010794281/articl6/details/ggsci;

2)执行editparammgr编辑管理进程参数,加入以下行

AUTOSTARTER*

3)停止MGR进程,修改好参数后重启该进程

GGSCI>stopmgr

GGSCI>startmgr

注意:一般建议不用自动启动,而是手工启动,便于观察状态验证启动是否成功,同时也

便于手工修改参数。

GoldonGate具有自动重起extract或者replicat进程的功能,能够自动恢复如网络中断、

数据库临时挂起等引起的错误,在系统恢复后自动重起相关进程,无需人工介入。

1)进入安装目录执行ggsci进入命令行界面:

2)执行editparammgr编辑管理进程参数,加入以下行

AITORESTARTER*,RETRIES3,WAITMINUTES5,RESETMINUTES60

以上参数表示每5分钟尝试重新启动所有进程,共尝试三次。以后每60分钟清零,再按照

每5分钟尝试一次共试3次。

3)停止MGR进程,修改好参数后重启该进程,使修改后的参数文件生效

GGSC1>stopmgr

GGSCI>startmgr

在停止抽取进程前需要通过命令检查是否存在长交易,以防止下次启动无法找到归档日志:

为了方便长交易的管理,GoldenGate提供了一些命令来查看这些长交易,可以帮助客户和

应用开发商查找到对应长交易,并在GoldonGato中予以提交或者回滚。

(-)查看长交易的方法

Ggsci>sendextract<进程名〉,showtrans[threadn][countn]

其中,<进程名>为所要察看的进程名,如extsz/extxm/extjx等;

Threadn是可选的,表示只查看其中一个节点上的未提交交易;

Countn也是可选的,表示只显示n条记录。例如,查看extsz进程中节点1上最长的10

个交易,可以通过下列命令:

Ggsci>sendextractextsz:showtransthread1count10

输出结果是以时间降序排列的所有未提交交易列表,通过xid可以查找到对应的事务,请

应用开发商和DBA帮助可以查找出未提交原因,通过数据库予以提交或者回滚后GoldenGate的

checkpoint会自动向前滚动

(二)使用GoldenGate命令跳过或接受长交易的方法

在GoldenGate中强制提交或者网滚指定事务,可以通过以下命令(◊中的为参数);

Ggsci>SENDEXTRACT<进程名%SKIPTRANS<5.17.27634>THREAD<2>〃跳过交易

Ggsci>SENDEXTRACT<进程名>,F0RCETRANS<5.17.27634>THREAD<1>//强制认为该交

易已经提交

说明:使用这些命令只会让GoldenGate进程跳过或者认为该交易已经提交,但并不改变数

据库中的交易,他们依旧存在于数据库中。因此,强烈建议使用数据库中提交或者网滚交易而

不是使用GoldenGate处理。

(三)配置长交易告警

可以在extract进程中配置长交易告警,参数如下所示;

以上表示GoldenGate会每隔10分钟检查一下长交易,如果有超过12个小时的长交易,

GoldenGate会在根目录下的ggserr.log里面加入一条告警信息。可以通过察看ggserr.log或

者在ggsci中执行viewggsevt命令查看这些告警信息。以上配置可以有助于及时发现长交易

并予以处理。

说明:在OCG11g中,extract提供了BR参数可以设置每隔一段时间(默认4小时)将长

交易缓存到本地硬盘(默认dirtmp目录下),因此extract只要不停止一般需要的归档日志不

超过8个小时(极限情况)。但是如果-tract停掉后,便无法再自动缓存长交易,需要的归档

日志就会依赖于停机时间变长。

如果是某些表由于各种原因造成两边数据不一致,需要重新进行同步,可以参照以下步骤。

1)确认需要修改的表无数据变化(如果有条件建议停止应用系统并锁定除去sys和

goldengate以外的其它所有用户防止升级期间数据变化,或者锁定所要再同步的表);

2)重启dpc进程(为了能够对统计信息清零);

3)停止目标端的rep进程;

注意:步骤4-6为将源端数据通过exp/imp导入到日标端,客户也可以选择其它初始化方

式,比如在目标端为源端表建立dblink,然后通过createtableasselectfrom的方式初

始化目标端表。

4)在源端使用©xp导出该表或者几张表数据。例如:

expgoldengate/XXXXfile=nanhai.dmptables=ctais2.SB_ZSXXgrants二y

5)通过ftp传输到目标端:

6)在目标端,使用imp导入数据;

nohupimpgoldengate/XXXXXfile=nanhai.dmpfromuser=ctais2touser=ctais2ignore=y

&

7)如果这些表有外键,在目标端检查这些外键并禁止它们(记得维护dirsql下的禁止和

启用外键的脚本SQL);

8)启动目标端的rep进程;

9)使用statsmydpe命令观察datapump的统计信息,观察里面是否包含了本次重新同

步表的数据变化,如确认该时段内这些表无数据变化,则重新初始化成功;否则中间可能产生

重复数据,目标roplicat会报错,将错误处理机制设置为ropoirordefault,discard,等待

replicat跟上.后对discard中的记录进行再次验证,如果全部一致则重新初始化也算成功完成,

当然也可以另择时段对这些表重新决行初始化。

如果是某些表由于各种原因造成两边数据不一致,需要重新进行同步,但实际业务始终24

小时可用,不能提供时间窗口,则可以参照以下步骤。(因较为复杂,使用需便慎!)

1)确认ext/dpe/rep进程均无较大延迟,否则等待追平再执行操作;

2)停止目标端的rep进程;

注意:步骤3-5为将源端数据通过exp/imp导入到目标端,客户也可以选择其它初始化方

式,比如expdp/impdp。

3)在源端获得当前的sen号。例如:

selectdbms一flashback,getsystemchangenumberfromdual;

以下以获得的sen号为1176681为例

4)在源端使用exp导出所需重新初始化的表或者几张表数据,并且指定到刚才记下的sen

号。例如;

exp/tabies=ctais2.SB_Z5XXgrants=nstatistics=nonetriggers=ncompress=n

FLASHBACKSCN=1176681

5)通过ftp传输到目标端;

6)在目标端,使用imp导入数据:

nohupimpgoldongatc/XXXXXfilc=nanhai.dmpfromuser=ctais2tousor=ctais2ignorc=y

&

7)如果这些表有外键,在目标端检查这些外键并禁止它们(记得维护dirsql下的禁止和

启用外键的脚本SQL):

8)编辑目标端对应的rep参数文件,在其map里面加入一个过滤条件,只对这些重新初始

化的表应用指定sen号之后的记录(一定要注意不要修改本次初始化之外的其它表,会造成数

据丢失I):

mapsource,mytab,targettarget,mytab,filter(<8GETENV("TRANSACTION",

"CSN")>1176681);

9)确认参数无误后,启动目标端的rep进程;

10)使用inforepxx或者用grepxx直到该进程追上,停止该进程去掉filter即可进入

正常复制。

(一)增加复制表

在GoldcnGa”的进程参数中,如果通过*来匹配所有表,因此只要符合*所匹配的条件,那

么只要在源端建立了表之后GoldenGate就能自动更制,无需修改配置文件,但是需要为新增的

表添加附加日志。

步骤如下;

如果不是enable则需要手动加入;

GGSCI>addtrandata.

注:(仅对Oracle9i)如果该表有主键或者该表不超过32列,则显示。nablod表示添加

成功;如果无主键并且列超过32列,则可能出现错误显示无法添加则需要手工处理,此时请根

据附录二中方法手工处理。

如果没有使用统配符,则需要在主Extract、DataPump里面最后的table列表里加入新的

复制表;在目标端rcplicat的map列表同样也加入该表的映射.

然后,新增表请首先在日标端建立表结构。

如果有外键和trigger,需要在目标表临时禁止该外键和trigger,并维护在dirsql下的

禁止和启用这些对象的对应脚本文件。

对于修改了文件的所有源和目标进程,均需重启进程使新的参数生效。

(二)减少复制表

GoldenGate缺省复制所有符合通配符条件的表,如果有的表不再需要,可以在源端drop

掉,然后到目标drop掉,无需对复制做任何修改。

如果其中几个表依然存在,只是无需GoldenG&te复制,则可以通过以下步骤排除:

1)在源端系统上首先验证所需归档日志存在后通过stopextXX停止对应的extXX进程;

2)在目标端系统上ggsci中执行stoprcpXX停止目标端的复制进程;

3)在源端修改ext进程的参数文件排除所不复制的表;

在文件定义table的行前面加入一行"tableexclude.;”注意写全schema和表的名称。

注:如果是没有使用通配符,则直接注释掉该表所在的table行即可。

4)在目标端修改r叩进程参数,同样排除该表:

注:如果是没有使用通配符,则直接注释掉该表所在的map行即可,

5)在目标端系统上启动复制进程repXX

GGSCI>startrepXX

6)在源端系统上启动源端的抓取进程extXX

GGSCI>startextXX

即可进入正常复制状态。

(仅复制DML时)修改表结构

当数据库需要复制的表结构有所改变,如增加列,改变某些列的属性如长度等表结构改变

后,可以按照下列步骤执行:

1)按照本文前面所述操作顺序停止源和目标端各抽取及投递进程(注意停源端抽取要验证

一下归档日志是否存在防止无法重起),无需停止manager进程:

2)修改目标表结构;

3)修改源表结构;

4)如果表有主键,并且本次修改未修改主键,则可以直接启动源和目标所有进程继续

复制,完成本次修改;否则,如果表无主键或者本次修改了主键则需继续执行下列步骤;

(仅对Oracle9i)如果表超过了32列则上述操作可能会报错,此时需要手工进行处理,

请参考附录二如何手动为表删除和增加附加日志。

5)重新启动源端和目标端的抓取和复制进程。

如果是客户的应用进行了升级,导致了源系统表的变化,在不配置DDL复制到情况下,需

要对GoldenGate同步进程进行修改,可以参照以下步骤。

1)停止源和目标端各抽取及投递进程(注意停源端抽取要验证一下归档日志是否存在防止

无法重起),无需停止manager进程;

2)对源系统进行升级;

3)在目标端将客户升级应用所创立的存储过程、表、function等操作再重新构建一遍。

对业务表的增删改等DML操作不必在目标端再执行,它们会被OGG复制过去;

4)在目标端手工禁止建立的trigger和外键,并将这些sql以及反向维护的(即重新启用

trigger和外键)SQL添加到目标端OGGdirsql目录下对应的脚本文件里:

注意:在安装实施时,应当将执行的禁止trigger和外键的表放到目标dirsql下,文件名

建议为disableTrigger.sql和disableFK.sql„同时,需要准备一个反向维护(即重新启用

trigger和外键,建议为enableTrigger.sql和enableFK.sql)SQL,同样放置到目标端OGG的

dirsql目录下,以备将来接管应用时重新启用。

5)对于升级过程中在源端增加的表,需要为新增的表添加附加日志。步骤如下:

GGSCI〉dbloginuseridgoldengate,passwordXXXXXXX

GGSCI>infoIrandala.

如果不是enable则需要手动加入:

GGSCI>addtrandata.

注:(仅对Oracle9i)如果该表有主键或者该表不超过32列,则显示。nablod表示添加

成功;如果无主键并且列超过32列,则可能出现错误显示无法添加则需要手工处理,此时请根

据附录二中方法手工处理。

6)对于升级过程中在源端drop掉的表,GoldenGate缺省复制所有符合通配符条件的表,

可以直接在目标端drop掉,无需对复制做任何修改:

7)如果升级过程中修改了主键的表则需继续执行下列步骤;

ggsci>dbloginuseridgoldengate,passwordXXXXXX

ggsci>deletetrandataschema,mytable

ggsci>addtrandataschema,mytable

(仅对Oracle9i)如果表超过了32列则上述操作可能会报错,此时需要手工进行处理,

请参考附录二如何手动为表删除和增加附加日志。

8)重新启动源端和目标端的抓取和复制进程。

对于OGG的DDL复制具体限制请参考附录。鉴于这些限制,另外一个重要因素是DDL的trigger

会对源库性能带来一定的影响,在国网原则.匕并不推荐DDL复制°如果有特殊理由需要打开DDL

复制,可以与Oracle工程师予以私商。

以下内容为配置DDL复制的步骤,仅作参考,具体请参照GoldenGate的官方安装文档。

?(可选,但强烈建议)定期收集统计信息,提高数据字典访问速度

OGG的DDL复制需要大量访问数据字典信息,通过数据库定期收集统计信息(例如,每月

一次),可以有效提高OGCDDL复制的性能。以下为一个例子:

建立OCG复制用户,或给现有用户赋权限:

指定DDL对象所在的schema,这里直接建立在go1dengate用户下:

检查数据库的recyclebin参数是否已关闭:

如不是off,需要关闭recyclebin;

altersystemsetrecyclebin=off

建立OGG的DDL对象;

注意这里的提示:它需要你手工将这个GGSGGSl'SERROLE指定给你的extract所使用的数

据库用户(即参数文件里面通过userid指定的用户),而以到sqlplus下执行类似的sql:

GRANTGGS_GGSUSER_ROLETOggsl:

这里的ggsl是extract使用的用户。如果你有多个extract,使用不同的数据库用户,则

需要重述以上过程全部赋予GGS_GGSUSER_ROLE权限。

启动OGGDDL捕捉的trigger

在sqlplus里面执行ddl_enable.sql脚本启用ddl捕捉的trigger。

说明;ddl捕捉的trigger与OGG的extract进程是相互独立的,它并不依赖于extract

进程存在。即使OGG的extract进程不存在或者没有启动,但是trigger已经启用了,那么捕

捉ddl的动作就一直延续下去。如想彻底停止捕捉DDL捕捉,需要执行下方禁用ddl的trigger。

(可选)安装提高OGGDDL复制性能的工具

为了提供OGG的DDL复制的性能,可以将ddl_pin脚本加入到数据库启动的脚本后面,该

脚本需要带一个OGG的DDL用户(即安装DDL对象的用户,本例中是gcldongat。)的参数:

SQL>@ddl_pin

(如果不再需要DDL复制时)停止OGGDDL捕捉的trigger

在sqlplus里面执行ddldisable,sql脚本启用ddl捕捉的triggero

GoldenGatc的datapump进程和replicat的ddl开关默认是打开的,只有主extract是

默认关闭的,所以DDL的配置一般只在主extract进行。结合附录所述的OCG的各种限制,如

果需要打开DDL复制,则建议只打开跟数据有密切关系的表和index的DDL复制,参数如下:

另外,在mgr里面加入自动purgeddl中间表的参数:

对于其它对象,依然建议使用手工维护的方式在两端同时升级。要注意的是级联删除和trigger,

在目标端建立后应当立即禁用。

如果MGR进程参数文件里面设置了autorestart参数,GoldenGate可以自动重启,无需人

工干预。

当网络发生故障时,GoldenGate奂责产生远地队列的Datapump进程会自动停止.此时,MGR

进程会定期根据mgr.pnn里面autcrestart设置自动启动Datapump进程以试探网络是否恢复。

在网络恢复后,负责产生远程队列为Datapump进程会被重新启动,GoldenGatc的检查点机制

可以保证进程继续从上次中止复制的日志位置继续复制。

需要注意的是,因为源端的抽取进程(Caplure)仍然在不断的抓取日志并写入本地队列文

件,但是Datapump进程不能及时把本地队列搬动到远地,所以本地队列文件无法被自动清除而

堆积下来,需要保证足够容量的存储空间来存储堆积的队列文件,计算公式如下;

存储容量》单位时间产生的队列大小义网络故障恢复时间

MGR定期启动抓取和复制进程参数配置参考:

每3分钟重试一次,5次重试失败以后等待60分钟,然后重新试三次。

在RAC环境下,GoldenGate软件安装在共享目录下。可以通过任一个节点连接到共享目录,

启动GoldenGate运行界面。如果其中一个节点失败,导致GoldenGate进程中止,可直接切换

到另外一个节点继续运行e建议在Oracle技术支持协助下进行以下操作:

1)以oracle用户登录源系统(通过另一完好节点);

2)确认将GoldenGate安装所在文件系统装载到另一节点相同目录;

3)确认GoldenGate安装目录属于oracle用户及其所在组;

4)确认oracle用户及其所在组对GoldenGate安装目录拥有读写权限;

5)进入goldengate安装目录;

6)执行https://blog.csdn.net/uO10794281/article/detai1s/ggsci进入命令行界面;

7)执

温馨提示

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

评论

0/150

提交评论