GoldenGate进程 abend,报错为OGG-00868 ORA-02396: Exceeded Maximum Idle Time, Please Connect Again

本文详细解析了GoldenGate进程中出现的OGG-00868 ORA-02396错误,即“超出最大空闲时间,请重新连接”,并提供了通过检查用户连接超时设置来解决问题的方法。

GoldenGate进程 abend,报错为OGG-00868 ORA-02396: Exceeded Maximum Idle Time, Please Connect Again

参考原文:
GoldenGate Processes Abend with OGG-00868 ORA-02396: Exceeded Maximum Idle Time, Please Connect Again (Doc ID 1393647.1)

适用于:
Oracle GoldenGate - Version: 11.1.1.0.0 to 11.1.1.1.20 - Release: 11.1.1 to 11.1.1.1
Information in this document applies to any platform.


症状:
Oracle GoldenGate (OGG) 进程abend,其报错为:

Extract (or replicat)进程
ERROR OGG-00868 ORA-02396: exceeded maximum idle time, please connect again.


Manager 进程
ERROR OGG-00665 OCI Error describe for query (bad syntax) (status = 2396-ORA-02396: exceeded maximum idle time, please connect again), SQL<SELECT 1 FROM DUAL WHERE EXISTS ( SELECT 'x' FROM GGS_OWNER.GGS_MARKER WHERE OPTIME < '...')>.
ERROR OGG-01668 PROCESS ABENDING.

原因:
用户连接超时会发生该问题。检查 该用户是否设置了time out。

解决方案:
SQL> select USERNAME,USER_ID,ACCOUNT_STATUS,PROFILE from dba_users where USERNAME='ggs_owner';
确认profile是用的哪个,然后再检查 gg user的 idle timeout情况:

SQL> select * from dba_profiles where resource_name='IDLE_TIME';

若是查询结果中有gg user使用的profile,请检查该profile是否有限制,或者设置为UNLIMITED

若是  UNLIMITED 不可行,那就加大time out的 时间到一个合适的值。

Oracle GoldenGate 在连接数据库时出现 **ORA-12154: TNS: could not resolve the connect identifier specified** 错误,通常表示 Oracle Net 无法解析连接字符串中指定的 `connect identifier`。以下是该问题的分析与解决方法。 ### 问题成因 ORA-12154 错误的根源通常与 `tnsnames.ora` 文件配置不正确或缺失相关。Oracle GoldenGate 在连接数据库时依赖于 Oracle Net 服务名解析机制,若 `tnsnames.ora` 中未定义所需的 TNS 别名,或别名定义有误,则会触发此错误。 例如,在引用中提到的 GoldenGate 配置错误中,配置文件中使用了 `SYS@CBOMS:1568/+ASM1` 的连接标识符,但未在 `tnsnames.ora` 中定义 `CBOMS:1568/+ASM1`,导致连接失败 [^3]。 ### 解决方法 #### 1. 检查 `tnsnames.ora` 文件内容 确保 `$ORACLE_HOME/network/admin/tnsnames.ora` 文件中包含正确的 TNS 别名定义。例如,对于可插拔数据库 `SALES`,应添加如下格式的条目: ```plaintext SALES = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = your_host)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = sales.example.com) ) ) ``` 若 GoldenGate 需要连接 ASM 实例,也应为 ASM 配置相应的 TNS 条目: ```plaintext ASM1 = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = asm_host)(PORT = 1521)) (CONNECT_DATA = (SID = +ASM1) ) ) ``` #### 2. 验证 TNS 别名是否可解析 使用 `tnsping` 命令测试 TNS 别名是否能被正确解析: ```bash tnsping SALES tnsping ASM1 ``` 若返回 `OK`,表示别名配置正确;否则,需检查 `tnsnames.ora` 文件路径是否正确,以及别名拼写是否准确。 #### 3. 修改 GoldenGate 配置文件中的连接字符串 在 GoldenGate 抽取进程配置文件中,将连接字符串中的完整地址格式(如 `SYS@CBOMS:1568/+ASM1`)替换为 `tnsnames.ora` 中定义的别名(如 `SYS@ASM1`) [^3]: ```plaintext EXTRACT eiexAA USERID ggtransfer, PASSWORD ggtransfer TRANLOGOPTIONS ASMUSER SYS@ASM1, ASMPASSWORD oracle EXTTRAIL ./dirdat/dd DDLTABLE test.*; ``` #### 4. 设置环境变量 确保 GoldenGate 启动脚本中设置了正确的 `ORACLE_HOME` 和 `LD_LIBRARY_PATH` 环境变量,以确保 Oracle Net 配置文件(如 `tnsnames.ora`、`sqlnet.ora`)被正确加载。 ```bash export ORACLE_HOME=/u01/app/oracle/product/19.0.0/dbhome_1 export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH ``` #### 5. 检查监听器状态 确保 Oracle 监听器正在运行,并且配置中包含对应的 `SID` 或 `SERVICE_NAME`。使用以下命令检查监听器状态: ```bash lsnrctl status ``` 若监听器未运行,启动监听器: ```bash lsnrctl start ``` ###
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值