随笔 - 571  文章 - 4  评论 - 253  阅读 - 72万

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

posted on   东方瀚海  阅读(2435)  评论(0编辑  收藏  举报
编辑推荐:
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?

点击右上角即可分享
微信分享提示