字段更改造成ogg进程停止解决办法

紧急DDL变更与Oracle GoldenGate
本文记录了一次紧急的数据库DDL变更过程,包括使用Oracle GoldenGate进行数据同步的步骤及遇到的问题解决方法。

收到开发人员的变更邮件申请,需要在某个表增加字段,由于我们的环境DDL是没有开启的。用的消息中间件Kafka做传输消费,应用到目标库。由于紧急变更,先做字段变更吧。
字段更改造成ogg进程停止解决办法

变更完成后,查看ogg状态;
[oracle@bapdb1 ggs12]$ ./ggsci

Oracle GoldenGate Command Interpreter for Oracle
Version 12.1.2.1.0 OGGCORE_12.1.2.1.0_PLATFORMS_140727.2135.1_FBO
Linux, x64, 64bit (optimized), Oracle 11g on Aug 7 2014 09:14:25
Operating system character set identified as UTF-8.

Copyright (C) 1995, 2014, Oracle and/or its affiliates. All rights reserved.

GGSCI (bapdb1) 2> info all

Program Status Group Lag at Chkpt Time Since Chkpt

MANAGER RUNNING
JAGENT RUNNING
EXTRACT RUNNING EXTDMQ 00:00:03 00:00:07
EXTRACT RUNNING EXTNEWP 00:00:04 00:00:09
EXTRACT RUNNING EXT_KAF 00:00:03 00:00:00
EXTRACT RUNNING EXT_KAF2 00:00:03 00:00:03
EXTRACT RUNNING EXT_KAF4 00:00:03 00:00:03
EXTRACT RUNNING EXT_KAF5 00:00:01 00:00:04
EXTRACT RUNNING EXT_KAF6 00:00:02 00:00:01
EXTRACT RUNNING EXT_KAF7 00:00:03 00:00:08
EXTRACT RUNNING EXT_KAF8 00:00:03 00:00:06
EXTRACT RUNNING PMP_KAF 00:00:00 00:00:04
EXTRACT RUNNING PMP_KAF2 00:00:00 00:00:08
EXTRACT RUNNING PMP_KAF4 00:00:00 00:00:10
EXTRACT RUNNING PMP_KAF5 00:00:03 00:00:06
EXTRACT RUNNING PMP_KAF6 00:00:04 00:00:02
EXTRACT RUNNING PMP_KAF7 00:00:03 00:00:03
EXTRACT RUNNING PMP_KAF8 00:00:04 00:00:05
EXTRACT RUNNING PUDMQ 00:00:00 00:00:04
EXTRACT RUNNING PUMPNEWP 00:00:00 00:00:01
REPLICAT RUNNING REPZW1 00:00:00 00:00:01

手工停止该表用到的进程,抽取和投递均停止后,等待邮件报错,找到对应的目标端机器;

字段更改造成ogg进程停止解决办法

找到kafka地址为10.1.x.9的地址,登陆机器

[systemusers@PBSDATASKAFKAGROUP2-1 ~]$ sudo su - app
[app@PBSDATASKAFKAGROUP2-1 ~]$ ls
data datalogs glt jdk1.8.0_101 jdk1.8.0_25 kafka_2.12-1.0.0 logs nohup.out ogg scripts shell tools zookeeper-3.4.11
[app@PBSDATASKAFKAGROUP2-1 ~]$ ps -ef |grep mgr
root 22 2 0 Mar19 ? 00:00:00 [async/mgr]
app 11451 1 0 Mar22 ? 00:43:43 ./mgr PARAMFILE /home/app/ogg/ggs12/dirprm/mgr.prm REPORTFILE /home/app/ogg/ggs12/dirrpt/MGR.rpt PROCESSID MGR
app 71909 71834 0 17:36 pts/0 00:00:00 grep mgr
[app@PBSDATASKAFKAGROUP2-1 ~]$ pwd
/home/app
[app@PBSDATASKAFKAGROUP2-1 ~]$ cd ogg/ggs12/
[app@PBSDATASKAFKAGROUP2-1 ggs12]$ ./ggsci
Oracle GoldenGate for Big Data
Version 12.3.1.1.1

Oracle GoldenGate Command Interpreter
Version 12.3.0.1.0 OGGCORE_OGGADP.12.3.0.1.0GA_PLATFORMS_170828.1608
Linux, x64, 64bit (optimized), Generic on Aug 28 2017 17:13:45
Operating system character set identified as UTF-8.

Copyright (C) 1995, 2017, Oracle and/or its affiliates. All rights reserved.

GGSCI (PBSDATASKAFKAGROUP2-1) 1> info all

Program Status Group Lag at Chkpt Time Since Chkpt

MANAGER RUNNING
REPLICAT RUNNING REP_75 00:00:00 00:00:06
REPLICAT RUNNING REP_75_2 00:00:03 00:00:04
REPLICAT ABENDING REP_75_3 00:00:03 00:00:02
REPLICAT RUNNING REP_90 00:00:00 00:00:00
REPLICAT RUNNING REP_90_1 00:00:05 00:00:08
REPLICAT RUNNING REP_90_2 00:00:00 00:00:00
REPLICAT RUNNING REP_90_3 00:00:00 00:00:01

2018-05-31 17:04:28 ERROR OGG-01161 Bad column index (31) specified for table CFS.T_CFS_ACCT_ITEM, max columns = 31.

2018-05-31 17:04:28 ERROR OGG-01668 PROCESS ABENDING.

源端进行操作,先将原来的defgen文件转存一份加时间日期。
[oracle@bapdb1 ggs12]$cd dirdef/
[oracle@bapdb1 ggs12]$mv defgen75_3.def defgen75_3.def_0531
[oracle@bapdb1 ggs12]$ pwd
/ggs/ggs12
[oracle@bapdb1 ggs12]$defgen paramfile ./dirprm/defgen75_3.prm
生成新的defgen75_3.def文件,传送到目标kafka服务器中,

kafka端操作:
[app@PBSDATASKAFKAGROUP2-1 ggs12]$cd dirdef/
[app@PBSDATASKAFKAGROUP2-1 dirdef]$ mv defgen75_3.def defgen75_3.def_0531

然后在目标库中添加字段操作!

最后kafka目标机中ogg进程启动即可,
GGSCI (PBSDATASKAFKAGROUP2-1) 1> info all

Program Status Group Lag at Chkpt Time Since Chkpt

MANAGER RUNNING
REPLICAT RUNNING REP_75 00:00:05 00:00:01
REPLICAT RUNNING REP_75_2 00:00:03 00:00:02
REPLICAT RUNNING REP_75_3 00:00:04 00:00:05
REPLICAT RUNNING REP_90 00:00:00 00:00:00
REPLICAT RUNNING REP_90_1 00:00:05 00:00:05
REPLICAT RUNNING REP_90_2 00:00:00 00:00:05
REPLICAT RUNNING REP_90_3 00:00:00 00:00:07

<think> 嗯,用户想了解Oracle OGG目标端启动mgr进程时如何自动开启REPLICAT进程。这个问题很具体,看来用户正在部署OGG复制环境,可能是个DBA或者系统运维工程师。 从引用内容看,用户提供的参考资料涉及运维实操,其中引用[2]提到DDL开关配置,引用[3][4]都是关于MGR启动故障的案例,说明用户可能遇到过类似问题。现在用户关注的是进程联动启动的自动化配置,这属于OGG运维的进阶需求。 核心解决方案在于MGR参数文件里的AUTOSTART参数。需要分三步处理:首先确认当前REPLICAT进程状态,其次配置MGR自动启动规则,最后验证联动效果。这里要注意权限问题,ogg操作系统用户必须能执行对应操作。 考虑到用户实操场景,特别强调了三个关键点:进程名大小写敏感问题、通配符使用限制、失败重试机制。这些都是实际运维中容易踩坑的地方。比如引用[5]提到的字段变更导致进程停止,如果配置了AUTORESTART就能自动恢复。 另外补充了安全建议,因为引用[1][2]都提到密码安全问题。最后延伸的问题设计也参考了引用[3][4]的故障案例,帮助用户预防后续可能遇到的启动失败问题。 </think> 在Oracle GoldenGate目标端配置MGR进程自动启动REPLICAT进程,需通过**修改MGR参数文件**实现,具体步骤如下: ### 关键配置方法 1. **编辑MGR参数文件** 打开目标端MGR配置文件(默认`dirprm/mgr.prm`),添加以下指令: ```bash AUTOSTART REPLICAT <进程名> ``` 或使用通配符启动所有REPLICAT进程: ```bash AUTOSTART REPLICAT * ``` 2. **添加重试机制(可选)** 配置失败时自动重试,避免因短暂错误导致进程停滞: ```bash AUTORESTART REPLICAT *, RETRIES 5, WAITMINUTES 3 ``` 3. **完整配置示例** ```bash PORT 7809 AUTOSTART REPLICAT REP* AUTORESTART REPLICAT *, RETRIES 10, WAITMINUTES 5 PURGEOLDEXTRACTS ./dirdat/*, USECHECKPOINTS ``` ### 实施步骤 1. **停止MGR进程** ```bash SEND MGR STOP ``` 2. **修改参数文件** 使用`vi`等工具编辑`./dirprm/mgr.prm`,添加上述`AUTOSTART`指令。 3. **重启MGR进程** ```bash START MGR ``` 4. **验证配置** ```bash VIEW REPORT MGR # 查看日志确认AUTOSTART生效 INFO ALL # 检查REPLICAT进程状态 ``` ### ⚠️ 注意事项 1. **进程名匹配** - 使用`*`时需确保无冲突进程 - 精确命名更安全(如`AUTOSTART REPLICAT rep_order`) 2. **权限检查** MGR进程操作系统账号需有权限启动REPLICAT(参考引用[1][^1]的目录权限设置) 3. **故障排查** - 若启动失败,检查`ggserr.log`错误日志 - 常见错误如`OGG-00664`(数据库不可用)需先解决Oracle实例状态问题(参考引用[4][^4]) --- ### 相关问题 1. **如何配置REPLICAT进程失败后自动重启?** > 使用`AUTORESTART`参数,例如: > `AUTORESTART REPLICAT rep_cust, RETRIES 8, WAITMINUTES 10` 2. **MGR进程无法启动`OGG-00664`错误如何解决?** > 检查: > - Oracle实例状态(`sqlplus / as sysdba`) > - OGG环境变量配置(参考引用[1][^1] 1.2.2节) > - `libgglog.so`权限(参考引用[3][^3]) 3. **字段变更导致REPLICAT中止(`OGG-01161`)如何处理?** > 需: > 1. 暂停进程 > 2. 修改表定义文件(`DEFGEN`重新生成) > 3. 重启进程(参考引用[5][^5]) 4. **如何实现DDL同步的自动化管理?** > 在源端`extract`参数中启用: > `DDL INCLUDE OBJTYPE TABLE, INCLUDE OPTYPE CREATE` > 目标端`REPLICAT`添加相同配置(参考引用[2][^2])
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值