暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

expdp导出报错_dbms_stats包引发ORA-39127

原创 敖子🍖 2025-04-09
298

使用dbms_stats收集统计信息时因为修改了包内容导致执行时出现问题,删除dbms_stats包后打算重建;未重建,中途使用数据泵expdp时报错,使用 expdp 导出数据时,没有指定exclude=statistics 所以自动包含了表的优化器统计信息,虽然dump文件导出到directory目录下,但是可能存在错误数据,报错提示代码如下:ORA-39127 ORA-04045 ORA-01775 ORA-06508 ORA-06512;

ORA-39127:unexpected error from call to export_string :=SYS.DBMS_AW_EXP.INSTANCE_EXTENDED_INFO_EXP

ORA-39127: unexpected error from call to export_string :=SYS.DBMS_CUBE_EXP.INSTANCE_EXTENDED_INFO_EXP

按照常规方法

1.检查失效对象

select owner, object_type, status, count(*)
from dba_objects
where status='INVALID'
group by owner, object_type, status
order by owner, object_type;

查看具体失效对象

col owner for a20;
col object_name for a32;
col object_type for a16
col status for a8
select owner, object_name, object_type, status
from dba_objects
where status='INVALID'
order by 1, 2,3;

编译无效对象

@?/rdbms/admin/utlrp

我这里出现报错不存在SYS.DBMS_REGISTRY_SYS这个包,可能还是dbms_stats包不存在导致的,后续重建dbms_stats包后再次编译正常

2.检查数据泵用于导入导出的特殊用户EXFSYS

SELECT username, account_status FROM dba_users WHERE username = 'EXFSYS';

发现状态为EXPIRED & LOCKED

删除EXFSYS无效事务

DELETE FROM exppkgact$ WHERE SCHEMA='EXFSYS';

重新执行expdp时还是同样的报错提示


3.检查SYS.EXPPKGACT$表 主要用于跟踪和管理数据泵作业的活动和状态

SELECT * FROM SYS.EXPPKGACT$ WHERE PACKAGE = 'DBMS_CUBE_EXP';

SELECT * FROM SYS.EXPPKGACT$ WHERE PACKAGE = 'DBMS_AW_EXP';

通过创建备份表,将原表存储的数据泵信息delete执行解决

重新执行expdp时导出正常


重新创建dbms_stats包

drop package dbms_stats;

@?/rdbms/admin/dbmsstat.sql
@?/rdbms/admin/prvtstas.plb
@?/rdbms/admin/prvtstai.plb
@?/rdbms/admin/prvtstat.plb


重新编译无效对象@?/rdbms/admin/utlrp正常执行,查询剩下四个是我自己增加测试的无需管理

重新手动统计信息正常

最后修改时间:2025-04-09 14:49:44
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

文章被以下合辑收录

评论