在使用GoldenGate进行数据初始化加载(init data load)的过程中,OGG-00869和OGG-00199是较为常见的报错,很多用户遇到这类问题后不知道如何下手排查。下面我们先来看这两个报错的核心含义,再逐步讲解解决方法。

报错含义解析
首先我们需要明确两个报错的基础含义,才能针对性排查:
- OGG-00869:通常是进程运行过程中出现通用错误,大多和参数配置、文件路径、权限相关,在初始化加载场景下常和表操作、数据读取相关。
- OGG-00199:一般是表相关的错误,比如表不存在、没有访问权限、表结构不匹配、字段映射错误等,是初始化加载时数据同步环节的高频报错。
常见触发场景与解决方法
场景1:源端或目标端表权限不足
初始化加载需要进程对源表有读取权限,对目标表有写入权限,如果权限缺失就会触发这两个报错。排查时可以先用数据库用户登录,手动执行查询和插入操作验证权限:
-- 源端验证读取权限 SELECT COUNT(*) FROM 源端用户名.待同步表名; -- 目标端验证写入权限 INSERT INTO 目标端用户名.待同步表名(字段1,字段2) VALUES(测试值1,测试值2);
如果执行失败,需要给GoldenGate使用的数据库用户授予对应权限:
-- 源端授权 GRANT SELECT ON 源端用户名.待同步表名 TO GoldenGate用户; -- 目标端授权 GRANT INSERT,UPDATE,DELETE ON 目标端用户名.待同步表名 TO GoldenGate用户;
场景2:表结构不匹配
如果源端和目标端的表结构存在差异,比如字段数量不同、字段类型不兼容、字段顺序不一致,就会触发OGG-00199报错。可以先分别查询两端的表结构对比:
-- 查询表结构(Oracle示例) DESC 用户名.待同步表名; -- 查询字段详细信息(MySQL示例) SHOW COLUMNS FROM 待同步表名 FROM 用户名;
如果存在结构差异,需要先将目标端表结构调整为和源端一致,确保字段类型兼容、数量匹配,必要时可以重新生成目标端表结构后再执行初始化。
场景3:初始化参数配置错误
init data load的相关参数配置错误也会触发OGG-00869,比如SOURCEISTABLE、TARGETDB、MAP参数配置有误。以下是一个正确的初始化Extract参数示例:
EXTRACT init_ext SOURCEISTABLE USERID GoldenGate用户, PASSWORD 密码 RMTHOST 目标端IP, MGRPORT 目标端管理端口 RMTTASK REPLICAT, GROUP init_rep TABLE 源端用户名.待同步表名;
对应的Replicat参数示例:
REPLICAT init_rep SPECIALRUN END RUNTIME USERID GoldenGate用户, PASSWORD 密码 ASSUMETARGETDEFS MAP 源端用户名.待同步表名, TARGET 目标端用户名.待同步表名;
需要检查参数中的表名、用户名、IP端口是否正确,是否存在拼写错误,尤其是跨用户同步时容易漏写用户名前缀。
场景4:字符集不匹配
如果源端和目标端数据库字符集不一致,可能导致数据转换失败触发报错。可以查询两端字符集确认:
-- Oracle查询字符集 SELECT * FROM nls_database_parameters WHERE parameter LIKE '%CHARACTERSET%'; -- MySQL查询字符集 SHOW VARIABLES LIKE 'character_set%';
如果存在字符集差异,可以在Replicat参数中添加字符集转换相关配置,或者将目标端字符集调整为和源端兼容的字符集。
排查流程总结
遇到OGG-00869和OGG-00199报错时,可以按照以下流程逐步排查:
- 先查看GoldenGate进程的报错日志,定位具体报错位置和相关表名。
- 验证对应表的读写权限是否正常。
- 对比源端和目标端的表结构是否一致。
- 检查初始化相关的Extract和Replicat参数配置是否正确。
- 确认两端数据库字符集是否兼容。
按照以上步骤基本可以解决大部分init data load过程中的OGG-00869和OGG-00199报错,如果仍然无法解决,可以收集完整的进程日志和数据库日志,进一步分析是否有其他隐藏问题。
GoldenGateinit_data_loadOGG-00869OGG-00199数据初始化修改时间:2026-05-25 23:55:35