导读:本期聚焦于小伙伴创作的《OGG执行DDL复制报ORA-01435 user does not exist如何解决》,敬请观看详情,探索知识的价值。以下视频、文章将为您系统阐述其核心内容与价值。如果您觉得《OGG执行DDL复制报ORA-01435 user does not exist如何解决》有用,将其分享出去将是对创作者最好的鼓励。

在使用OGG实现Oracle数据库DDL复制的过程中,偶尔会出现执行DDL操作后目标端同步失败,日志中提示ORA-01435 user does not exist的问题,这会直接影响数据同步的连续性。下面先通过一张示意图直观了解OGG DDL复制的基本流程,再逐步分析问题原因和解决方法。

OGG执行DDL复制报ORA-01435 user does not exist如何解决

一、报错场景与基础排查

该报错通常出现在源端执行创建用户、修改用户权限等涉及用户操作的DDL语句后,目标端的 replicat 进程异常终止,查看进程日志可以看到类似如下的错误信息:

2024-xx-xx 10:23:45  ERROR   OGG-01435  Oracle GoldenGate Delivery for Oracle, r_ogg.prm:  DDL operation failed, error: ORA-01435: user does not exist.

遇到该问题时,首先可以排查以下基础项:

  • 确认源端执行的DDL语句是否确实涉及用户相关操作,比如CREATE USERALTER USERDROP USER
  • 检查目标端是否已经存在该用户,如果源端新建用户,目标端未提前创建可能会触发该报错
  • 查看OGG的全局配置文件和进程参数中,是否对用户复制做了特殊的过滤或映射设置

二、常见触发原因

2.1 用户映射配置错误

如果OGG配置了用户映射规则,比如使用MAP参数将源端用户映射到目标端其他用户,但DDL操作涉及的用户不在映射范围内,或者映射的目标用户不存在,就会触发ORA-01435报错。例如源端执行CREATE USER test IDENTIFIED BY test123;,但映射规则中目标端没有对应的test用户,也没有配置默认映射用户,就会出现该问题。

2.2 DDL复制权限不足

OGG的复制进程使用的数据库用户需要具备足够的权限来执行DDL操作,如果该用户没有创建、修改用户的权限,或者没有操作目标端用户对象的权限,执行涉及用户的DDL时就会报用户不存在的错误。比如目标端复制用户没有被授予CREATE USERALTER USER等系统权限,无法执行源端同步过来的用户相关DDL。

2.3 DDL复制参数配置不当

OGG的DDL复制相关参数如果配置不合理,也会导致该问题。比如DDLOPTIONS参数中设置了错误的过滤规则,将用户相关的DDL错误过滤,或者REPLICAT进程中没有正确配置DDL参数,导致DDL操作没有按照预期同步到目标端,目标端缺少对应的用户对象。

三、对应解决方法

3.1 修正用户映射配置

如果存在用户映射需求,需要检查映射规则是否覆盖所有需要同步的用户相关DDL。可以在replicat进程参数中添加正确的映射规则,示例如下:

-- replicat进程参数配置示例
REPLICAT r_ogg
USERID ogg_admin, PASSWORD ogg_password
MAP src_user.*, TARGET tgt_user.*;
-- 如果用户跨用户映射,添加如下规则
MAP src_user.test, TARGET tgt_user.test;

如果不需要用户映射,确保参数中没有错误的映射配置,让DDL按照源端的用户结构同步到目标端即可。

3.2 补全复制用户权限

登录目标端数据库,给OGG复制用户授予足够的权限,执行如下SQL语句:

-- 授予用户相关DDL的系统权限
GRANT CREATE USER, ALTER USER, DROP USER TO ogg_admin;
-- 授予操作所有用户的权限
GRANT ANY USER TO ogg_admin;
-- 如果需要同步角色相关DDL,也可以补充对应权限
GRANT CREATE ROLE, ALTER ANY ROLE, DROP ANY ROLE TO ogg_admin;

3.3 调整DDL复制参数

检查并调整DDL复制相关参数,确保用户相关的DDL能够被正确复制。replicat进程中的DDL参数配置示例如下:

-- 开启DDL复制,设置合适的选项
DDL INCLUDE ALL
DDLOPTIONS REPORT
-- 如果需要过滤部分DDL,明确指定过滤规则,不要误过滤用户相关操作
DDL EXCLUDE OBJNAME "SYS.*"

配置完成后重启replicat进程,让参数生效,再测试用户相关的DDL操作,确认是否能够正常同步。

四、验证方法

解决配置问题后,可以通过以下简单测试验证问题是否修复:

  • 在源端执行创建用户的DDL:CREATE USER test_sync IDENTIFIED BY sync123;
  • 查看目标端数据库是否自动同步创建了test_sync用户
  • 在源端执行修改用户密码的DDL:ALTER USER test_sync IDENTIFIED BY new_sync456;
  • 查看目标端该用户的密码是否同步修改,同时检查OGG replicat进程日志是否有报错

如果所有测试都通过,说明ORA-01435报错已经解决,OGG的DDL复制可以正常同步用户相关操作。

OGGDDL复制ORA-01435Oracle数据库修改时间:2026-05-24 23:43:22

免责声明:已尽一切努力确保本网站所含信息的准确性。网站部分内容来源于网络或由用户自行发表,内容观点不代表本站立场。本站是个人网站免费分享,内容仅供个人学习、研究或参考使用,如内容中引用了第三方作品,其版权归原作者所有。若内容触犯了您的权益,请联系我们进行处理。
内容垂直聚焦
专注技术核心技术栏目,确保每篇文章深度聚焦于实用技能。从代码技巧到架构设计,为用户提供无干扰的纯技术知识沉淀,精准满足专业提升需求。
知识结构清晰
覆盖从开发到部署的全链路。前端、网络、数据库、服务器、建站、系统层层递进,构建清晰学习路径,帮助用户系统化掌握网站开发与运维所需的核心技术栈。
深度技术解析
拒绝泛泛而谈,深入技术细节与实践难点。无论是数据库优化还是服务器配置,均结合真实场景与代码示例进行剖析,致力于提供可直接应用于工作的解决方案。
专业领域覆盖
精准对应开发生命周期。从前端界面到后端逻辑,从数据库操作到服务器运维,形成完整闭环,一站式满足全栈工程师和运维人员的技术需求。
即学即用高效
内容强调实操性,步骤清晰、代码完整。用户可根据教程直接复现和应用于自身项目,显著缩短从学习到实践的距离,快速解决开发中的具体问题。
持续更新保障
专注既定技术方向进行长期、稳定的内容输出。确保各栏目技术文章持续更新迭代,紧跟主流技术发展趋势,为用户提供经久不衰的学习价值。