OGG_GoldenGate日常维护(案例)

2014-03-12 Created By BaoXinjian

一、摘要


1. 长事物处理

2. 源端和目标端增减复制表

3. 数据库表重新同步

4. 给数据库打补丁

5. 给GoldenGate打补丁

 

二、长事物处理


1. 检查长事务的存在

(1). 查看交易

info EXT1, showch

(2). 查看长交易

查看节点1 上最长的10条交易

send extract EXT1, showtrans thread1, count10

2. 使用GoldenGate命令跳过或接受长交易的方法

(1). 命令跳过该交易

send extract EXT1, skiptrans 5.17.27634 thread 2

(2). 该命令认为该交易已经提交

send extract EXT1, forcetrans 5.17.27634 thread 2

(3). 其他

该命令回事GoldenGate进程跳过或认为该交易已经提交,并不会该编辑数据库中的交易,因此强烈建议使用数据库提交或者回滚交易,而不是GoldenGate去处理长交易异常

3. 配置长交易警告

修改Extract进程中参数配置长交易警告

以下设定GoldenGate会每隔10分钟检查一下长交易,如果有超过12个小时的长交易,GoldeGate会在根目录下ggserr.log产生警告系想你

warnlongtrans 12h, checkintervals 10m

 

三、源端和目标端增减复制表


1. 增加复制表

info trandata gavin.ogg_test

add trandata gavin.ogg_test

2. 修改表的结构

Step1. 停止源和目标端各抽取及投递进程,无需停止manager进程

Step2. 修改目标表结构

Step3. 修改源表结构

Step4. 如果表有主键,且这次修改未修改主键,则可以直接启动进程,否则表中有主键,或者主键被修改,需通过以下方式进行修正

delete trandata gavin.ogg_test

add trandata gavin.ogg_test

3. 减少复制表

Step1. 停止源和目标端各抽取及投递进程,无需停止manager进程

Step2. 修改extract进程的参数文件排除所不复制的表

tableexclued gavin.ogg_test

Step3. 修改replicat进程的参数文件排除所不复制的表

mapexclued gavin.ogg_test

Step4. 重启replicat和extract进程


四、 数据库表的重新同步


如果因为各种原因造成两边数据不一致,需要重新进行同步

Step1. 确认需要同步的数据

Step2. 停止进程replicat / pump / extract进程

Step3. 获取源端数据库表当前的SCN

select dbms_flashback.get_system_change_number current_scn from dual;

Step4. 在源端通过数据泵导出数据

exp apps/apps DIRECT=y BUFFER=6400000 FLASHBACK_SCN=1647598704 \

CONSTRAINTS=N GRANTS=N TRIGGERS=N \

file=/opt/oracle/ggate/backup/new_tab.dump log=/opt/oracle/ggate/backup/new_tab.log \

tables=GAVIN.GAVIN_TEST_OGG

Step5. 在目标端通过数据泵导入数据

expdp apps/apps file=/opt/oracle/ggate/backup/new_tab.dump log=/opt/oracle/ggate/backup/new_tab.log

fromuser=GAVIN touser GAVIN commit=y ignore=y buffer=5248800&

Step6. 如果有外键,在目标端检查这些外键并禁止

Step7. 重启进程并检查,源端和目标端数据是否一致

 

五、给数据库打补丁


1. 如果是小的补丁,对OGG没有特别的印象

2. 如果是升级之类的大补丁,查看metalink,对OGG也做相应的升级处理

 

六、给GoldenGate打补丁摘要


1. 关闭所有进程

2. 将打包补丁程序,压缩至新目录,后覆盖原目录

3. 重启所有进程

 

Thank and Regards

你可能感兴趣的:(goldengate)