[Okta Webinar] Learn how to a build a cloud-first strategyRegister Now

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 2194
  • Last Modified:

Export terminated unsuccessfully [Error 4045]

Hello All,
I am taking a full database export of my database, performing exp command as SYS user, and I executed catexp.sql also before the export. I am getting an error as follows , what is the reson for this error, anyone can help me to solve this

Regards

EXP-00008: ORACLE error 4045 encountered
ORA-04045: errors during recompilation/revalidation of SYS.DBMS_AQ_IMPORT_INTERNAL
ORA-06552: PL/SQL: Compilation unit analysis terminated
ORA-06553: PLS-905: object SYS.AQ$_SUBSCRIBERS is invalid
ORA-06508: PL/SQL: could not find program unit being called
ORA-06512: at line 1
ORA-06512: at "SYS.DBMS_SYS_SQL", line 787
ORA-06512: at "SYS.DBMS_SQL", line 328
ORA-06512: at "SYS.DBMS_EXPORT_EXTENSION", line 82
ORA-06512: at "SYS.DBMS_EXPORT_EXTENSION", line 133
ORA-06512: at line 1
EXP-00000: Export terminated unsuccessfully
0
madappattu
Asked:
madappattu
  • 3
  • 2
  • 2
  • +2
1 Solution
 
stmontgoCommented:
Do u have advanced replication set up? Did someone run catrep.sql?
0
 
banickiCommented:
actually this is related to several bugs on several releases... from 8.0.4 to 8.1.6
here is a partial list.  1314167, 1102966, 875427, 759735, 753384, 647800 and  Bug 1314167

there is a work around posted on metalink.

identify invalid system objects:
select 'alter type sys.'|| object_name || ' compile;'
 from all_objects
 where status = 'INVALID'
 and owner = 'SYS'
 and object_type = 'TYPE';

 you have to perform a drop operation on the queue_table even though you did not create any queue tables explicitly. Two queue tables are created by catdefrt.sql when a database is initialized.

 select * from dba_queue_tables;

 SYSTEM.DEF$_AQCALL

 execute dbms_aqadm.drop_queue_table ('SYSTEM.DEF$_AQCALL');

 ORA-24012 "cannot drop QUEUE_TABLE, some queues in %s have
 not been dropped", you must use the force option in the procedure:

 execute dbms_aqadm.drop_queue_table ('SYSTEM.DEF$_AQCALL', TRUE);
 -AND-
 execute dbms_aqadm.drop_queue_table ('SYSTEM.DEF$_AQERROR', TRUE);

 This is a Bug in which two queue tables are created by catdefrt.sql when the
 database is initialized regardless of whether the Replication option is
 installed.
0
 
madappattuAuthor Commented:
Dear  banicki
I had tried to do the steps as you mentioned . but while exevuting
execute dbms_aqadm.drop_queue_table ('SYSTEM.DEF$_AQCALL', TRUE);
-AND-
execute dbms_aqadm.drop_queue_table ('SYSTEM.DEF$_AQERROR', TRUE);

this gives the following errors.



SQLWKS> execute dbms_aqadm.drop_queue_table ('SYSTEM.DEF$_AQERROR', TRUE);
BEGIN
*
ORA-04045: errors during recompilation/revalidation of SYS.DBMS_AQADM
ORA-06552: PL/SQL: Compilation unit analysis terminated
ORA-06553: PLS-905: object SYS.AQ$_SUBSCRIBERS is invalid
SQLWKS>
SQLWKS>
0
Windows Server 2016: All you need to know

Learn about Hyper-V features that increase functionality and usability of Microsoft Windows Server 2016. Also, throughout this eBook, you’ll find some basic PowerShell examples that will help you leverage the scripts in your environments!

 
madappattuAuthor Commented:
It worked Banicki, I did  alter SYS.AQ$_SUBSCRIBERS once again.
Thanks & Best Regards
0
 
MoondancerCommented:
I have corrected the grade from "B" to A", as you requested.

Moondancer
Community Support Moderator @ Experts Exchange
0
 
merry_princeCommented:
Hello banicki,

After perform two drop statments, the view dba_queue_tables will be empty. If will it affect some function of oracle server? Need I re-run catdefrt.sql file?

Hope to hear from you. Thanks a lot.
0
 
banickiCommented:
Man its been two years...
This is all tied to Advance Queueing.  Replication is dependent on AQ.  
Based on the wording of the workarounds...  If your using Replication or AQ, these tables are critical.
If your not,,,  I'm not sure if you need to recreate them or not...

Banic
0
 
merry_princeCommented:
Can you introduce AQ summarily?
0
 
merry_princeCommented:
If are AQ and Replication generally used for distributed databases?
0

Featured Post

Transaction-level recovery for Oracle database

Veeam Explore for Oracle delivers low RTOs and RPOs with agentless transaction log backup and transaction-level recovery of Oracle databases. You can restore the database to a precise point in time, even to a specific transaction.

  • 3
  • 2
  • 2
  • +2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now