資料庫升級後goldengate報錯,ORA-04045
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]
In this Document
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.
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/21256317/viewspace-1063585/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- python3升級後的報錯Python
- pip 升級後runpy.py報錯
- 故障分析 | MySQL 資料庫升級後,資料庫怎麼卡住了MySql資料庫
- 資料庫升級之-Dataguard滾動升級資料庫
- 資料庫升級之-資料泵資料庫
- 資料庫升級之-XTTS資料庫TTS
- 資料庫升級和工具資料庫
- android資料庫如何進行版本升級?架構之資料庫框架升級Android資料庫架構框架
- ora-04045和ora-16000報錯處理
- 靜默方式安裝、升級oracle(三): 升級資料庫軟體及資料庫Oracle資料庫
- MacOS Big Sur11.0升級後Eclipse啟動報錯MacEclipse
- oracle資料庫11.2.0.3升級到11.2.0.4Oracle資料庫
- 13 使用SQL Apply 升級資料庫SQLAPP資料庫
- iOS 資料庫升級資料遷移解決方案iOS資料庫
- 資料庫升級-物理重新整理資料字典資料庫
- flutter升級後 執行專案報錯 Warning: Podfile is out of dateFlutter
- thinkphp升級後報錯Declaration of thinkappUrl::build() must be compatible with think outeUrl::build():PHPAPPUI
- 自定義開發資料庫升級程式資料庫
- GoldenGate抽取Informix資料庫安裝及配置GoORM資料庫
- 升級Xcode8 1後第三方庫報錯xx bundle bundle format unrecognized, invalid, or unXCodeORMZed
- phpStudy2018 升級資料庫 MySQL5.7PHP資料庫MySql
- Python 操作 mysql 資料庫,wait_timeout 後報什麼錯誤PythonMySql資料庫AI
- GoldenGate異種資料庫之間的複製Go資料庫
- 【資料庫升級】Oracle指令碼升級12c CDB to 19c CDB資料庫Oracle指令碼
- Oracle資料庫升級或資料遷移的方法探討Oracle資料庫
- Android 資料庫綜述(一) 資料庫片的升級與資料的遷移操作Android資料庫
- laravel 資料庫遷移時報錯Laravel資料庫
- 【資料庫】mysql5.6升級至5.7(物理方式)資料庫MySql
- iOS CoreData (二) 版本升級和資料庫遷移iOS資料庫
- Android 中的升級資料庫最佳方法實踐Android資料庫
- 成為MySQL DBA 部落格系列-資料庫升級MySql資料庫
- 如何理解騰訊雲資料庫戰略升級?資料庫
- [BUG反饋]升級後獨立模型出錯模型
- Mac os 升級到11.0版本後 啟動擴充套件報錯Mac套件
- MongoDB資料庫報錯,資料庫檔案丟失資料恢復案例MongoDB資料庫資料恢復
- 康孚備份資料庫時報錯資料庫
- SQLYOG連線資料庫時報錯1251SQL資料庫
- 資料庫報ORA-01839的錯誤資料庫
- 使用瀚高資料庫hibernate方言報錯資料庫