ORA-04045: errors during recompilation/revalidation of GGATE.DDLREPLICATION

Linux平台,将数据库从10.2.0.1.0升级到10.2.0.5.0后报错: ORA-04045: errors during recompilation/revalidation of GGATE.DDLREPLICATION

试图重新编译该package和package body,均报错:

SQL> alter package GGATE.DDLREPLICA compile package;

alter package GGATE.DDLREPLICA compile package

*

ERROR at line 1:

ORA-00604: error occurred at recursive SQL level 1

ORA-04045: errors during recompilation/revalidation of GGATE.DDLREPLICATION

ORA-04064: not executed, invalidated

ORA-04064: not executed, invalidated package body "GGATE.DDLREPLICATION"

ORA-06508: PL/SQL: could not find program unit being called:

"GGATE.DDLREPLICATION"

ORA-06512: at line 870

ORA-04064: not executed, invalidated package body "GGATE.DDLREPLICATION"

ORA-06508: PL/SQL: could not find program unit being called:

"GGATE.DDLREPLICATION"

ORA-06508: PL/SQL: could not find program unit being called:

"GGATE.DDLREPLICATION"

ORA-06512: at line 870

ORA-04045: errors during recompilation/revalidation of GGATE.DDLREPLICATION

ORA-04064: not executed, invalidated

ORA-04064: not executed, invalidated package body "GGATE.DDLREPLICATION"

ORA-06508: PL/SQL: could not find program unit being called:

"GGATE.DDLREPLICATION"

ORA-06512: at line 870

ORA-04064: not executed, invalidated package body "GGATE.DDLREPLICATION"

ORA-06508: PL/SQL: could not find program unit

SQL> alter package GGATE.DDLREPLICA compile body;

alter package GGATE.DDLREPLICA compile body

*

ERROR at line 1:

ORA-00604: error occurred at recursive SQL level 1

ORA-04045: errors during recompilation/revalidation of GGATE.DDLREPLICATION

ORA-04064: not executed, invalidated

ORA-04064: not executed, invalidated package body "GGATE.DDLREPLICATION"

ORA-06508: PL/SQL: could not find program unit being called:

"GGATE.DDLREPLICATION"

ORA-06512: at line 870

ORA-04064: not executed, invalidated package body "GGATE.DDLREPLICATION"

ORA-06508: PL/SQL: could not find program unit being called:

"GGATE.DDLREPLICATION"

ORA-06508: PL/SQL: could not find program unit being called:

"GGATE.DDLREPLICATION"

ORA-06512: at line 870

ORA-04045: errors during recompilation/revalidation of GGATE.DDLREPLICATION

ORA-04064: not executed, invalidated

ORA-04064: not executed, invalidated package body "GGATE.DDLREPLICATION"

ORA-06508: PL/SQL: could not find program unit being called:

"GGATE.DDLREPLICATION"

ORA-06512: at line 870

ORA-04064: not executed, invalidated package body "GGATE.DDLREPLICATION"

ORA-06508: PL/SQL: could not find program unit

SQL> alter package GGATE.DDLREPLICA compile;

alter package GGATE.DDLREPLICA compile

*

ERROR at line 1:

ORA-00604: error occurred at recursive SQL level 1

ORA-04045: errors during recompilation/revalidation of GGATE.DDLREPLICATION

ORA-04064: not executed, invalidated

ORA-04064: not executed, invalidated package body "GGATE.DDLREPLICATION"

ORA-06508: PL/SQL: could not find program unit being called:

"GGATE.DDLREPLICATION"

ORA-06512: at line 870

ORA-04064: not executed, invalidated package body "GGATE.DDLREPLICATION"

ORA-06508: PL/SQL: could not find program unit being called:

"GGATE.DDLREPLICATION"

ORA-06508: PL/SQL: could not find program unit being called:

"GGATE.DDLREPLICATION"

ORA-06512: at line 870

ORA-04045: errors during recompilation/revalidation of GGATE.DDLREPLICATION

ORA-04064: not executed, invalidated

ORA-04064: not executed, invalidated package body "GGATE.DDLREPLICATION"

ORA-06508: PL/SQL: could not find program unit being called:

"GGATE.DDLREPLICATION"

ORA-06512: at line 870

ORA-04064: not executed, invalidated package body "GGATE.DDLREPLICATION"

ORA-06508: PL/SQL: could not find program unit

在metlink上找到一篇文档,原来是数据库上部署了goldenGate基于ddl的复制,升级前需要先disable触发器,然后升级,最后enable触发器;

如果没有按照此步骤来操作并且已经报错了,可以重新运行相关脚本,创建包和包体。

附:

Do I Need To Disable The GoldenGate DDL Trigger Before An Oracle DB Upgrade or PSU patching? [ID 971222.1]

Applies to:

Oracle GoldenGate - Version: 4.0.0 and later   [Release: 4.0.0 and later ]

Information in this document applies to any platform.

Solution

Issue:

If you are performing any Oracle database upgrades, for example CPU/PSU patch upgrade, and you are currently capturing Oracle DDL operations with GoldenGate, disable the GoldenGate DDL trigger before the upgrade and then enable it after the upgrade. Use the ddl_disable and ddl_enable scripts in the GoldenGate installation directory for this purpose.

Solution Description:

Patches and upgrades can modify Oracle???s internal tables and views. This can cause stored procedures that call them to be invalidated. All dependent objects are invalidated as well.

The ALTER COMPILE is DDL, and because parts of the DDL package are invalidated, it cannot execute. Because Oracle patches and upgrades are generally NOT replicated by GoldenGate (replication is stopped, then upgrades or patches are done on both source and target), there should be no gaps. Also, because upgrades and patches generally operate on Oracle-reserved objects (which GoldenGate filters out), there should not be any patch-related DDL operations that are replicated, even if for some reason replication is not stopped during the patch.

To apply the Oracle patch:

Before applying a database patch to an environment that has an active GoldenGate DDL trigger, follow this procedure:

1. Log into SQL*Plus as sysdba and execute the ddl_disable script.

2. Apply the Oracle patch.

3. If you are still on the same major Oracle version (for example, you went from 9.2.0.6 to 9.2.0.8), enable the trigger again by executing the ddl_enable script as sysdba. If you are upgrading to a newer major version (for example, from 10.1.x to 10.2.x), download and install a new GoldenGate version before re-enabling the DDL trigger.

If you don't follow the procedure of disabling the DDL trigger before upgrade or patching, after the Database version upgrade or CPU/PSU patch complete, you will run into various issues with GoldenGate DDL replication package, typical error messages looks like below

OCI error (4045-ORA-04045: errors during recompilation/revalidation of PUBLIC.ALL_TAB_COLUMNS

ORA-04064: not executed, invalidated  ORA-04064: not executed, invalidated package body "GGS_DDL.DDLREPLICATION" ORA-06508: PL/SQL: could not find program unit being called: "GGS_DDL.DDLREPLICATION" ORA-06512: at line 837 ORA-04064: not executed, invalidated package body "GGS_DDL.DDLREPLICATION" ORA-06508: PL/SQL: could not find program unit being called: "GGS_DDL.DDLREPLICATION" ORA-06508: PL/SQL: could not find program unit being called: "GGS_DDL.DDLREPLICATION" ORA-06512: at line 837 ORA-04045: errors during recompilation/revalidation of GGS_DDL.DDLREPLICATION ORA-04064: not executed, invalidated  ORA-04064: not executed, invalidated package body "GGS_DDL.DDLREPLICATION" ORA-06508: PL/SQL: could not find program unit being called: "GGS_DDL.DDLREPLICATION" ORA-06512: at line 837 ORA-04064: not executed, invalidated package body "GGS_DDL.DDLREPLICATION" ORA-06508: PL/SQL: could not find program unit being called: "GGS_DDL.DDLREPLI) initializing query to obtain NUMBER precision (table: 'xxxx.yy', column: 'Cc'), try to fix this issue in order to avoid possible fatal error.

If that happens, you have to reinstall the DDL replication package.  Please see detail on how to install DDL replication package in the installation guide.

mysql5.045_数据库升级后goldengate报错,ORA-04045相关推荐

  1. tomcat一次升级后启动报错的解决,IllegalArgumentException: AJP连接器配置secretRequired=“true“

    tamcat升级到8.5.82 启动服务报错信息: java.lang.IllegalArgumentException: AJP连接器配置secretRequired="true" ...

  2. POI版本对比jar包升级后代码报错修正

    学习目标: 最近使用EasyExcel写导入导出Excel,需要POI版本是3.17,之前是3.9,必须升级jar包,升级之后发现很多代码报错,需要修改调整,以下用于记录调整的代码. 颜色定义变化 旧 ...

  3. oracle数据库升级失败怎么办,【案例】Oracle报错ORA-00918 数据库升级后遇到SQL BUG 5368296...

    天萃荷净 运维DBA反映生产数据库10.2.0.1存在BUG导致SQL无法使用,在升级到10.2.0.5后执行SQL报错ORA-00918,分析原因为BUG修复后要修改SQL语句,升级数据库到10.2 ...

  4. android apt最新版本,解决Android studio 2.3升级到Android studio 3.0 后apt报错问题

    解决Android studio 2.3升级到Android studio 3.0 后apt报错问题 发布时间:2020-09-16 19:59:42 来源:脚本之家 阅读:62 作者:哈特中尉 1. ...

  5. php报错处理,关于升级php7后的报错处理

    [摘要] PHP即"超文本预处理器",是一种通用开源脚本语言.PHP是在服务器端执行的脚本语言,与C语言类似,是常用的网站编程语言.PHP独特的语法混合了C.Java.Perl以及 ...

  6. 升级php7后的报错处理

    *由于php7的出现带来大幅的性能提升,想体验下新版本带来的特性,因此做了升级. 发现在网站中请求接口时发生错误,排查后把解决方法记录下来 升级php后站点报错,提示如下: Deprecated: A ...

  7. AS升级4.1后插件报错的问题

    AS升级4.1后插件报错的问题 Plugin "GsonFormat" is incompatible (supported only in IntelliJ IDEA). Plu ...

  8. oracle goldengate 数据库实例,案例:Oracle goldengate报错ggsci: error while loading shared libraries:...

    天萃荷净 Oracle goldengate配置时报错ggsci: error while loading shared libraries 在部署goldengate过程中发现如下错误: [orac ...

  9. ORACLE GOLDENGATE报错问题汇总

    ORACLE GOLDENGATE报错问题汇总 1.源端抽取进程ext1无法启动: OGG-00446:error 2 (No such file or directory) opening redo ...

最新文章

  1. 理解深度学习中的学习率及多种选择策略
  2. 傅里叶变换拉普拉斯变换的物理解释及区别
  3. 环境变量太大解决方法
  4. php接口数据安全解决方案(一)
  5. angular动态选择HTML模板,在angular2中动态加载HTML模板
  6. Python Django 一对多逆向查询示例
  7. 前端设定项目奖金有多少_华为资深HR:年终奖不是一个合理的奖金制度
  8. Java中快速处理集合_简洁又快速地处理集合——Java8 Stream(上)
  9. 问题 D: 最小生成树II
  10. 【课程作业】表达学习 人脸图像复原 实验记录
  11. 百度中文手写输入法linux版,[Linux]百度输入法Linux版 V1.0.1.0 [2020.05.19]
  12. matlab用割线法,Todd’s Matlab讲义第6讲:割线法
  13. 基于Proteus学习单片机系列(三)——按键
  14. 小乐乐和25(模拟)
  15. 学计算机画素描吗,用电脑制作一张素描画
  16. c语言:判断字符串是否符合手机号码格式
  17. 自来水中锰超标怎么办
  18. 联通系统升级服务器地址,联通iptv升级服务器地址
  19. 介绍3.3和3.4 Linux内核
  20. 微积分与概率论的基础知识

热门文章

  1. 《Iphone SDK3开发快速上手》
  2. powerDesigner生成excel版本的数据库文件
  3. 【git系列】简单入门git命令一
  4. FortiGate双链路不同运营商上网配置
  5. Spark整合ElasticSearch
  6. 【Maven】3.使用IntelliJ IDEA 使用本地搭建的maven私服,而不是使用默认的maven设置...
  7. 【开发必知】基本缓存概念
  8. 【数据校验杂谈】循环冗余检验 (CRC) 算法原理
  9. linux 架设J2EE网站过程分享之二 —— JDK安装
  10. 动态语言会淘汰静态语言吗?