ogg 日常维护 共同学习交流 请加群(385215695)
1.启动GoldenGate
su - oracle
cd ogg安装目录
./ggsci
start * //启动所有进程
start 进程名 //启动单独进程
start extract * /start replicat * // 启动所有的extract 或者replicat
2.查看GoldenGate各进程状态
Running: 正常运行
Stopped: 正常停止或未能启动
Abended: 异常中断,需要通过以下命令查看报告,找出出错原因
查看进程状态
Info all //查看所有进程运行状态
Info repa //查看某个进程运行状态
查看进程详细信息
Info exta, detail //查看指定进程详细信息
Info exta, showch //查看某个进程的检查点信息,当需要重启时有用
3.查看GoldenGate各进程状态(续一)
View report exta //查看指定进程运行报告。如果出现abend一般要查看报告找出错误信息。进程报告存放在dirrpt目录下
以进程名大写开头,以rpt为后缀。
查看进程延时
LAG exta //查看指定进程复制延迟
检查点信息解读
info exta,showch
EXTRACT EXTGA Last Started 2010-02-10 17:54 Status
STOPPED
Checkpoint Lag 00:00:00 (updated 306:56:35 ago)
Log Read Checkpoint Oracle Redo Logs
2010-02-10 18:07:51 Seqno 44, RBA 25725440
Current Checkpoint Detail:
Read Checkpoint #1
Oracle Redo Log
Startup Checkpoint (starting position in the data source): //启动位置
Sequence #: 44
RBA: 22935568
Timestamp: 2010-02-10 17:54:38.000000
Redo File: C:\APP\LARRY\ORADATA\GGS\REDO02.LOG
Recovery Checkpoint (position of oldest unprocessed transaction in the data
source): //当前重启需要读取的最早日志,也就是最早未提交的交易开始位置
Sequence #: 44
RBA: 25724944
Timestamp: 2010-02-10 18:07:51.000000
Redo File: C:\APP\LARRY\ORADATA\GGS\REDO02.LOG
Current Checkpoint (position of last record read in the data source):
Sequence #: 44 //当前检查点位置,表示在此之前所有提交的交易已经完成复制
RBA: 25725440
Timestamp: 2010-02-10 18:07:51.000000
Redo File: C:\APP\LARRY\ORADATA\GGS\REDO02.LOG
Write Checkpoint #1 //写检查点,表示写到什么位置
GGS Log Trail
Current Checkpoint (current write position):
Sequence #: 14
RBA: 32937
Timestamp: 2010-02-10 18:07:54.703000
Extract Trail: D:\ggs\ggs\dirdat\ra
4.查看GoldenGate各进程状态(续二)
一个Replicat进程检查点示例
Ggsci>Info repa,showch
Current Checkpoint Detail:
Read Checkpoint #1
GGS Log Trail
Startup Checkpoint (starting position in the data source):
Sequence #: 13
RBA: 991
Timestamp: 2010-02-10 17:53:14.750000
Extract Trail: D:\ggs\ggs\dirdat\ra
Current Checkpoint (position of last record read in the data source):
Sequence #: 14
RBA: 32937
Timestamp: 2010-02-10 18:07:45.000000
Extract Trail: D:\ggs\ggs\dirdat\ra
5.停止GoldenGate
su - oracle
cd ogg安装目录
./ggsci
针对所有直接读Oracle日志的ext进程
– 执行info exta, showch命令
– 查看每个进程的所有Read Checkpoint #1 -> Recovery Checkpoint
-> Sequence # (如果是RAC会有多个)
– 到数据库归档日志中查看该日志是否存在,如果该归档存在(或者能
还没有进入归档)则可以安全停止ext进程。否则需要进行特殊处理再
重启,参考后节内容。
说明:本步骤是要验证所有读日志的进程所需的最早日志在重启时依然
可用。GoldenGate重启后需要重新分析这些进程中那些尚未提交的
交易。
选择执行以下命令停止各进程
stop er * //启动所有抽取和复制进程
stop exta/dpea/repa //单独启动某个进程
stop extract */start replicat * //启动所有的extract或者replicat进程
执行stop mgr 命令停止mgr。注意除非修改mgr进程参数,否则mgr一般不需要停止。
6.长交易处理
GoldenGate在提交前将交易缓存在内存和硬盘中,一旦
进程停止则会丢弃这些信息,重启时根据检查点重新读取
GoldenGate提供了一些命令来查看和处理这些长交易
- 查看长交易的方法
send extract <进程名>,showtrans [thread n] [count n]
其中,进程名是要查看的进程名,如exta/dpea/repa
thread n 是可选的,表示只查看其中一个节点上的未提交交易,只用于RAC;
count n 也是可选的,表示只显示n条记录。
例如 查看extsz进程中节点1上最长的10个交易,可以通过下列命令
send extract exta ,showtrans thread 1 count 10
输出结果是以时间降序排列的所有未提交交易列表,通过xid可以查找到对应的事务,请应用开发商和DBA帮助可以查找出未提交原因,通过数据库予以提交或者回滚后GoldenGate的checkpoint会自动向前滚动。
使用GoldenGate命令跳过或接受长交易的方法
在GoldenGate中强制提交或者回滚指定事务,可以通过以下命令(<>中的为参数):
Ggsci> SEND EXTRACT <进程名>, SKIPTRANS <5.17.27634> THREAD <2> //跳过交易
Ggsci>SEND EXTRACT <进程名>, FORCETRANS <5.17.27634> THREAD <1> //强制认为该交易已经提交
说明:使用这些命令只会让GoldenGate进程跳过或者认为该交易已经提交,但并不改变数据库中的交易,他们依旧存在于数据库中。因此,强烈建议使用数据库中提交或者回滚交易而不是使用GoldenGate处理。
7.长交易告警
可以在extract进程中配置长交易告警,参数如下所示:
extract extsz
……
warnlongtrans 12h, checkintervals 10m
exttrail /backup/goldengate/dirdat/sz
….
以上表示GoldenGate会每隔10分钟检查一下长交易,如果有超过12个小时的长交易,GoldenGate会在根目录下的ggserr.log里面加入一条告警信息。可以通过察看ggserr.log或者在ggsci中执行view ggsevt命令查看这些告警信息。以上配置可以有助于及时发现长交易并予以处理。
说明:在OGG 11g中,extract提供了BR参数可以设置每隔一段时间(默认4小时)将长交易缓存到本地硬盘(默认dirtmp目录下),因此extract只要不停止一般需要的归档日志不超过8个小时(极限情况)。但是如果extract停掉后,便无法再自动缓存长交易,需要的归档日志就会依赖于停机时间变长。
8.配置自动删除过期队列
su - oracle
cd ogg安装目录
./ggsci
purgeoldextracts ./dirdat/*, USERCHECKPOINTS, MINKEEPDAYS 7
第一个参数为队列位置,*可匹配备份中心所有队列文件
第二个参数表示是根据检查点计算时间
第三个参数表示最小保留多少天,后面的数字为天数。
如果希望只保留队列/ggs/dirdat/rt文件10天,可以配置如下
purgeoldextracts ./dirdat/rt, usercheckpoints, minkeepdays 10
重启mgr进程
stop mgr
输入y确认停止
start mgr
注:临时停止mgr进程并不影响数据复制进程。
9.配置自动定时重启extract和replicat进程
su - oracle
cd ogg安装目录
./ggsci
执行edit param mgr编辑管理进程参数,加入以下行
AUTORESTART ER *, RETRIES 3, WAITMINUTES 5, RESETMINUTES 60
以上参数表示每5分钟尝试重新启动所有进程,共尝试三次。以后每60分钟
清零,再按照每5分钟尝试一次共试3次。
停止和重启mgr进程,使修改后的参数文件生效
GGSCI > stop mgr
GGSCI > start mgr
10.修改复制表结构
当数据库需要复制的表结构有所改变,如增加列,改变某些
列的属性等表结构改变后,可以按照下列步骤执行:
– 各进程使用lag exta验证无较大延迟(秒一级即可);
– 各进程执行info exta,showch并验证ext进程重启所需日志存在;
– 按顺序停止源和目标端进程;
– 源和目标端执行修改表结构;
– 如表有主键(或唯一索引)且本次修改未修改主键,则直接重启进程;
– 但如果表无主键或者本次修改了主键(或唯一索引)则需继续执行下
列步骤重建附加日志;
ggsci> dblogin userid goldengate, password XXXXXX
ggsci> delete trandata schema.mytable
ggsci> add trandata schema.mytable
– 重新启动源端和目标端的抓取和复制进程。
– 注意:表结构变化后必须要重启ext/rep进程!否则各进程将按照旧
的结构进行复制,会导致数据无法正确复制。
11.增加复制表
1) 对于新增表,首先要在源端对其加入supplemental log。
– GGSCI 〉dblogin userid goldengate, password goldengate
– GGSCI > info trandata <schema>.<table name>
– 如果不是enable则需要手动加入:
– GGSCI > add trandata <schema>.<table name>
2) 在源端系统上ggsci中执行stop extXX停止源端的抓取
进程(注意检查所需最老归档日志是否存在);
3) 在目标端系统上ggsci中执行stop repXX停止目标端的
复制进程;
4) 在源端修改ext进程参数,添加新表:
– Ggsci> edit param extXX
在文件最后加入一行“table myschema.newtable;” 注意写全schema和
表的名称。
12.增加复制表(续一)
在目标端修改rep进程所包含的列表文件:
GGSCI>edit param repXX
在assumetargetdefs下面加入一行:
Handlecollisions //注:如果是空表的话不用加此冲突处理参数
结尾加入一行“map ***.XXX, target ***.XXX;”注意写全schema和表
的名称。
在源端执行exp将该表数据导出;(可选步骤,仅用于需要
执行初始化的表;如表为新表,可以直接在备份端执行建表
sql,然后执行重起即可)
在目标端执行imp将该表数据导入;(可选步骤,仅用于需
要执行初始化的表)
在目标端系统上启动复制进程 repXX
GGSCI > start repXX
在源端系统上启动源端的抓取进程extXX和传输进程dpeXX
GGSCI > start er *
13.增加复制表(续二)
在目标端系统上去掉冲突处理(如果不需要去掉冲突处理则
无需做此步)
GGSCI > lag repXX
直到AT EOF,停止repXX进程:
ggsci>stop repXX
修改repXX.prm:
ggsci>edit param repXX.prm
在handlecollions前面加—将其注释掉;
重新启动repXX:
ggsci>start repXX
即可进入正常复制状态。
14.删除复制表
要移除某个复制表,则执行以下步骤
– 直接源端的进程参数文件中注释掉包含该表的table行
– 目标端同样在rep进程里面注释掉包含该表的map行
– 源端使用info exta,showch查看检查点并验证归档日志是否存在,然
后重启ext进程
– 目标端直接重启rep进程
--15.GoldenGate问题处理步骤
如果GoldenGate复制出现异常,可以通过以下步骤尝试解
决问题:
– 通过ggsci>view ggsevt查看告警日志信息;
– 通过ggsci>view report命令查找ERROR字样,确定错误原因并根据
其信息进行排除;
– 检查两端数据库是否正常运行,网络是否连通;
– 重新启动进程察看是否能正常复制;
– 如不能确定错误原因,则可以寻求技术支持,需要提供以下信息:
操作系统、数据库、GGS版本
错误描述
进程报告,位于dirrpt下以进程名字大写开头加一个序列号,
以.rpt结尾;
GGS日志ggserr.log,位于GGS主目录下;
Ggsci中对出错进程执行“info 进程名,showch”,将输入放到文
本里提供给技术支持。
1.启动GoldenGate
su - oracle
cd ogg安装目录
./ggsci
start * //启动所有进程
start 进程名 //启动单独进程
start extract * /start replicat * // 启动所有的extract 或者replicat
2.查看GoldenGate各进程状态
Running: 正常运行
Stopped: 正常停止或未能启动
Abended: 异常中断,需要通过以下命令查看报告,找出出错原因
查看进程状态
Info all //查看所有进程运行状态
Info repa //查看某个进程运行状态
查看进程详细信息
Info exta, detail //查看指定进程详细信息
Info exta, showch //查看某个进程的检查点信息,当需要重启时有用
3.查看GoldenGate各进程状态(续一)
View report exta //查看指定进程运行报告。如果出现abend一般要查看报告找出错误信息。进程报告存放在dirrpt目录下
以进程名大写开头,以rpt为后缀。
查看进程延时
LAG exta //查看指定进程复制延迟
检查点信息解读
info exta,showch
EXTRACT EXTGA Last Started 2010-02-10 17:54 Status
STOPPED
Checkpoint Lag 00:00:00 (updated 306:56:35 ago)
Log Read Checkpoint Oracle Redo Logs
2010-02-10 18:07:51 Seqno 44, RBA 25725440
Current Checkpoint Detail:
Read Checkpoint #1
Oracle Redo Log
Startup Checkpoint (starting position in the data source): //启动位置
Sequence #: 44
RBA: 22935568
Timestamp: 2010-02-10 17:54:38.000000
Redo File: C:\APP\LARRY\ORADATA\GGS\REDO02.LOG
Recovery Checkpoint (position of oldest unprocessed transaction in the data
source): //当前重启需要读取的最早日志,也就是最早未提交的交易开始位置
Sequence #: 44
RBA: 25724944
Timestamp: 2010-02-10 18:07:51.000000
Redo File: C:\APP\LARRY\ORADATA\GGS\REDO02.LOG
Current Checkpoint (position of last record read in the data source):
Sequence #: 44 //当前检查点位置,表示在此之前所有提交的交易已经完成复制
RBA: 25725440
Timestamp: 2010-02-10 18:07:51.000000
Redo File: C:\APP\LARRY\ORADATA\GGS\REDO02.LOG
Write Checkpoint #1 //写检查点,表示写到什么位置
GGS Log Trail
Current Checkpoint (current write position):
Sequence #: 14
RBA: 32937
Timestamp: 2010-02-10 18:07:54.703000
Extract Trail: D:\ggs\ggs\dirdat\ra
4.查看GoldenGate各进程状态(续二)
一个Replicat进程检查点示例
Ggsci>Info repa,showch
Current Checkpoint Detail:
Read Checkpoint #1
GGS Log Trail
Startup Checkpoint (starting position in the data source):
Sequence #: 13
RBA: 991
Timestamp: 2010-02-10 17:53:14.750000
Extract Trail: D:\ggs\ggs\dirdat\ra
Current Checkpoint (position of last record read in the data source):
Sequence #: 14
RBA: 32937
Timestamp: 2010-02-10 18:07:45.000000
Extract Trail: D:\ggs\ggs\dirdat\ra
5.停止GoldenGate
su - oracle
cd ogg安装目录
./ggsci
针对所有直接读Oracle日志的ext进程
– 执行info exta, showch命令
– 查看每个进程的所有Read Checkpoint #1 -> Recovery Checkpoint
-> Sequence # (如果是RAC会有多个)
– 到数据库归档日志中查看该日志是否存在,如果该归档存在(或者能
还没有进入归档)则可以安全停止ext进程。否则需要进行特殊处理再
重启,参考后节内容。
说明:本步骤是要验证所有读日志的进程所需的最早日志在重启时依然
可用。GoldenGate重启后需要重新分析这些进程中那些尚未提交的
交易。
选择执行以下命令停止各进程
stop er * //启动所有抽取和复制进程
stop exta/dpea/repa //单独启动某个进程
stop extract */start replicat * //启动所有的extract或者replicat进程
执行stop mgr 命令停止mgr。注意除非修改mgr进程参数,否则mgr一般不需要停止。
6.长交易处理
GoldenGate在提交前将交易缓存在内存和硬盘中,一旦
进程停止则会丢弃这些信息,重启时根据检查点重新读取
GoldenGate提供了一些命令来查看和处理这些长交易
- 查看长交易的方法
send extract <进程名>,showtrans [thread n] [count n]
其中,进程名是要查看的进程名,如exta/dpea/repa
thread n 是可选的,表示只查看其中一个节点上的未提交交易,只用于RAC;
count n 也是可选的,表示只显示n条记录。
例如 查看extsz进程中节点1上最长的10个交易,可以通过下列命令
send extract exta ,showtrans thread 1 count 10
输出结果是以时间降序排列的所有未提交交易列表,通过xid可以查找到对应的事务,请应用开发商和DBA帮助可以查找出未提交原因,通过数据库予以提交或者回滚后GoldenGate的checkpoint会自动向前滚动。
使用GoldenGate命令跳过或接受长交易的方法
在GoldenGate中强制提交或者回滚指定事务,可以通过以下命令(<>中的为参数):
Ggsci> SEND EXTRACT <进程名>, SKIPTRANS <5.17.27634> THREAD <2> //跳过交易
Ggsci>SEND EXTRACT <进程名>, FORCETRANS <5.17.27634> THREAD <1> //强制认为该交易已经提交
说明:使用这些命令只会让GoldenGate进程跳过或者认为该交易已经提交,但并不改变数据库中的交易,他们依旧存在于数据库中。因此,强烈建议使用数据库中提交或者回滚交易而不是使用GoldenGate处理。
7.长交易告警
可以在extract进程中配置长交易告警,参数如下所示:
extract extsz
……
warnlongtrans 12h, checkintervals 10m
exttrail /backup/goldengate/dirdat/sz
….
以上表示GoldenGate会每隔10分钟检查一下长交易,如果有超过12个小时的长交易,GoldenGate会在根目录下的ggserr.log里面加入一条告警信息。可以通过察看ggserr.log或者在ggsci中执行view ggsevt命令查看这些告警信息。以上配置可以有助于及时发现长交易并予以处理。
说明:在OGG 11g中,extract提供了BR参数可以设置每隔一段时间(默认4小时)将长交易缓存到本地硬盘(默认dirtmp目录下),因此extract只要不停止一般需要的归档日志不超过8个小时(极限情况)。但是如果extract停掉后,便无法再自动缓存长交易,需要的归档日志就会依赖于停机时间变长。
8.配置自动删除过期队列
su - oracle
cd ogg安装目录
./ggsci
purgeoldextracts ./dirdat/*, USERCHECKPOINTS, MINKEEPDAYS 7
第一个参数为队列位置,*可匹配备份中心所有队列文件
第二个参数表示是根据检查点计算时间
第三个参数表示最小保留多少天,后面的数字为天数。
如果希望只保留队列/ggs/dirdat/rt文件10天,可以配置如下
purgeoldextracts ./dirdat/rt, usercheckpoints, minkeepdays 10
重启mgr进程
stop mgr
输入y确认停止
start mgr
注:临时停止mgr进程并不影响数据复制进程。
9.配置自动定时重启extract和replicat进程
su - oracle
cd ogg安装目录
./ggsci
执行edit param mgr编辑管理进程参数,加入以下行
AUTORESTART ER *, RETRIES 3, WAITMINUTES 5, RESETMINUTES 60
以上参数表示每5分钟尝试重新启动所有进程,共尝试三次。以后每60分钟
清零,再按照每5分钟尝试一次共试3次。
停止和重启mgr进程,使修改后的参数文件生效
GGSCI > stop mgr
GGSCI > start mgr
10.修改复制表结构
当数据库需要复制的表结构有所改变,如增加列,改变某些
列的属性等表结构改变后,可以按照下列步骤执行:
– 各进程使用lag exta验证无较大延迟(秒一级即可);
– 各进程执行info exta,showch并验证ext进程重启所需日志存在;
– 按顺序停止源和目标端进程;
– 源和目标端执行修改表结构;
– 如表有主键(或唯一索引)且本次修改未修改主键,则直接重启进程;
– 但如果表无主键或者本次修改了主键(或唯一索引)则需继续执行下
列步骤重建附加日志;
ggsci> dblogin userid goldengate, password XXXXXX
ggsci> delete trandata schema.mytable
ggsci> add trandata schema.mytable
– 重新启动源端和目标端的抓取和复制进程。
– 注意:表结构变化后必须要重启ext/rep进程!否则各进程将按照旧
的结构进行复制,会导致数据无法正确复制。
11.增加复制表
1) 对于新增表,首先要在源端对其加入supplemental log。
– GGSCI 〉dblogin userid goldengate, password goldengate
– GGSCI > info trandata <schema>.<table name>
– 如果不是enable则需要手动加入:
– GGSCI > add trandata <schema>.<table name>
2) 在源端系统上ggsci中执行stop extXX停止源端的抓取
进程(注意检查所需最老归档日志是否存在);
3) 在目标端系统上ggsci中执行stop repXX停止目标端的
复制进程;
4) 在源端修改ext进程参数,添加新表:
– Ggsci> edit param extXX
在文件最后加入一行“table myschema.newtable;” 注意写全schema和
表的名称。
12.增加复制表(续一)
在目标端修改rep进程所包含的列表文件:
GGSCI>edit param repXX
在assumetargetdefs下面加入一行:
Handlecollisions //注:如果是空表的话不用加此冲突处理参数
结尾加入一行“map ***.XXX, target ***.XXX;”注意写全schema和表
的名称。
在源端执行exp将该表数据导出;(可选步骤,仅用于需要
执行初始化的表;如表为新表,可以直接在备份端执行建表
sql,然后执行重起即可)
在目标端执行imp将该表数据导入;(可选步骤,仅用于需
要执行初始化的表)
在目标端系统上启动复制进程 repXX
GGSCI > start repXX
在源端系统上启动源端的抓取进程extXX和传输进程dpeXX
GGSCI > start er *
13.增加复制表(续二)
在目标端系统上去掉冲突处理(如果不需要去掉冲突处理则
无需做此步)
GGSCI > lag repXX
直到AT EOF,停止repXX进程:
ggsci>stop repXX
修改repXX.prm:
ggsci>edit param repXX.prm
在handlecollions前面加—将其注释掉;
重新启动repXX:
ggsci>start repXX
即可进入正常复制状态。
14.删除复制表
要移除某个复制表,则执行以下步骤
– 直接源端的进程参数文件中注释掉包含该表的table行
– 目标端同样在rep进程里面注释掉包含该表的map行
– 源端使用info exta,showch查看检查点并验证归档日志是否存在,然
后重启ext进程
– 目标端直接重启rep进程
--15.GoldenGate问题处理步骤
如果GoldenGate复制出现异常,可以通过以下步骤尝试解
决问题:
– 通过ggsci>view ggsevt查看告警日志信息;
– 通过ggsci>view report命令查找ERROR字样,确定错误原因并根据
其信息进行排除;
– 检查两端数据库是否正常运行,网络是否连通;
– 重新启动进程察看是否能正常复制;
– 如不能确定错误原因,则可以寻求技术支持,需要提供以下信息:
操作系统、数据库、GGS版本
错误描述
进程报告,位于dirrpt下以进程名字大写开头加一个序列号,
以.rpt结尾;
GGS日志ggserr.log,位于GGS主目录下;
Ggsci中对出错进程执行“info 进程名,showch”,将输入放到文
本里提供给技术支持。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/29615265/viewspace-2139610/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/29615265/viewspace-2139610/