Goldengate维护与监控Word格式文档下载.docx
《Goldengate维护与监控Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《Goldengate维护与监控Word格式文档下载.docx(21页珍藏版)》请在冰豆网上搜索。
5.参考文献20
GoldenGateTDM软件监控与运维指南
引言
概述
本章节所有文本均基于OracleGoldenGateV10.4/11.1版本。
所有部署在生产系统的GoldenGate进程,均需要经过开发、测试小组严格认真的测试之后才可以进行部署。
对于运行维护中出现的问题,也需要开发、测试和运维小组密切配合,查找原因,商定解决方案,经过测试之后部署到生产系统。
GoldenGate复制软件本身有一些限制,可能不支持或有限支持某些场景下的数据复制。
应明确了解这些限制,并在实际生产中避免这些情况。
参见参考文档。
术语和缩略语
完整说法
缩略说法
1.
GoldenGate
GG
2.
JavaRumtimeEnvironment
JRE
3.
Extract
GoldenGate软件的抽取进程,又叫Capture进程,一般用于抽取数据库日志抓取数据变化或将本地队列中数据传递到目标端。
4.
Replicat
GoldenGate软件的投递进程,又称为Delivery进程,用于将队列文件中的数据变化转换为sql应用到目标库。
5.
DataPump
专指将本地队列中数据传递到目标端的Extract进程,区别于读取日志的主Extract进程。
6.
Trail
GoldenGate的队列文件,存储增删改等数据变化,以其专有格式存放。
注:
GoldenGate术语中把Capture和Datapump进程都叫做Extract进程,这是因为二者都负责把数据从一个地方抽取出来,放到另一个地方。
但是二者有根本的不同:
Capture进程负责将数据从日志中抽取到本地队列文件,而Datapump进程负责将数据从本地队列文件抽取到目标端队列文件。
本文中,提到Extract进程的地方,都包含了这两类进程;
提到Capture和Datapump进程,则分别有所指代。
本文中的Delivery进程和Replicat进程则是同一回事。
基于命令行的监控
说明
对GoldenGate实例进行监控,最简单的办法是通过GGSCI命令行的方式进行。
通过在命令行输入一系列命令,并查看返回信息,来判断GoldenGate运行情况是否正常。
命令行返回的信息包括整体概况、进程运行状态、检查点信息、参数文件配置、延时等。
启动GoldenGate进程
1)首先以启动GoldenGate进程的系统用户(一般为oracle)登录源系统。
针对河南农信本次gg实施,源和目标的GG软件均安装在oracle用户/oracle/ggs目录下
2)进入GoldenGate安装目录,执行./ggsci进入命令行模式。
3)启动源端管理进程GGSCI>
startmgr
4)同样登陆到目标端GoldenGate安装目录,执行./ggsci,然后执行GGSCI>
startmgr启动管理进程。
5)在源端执行GGSCI>
starter*启动所有进程
6)同样登录到备份端执行GGSCI>
7)使用GGSCI>
infoer*或者
GGSCI>
info<
进程名>
察看进程状态是否为Running(表示已经启动)。
注意有的进程需要几分钟起来,请重复命令观察其启动状态。
说明:
无论源还是目标,启动各extract/replicat进程前需要启动mgr进程。
start命令的一般用法是:
start<
进程名称>
如:
GGSCI>
startext01启动一个名叫ext01的进程
也可以使用通配符,如:
starter*启动所有的extract和replicat进程
startextractext*启动所有的以”ext”开头的extract进程
startreplicatrep*启动所有以“rep“开头的replicat进程
停止GoldenGate进程
依照以下步骤停止GoldenGate进程:
1)以启动GoldenGate进程的系统用户(一般为oracle)登录源主机,进入GoldenGate安装目录执行./ggsci进入命令行管理界面
2)(本步骤仅针对抽取日志的主extract进程,datapump进程和replicat进程不需要本步骤)验证GoldenGate的抽取进程重起所需的日志存在,对各个主extXX进程,执行如下命令:
ggsci>
infoextXX,showch
…..
ReadCheckpoint#1
….
RecoveryCheckpoint(positionofoldestunprocessedtransactioninthedatasource):
Thread#:
1
Sequence#:
9671
RBA:
239077904
Timestamp:
2008-05-2011:
39:
07.000000
SCN:
2195.1048654191
RedoFile:
Notavailable
CurrentCheckpoint(positionoflastrecordreadinthedatasource):
239377476
10.000000
2195.1048654339
NotAvailable
ReadCheckpoint#2
RecoveryCheckpoint(positionofoldestunprocessedtransactioninthedatasource):
2
5287
131154160
37:
42.000000
2195.1048640151
/dev/rredo07
138594492
14.000000
2195.1048654739
首先察看RecoveryCheckpoint所需要读取的最古老日志序列号,如举例中的实例1需要日志9671及其以后所有归档日志,实例2需要序列号为5287及以后所有归档日志,确认这些归档日志存在于归档日志目录后才可以执行下一步重起。
如果这些日志已经被删除,则下次重新启动需要先恢复归档日志。
3)执行GGSCI>
stoper*停止所有源进程,或者分别对各个进程执行stop<
单独停止。
4)以oracle用户登录目标系统,进入安装目录/oraclelog1/goldengate,执行./ggsci进入命令行。
5)在目标系统执行stoper*停止复制
6)在两端进程都已停止的情况下,如需要可通过stopmgr停止各系统内的管理进程。
类似的,stop命令具有跟start命令一样的用法。
这里不再赘述。
注意,如果是只修改抽取或者复制进程参数,则不需要停止MGR。
不要轻易停止MGR进程,并且慎重使用通配符er*,以免对其他复制进程造成不利影响。
查看整体运行情况
进入到GoldenGate安装目录,运行GGSCI,然后使用infoall命令查看整体运行情况。
如下图示:
Group表示进程的名称(MGR进程不显示名字);
Lag表示进程的延时;
Status表示进程的状态。
有四种状态:
STARTING:
表示正在启动过程中
RUNNING:
表示进程正常运行
STOPPED:
表示进程被正常关闭
ABENDED:
表示进程非正常关闭,需要分析原因
正常情况下,所有进程的状态应该为RUNNING,且Lag应该在一个合理的范围内。
查看参数设置
使用viewparams<
可以查看进程的参数设置。
该命令同样支持通配符*。
查看进程状态
使用info<
命令可以查看进程信息。
可以查看到的信息包括进程状态、checkpoint信息、延时等。
还可以使用info<
detail命令查看更详细的信息。
包括所使用的trail文件,参数文件、报告文件、警告日志的位置等。
showch命令可以查看到详细的关于checkpoint的信息,用于查看GoldenGate进程处理过的事务记录。
其中比较重要的是extract进程的recoverycheckpoint,它表示源数据中最早的未被处理的事务;
通过recoverycheckpoint可以查看到该事务的redolog位于哪个日志文件以及该日志文件的序列号。
所有序列号比它大的日志文件,均需要保留。
查看延时
lag<
可以查看详细的延时信息。
此命令比用info命令查看到的延时信息更加精确。
注意,此命令只能够查看到最后一条处理过的记录的延时信息。
此命令支持通配符*。
查看统计信息
stats<
<
时间频度>
table<
ownername>
.<
tablename>
可以查看进程处理的记录数。
该报告会详细的列出处理的类型和记录数。
statsedr,total列出自进程启动以来处理的所有记录数。
statsedr,daily,tablegg.test列出当天以来处理的有关gg.test表的所有记录数。
查看运行报告
viewreport<
可以查看运行报告。
也可以进入到<
GoldenGate安装目录>
/dirrpt/目录下,查看对应的报告文件。
最新的报告总是以<
.rpt命名的。
加后缀数字的报告是历史报告,数字越大对应的时间越久。
如果进程运行时有错误,则报告文件中会包括错误代码和详细的错误诊断信息。
通过查找错误代码,可以帮助定位错误原因,解决问题。
日常维护指南
日常维护注意事项
配置自动删除队列
1)进入安装目录执行./ggsci;
2)执行editparammgr编辑管理进程参数,加入或修改以下行
purgeoldextracts/<
goldengate安装目录>
/dirdat/*,usecheckpoint,minkeepdays7
其中,第一个参数为队列位置,*可匹配备份中心所有队列文件;
第二个参数表示是首先要保证满足检查点需要,不能删除未处理队列;
第三个参数表示最小保留多少天,后面的数字为天数。
例如,如果希望只保留队列/ggs/dirdat/xm文件3天,可以配置如下:
purgeoldextracts/ggs/dirdat/xm,usecheckpoint,minkeepdays3
3)停止MGR进程,修改好参数后重启该进程
GGSCI>
stopmgr
输入y确认停止
注:
临时停止mgr进程并不影响数据复制。
配置启动MGR时自动启动Extract和Replicat进程
2)执行editparammgr编辑管理进程参数,加入以下行
AUTOSTARTER*
注意:
一般建议不用自动启动,而是手工启动,便于观察状态验证启动是否成功,同时也便于手工修改参数。
配置MGR自动重新启动Extract和Replicat进程
GoldenGate具有自动重起extract或者replicat进程的功能,能够自动恢复如网络中断、数据库临时挂起等引起的错误,在系统恢复后自动重起相关进程,无需人工介入。
1)进入安装目录执行ggsci进入命令行界面;
AUTORESTARTER*,RETRIES3,WAITMINUTES5,RESETMINUTES60
以上参数表示每5分钟尝试重新启动所有进程,共尝试三次。
以后每60分钟清零,再按照每5分钟尝试一次共试3次。
3)停止MGR进程,修改好参数后重启该进程,使修改后的参数文件生效
启停Goldengate
Ø
情形1停止Goldengate
在源端停止响应的抽取,传输进程
GGSCI(szxsrv1)2>
infoall
ProgramStatusGroupLagTimeSinceChkpt
MANAGERRUNNING
EXTRACTRUNNINGEDP0100:
00:
0200:
01
EXTRACTRUNNINGEDP0200:
08
EXTRACTRUNNINGEXT0100:
0000:
03
EXTRACTRUNNINGEXT0200:
0100:
02
则运行
StopEXT01;
stopEXT02;
StopEDP01;
stopEDP02
Stopmgr
相应的停止目标的复制进程
●如果是目标端的机器重启,则先停止目标端的Replicat进程,然后到源端停止传输进程。
当目标端的机器重启后,到源端启动传输进程,再启动目标端的Replicat进程。
具体步骤如下:
1首先目标端的Replicat进程情况
GGSCI(XDSRV1)1>
REPLICATRUNNINGREP0100:
10
REPLICATRUNNINGREP0200:
00
REPLICATRUNNINGREP0300:
REPLICATRUNNINGREP0400:
REPLICATRUNNINGREP0500:
REPLICATRUNNINGREP0600:
REPLICATRUNNINGREP0700:
2停止目标端的Replicat进程
stopREP01停止其他的Replicat进程命令与其类似。
3查看源端的传输进程
4停止源端的传输进程
stopEDP01
启动过程与其正好相反,命令为start****
●如果是目标端数据库重启,则只需要停止目标端的Replicat进程即可。
步骤如下:
1首先查看目标端Replicat进程情况
2停止所有目标端的Replicat进程
stopREP01
stopREP02
stopREP03
stopREP04
stopREP05
stopREP06
stopREP07
情形2停止rac
在停止rac之前,先按照上面的步骤停止Goldengate
然后在停止rac环境。
长事务管理
前面已经讲到在停止抽取进程前需要通过命令检查是否存在长交易,以防止下次启动无法找到归档日志:
为了方便长交易的管理,GoldenGate提供了一些命令来查看这些长交易,可以帮助客户和应用开发商查找到对应长交易,并在GoldenGate中予以提交或者回滚。
(一)查看长交易的方法
Ggsci>
sendextract<
showtrans[threadn][countn]
其中,<
为所要察看的进程名,如extsz/extxm/extjx等;
Threadn是可选的,表示只查看其中一个节点上的未提交交易;
Countn也是可选的,表示只显示n条记录。
例如,查看extsz进程中节点1上最长的10个交易,可以通过下列命令:
sendextractextsz,showtransthread1count10
输出结果是以时间降序排列的所有未提交交易列表,通过xid可以查找到对应的事务,请应用开发商和DBA帮助可以查找出未提交原因,通过数据库予以提交或者回滚后GoldenGate的checkpoint会自动向前滚动。
(二)使用GoldenGate命令跳过或接受长交易的方法
在GoldenGate中强制提交或者回滚指定事务,可以通过以下命令(<
>
中的为参数):
SENDEXTRACT<
SKIPTRANS<
5.17.27634>
THREAD<
2>
//跳过交易
SENDEXTRACT<
FORCETRANS<
1>
//强制认为该交易已经提交
使用这些命令只