墨淳雅 发表于 6 天前

Oracle19c impdp失败报ORA-20000案例

在Oracle 19.28.0.0.0中使用impdp导入数据时,又一次遇到了ORA-20000错误.具体如下所示:
.................................................
Processing object type SCHEMA_EXPORT/TABLE/COMMENT
Processing object type SCHEMA_EXPORT/VIEW/VIEW
Processing object type SCHEMA_EXPORT/TABLE/INDEX/INDEX
Processing object type SCHEMA_EXPORT/TABLE/CONSTRAINT/CONSTRAINT
Processing object type SCHEMA_EXPORT/TABLE/INDEX/STATISTICS/INDEX_STATISTICS
Processing object type SCHEMA_EXPORT/TABLE/CONSTRAINT/REF_CONSTRAINT
Processing object type SCHEMA_EXPORT/TABLE/STATISTICS/TABLE_STATISTICS
Processing object type SCHEMA_EXPORT/STATISTICS/MARKER
XXXXX.PK_XXXX_XXXX : sqlerrm = ORA-20000: Unable to set values for index PK_XXXX_XXXX: does not exist or insufficient privileges
Importing statistics failed for 1 object(s);
.................................................上一次遇到这个错误,已经在这篇文章中ORA-20000: Unable to set values for index xxx: does not exist or insufficient privileges中总结了.这一次遇到的错误,搜索官方文档时发现这篇文章(KB97324) ORA-20000 When Processing STATISTICS/MARKER By DataPump中介绍unpublished Bug 26380126 也会触发这个报错,相比之前的BUG 30978304, 两者非常相似. 具体介绍如下所示:
Applies To
All Users
Summary

ORA-20000 is reported when DataPump import loads SCHEMA_EXPORT/STATISTICS/MARKER:

> expdp \"/ AS SYSDBA\" directory=<DIR> schemas=<SCHEMA_NAME> dumpfile=<dmp_file> logfile=<log_file> ENCRYPTION_PASSWORD=********

> impdp \"/ AS SYSDBA\" directory=<DIR> TABLE_EXISTS_ACTION=REPLACE dumpfile=<dmp_file> logfile=<log_file> ENCRYPTION_PASSWORD=********

Processing object type SCHEMA_EXPORT/STATISTICS/MARKER
<SCHEMA_NAME>.SYS_CXXXXXXX : sqlerrm = ORA-20000: Unable to set values for index SYS_CXXXXXXX: does not exist or insufficient privileges
<SCHEMA_NAME>.SYS_CXXXXXXX : sqlerrm = ORA-20000: Unable to set values for index SYS_CXXXXXXX: does not exist or insufficient privileges
<SCHEMA_NAME>.SYS_CXXXXXXX : sqlerrm = ORA-20000: Unable to set values for index SYS_CXXXXXXX: does not exist or insufficient privileges
<SCHEMA_NAME>.SYS_CXXXXXXX : sqlerrm = ORA-20000: Unable to set values for index SYS_CXXXXXXX: does not exist or insufficient privileges
<SCHEMA_NAME>.SYS_CXXXXXXX : sqlerrm = ORA-20000: Unable to set values for index SYS_CXXXXXXX: does not exist or insufficient privileges
...


Solution

If you are using 19c, try applying patch 30978304 first.
Patch 30978304 is not available in versions prior to 18c.



Use the workaround:

- run impdp with EXCLUDE=STATISTICS option.



Attachments :
Cause


The causewas investigated in the unpublished Bug 26380126 - IMPDP GETTING ORA-20000 ON STATISTICS/MARKER IMPORT STAGE.

Bug 26380126 was closed as duplicate of the Enhancement Request 33375178 - ORA-20000 WHEN ATTEMPTING IMPORT OF STATS FOR UNNEEDED SYSTEM-CREATED INDEX, still in progress.



Also, there are similar reports in BUG 30978304.

<BUG 30978304> - ORA-20000 DURING IMPDP WITH STATS AND THE UNIQUE INDEX FOR THE PK IS NOT CREATED解决方案


[*]impdp命令加上参数EXCLUDE=STATISTICS即可避免遇到这个错误.
[*]安装补丁30978304也可以解决这个问题.
另外,需要注意的是这个错误不能忽略, 它会导致主键对应的唯一索引丢失.如果在使用数据泵导入过程中遇到这个问题,那么你应当谨慎对待这个错误. 最好按照上面解决方案中的一种方案去解决.
参考资料

(KB97324) ORA-20000 When Processing STATISTICS/MARKER By DataPump
扫描上面二维码关注我如果你真心觉得文章写得不错,而且对你有所帮助,那就不妨帮忙“推荐"一下,您的“推荐”和”打赏“将是我最大的写作动力!本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接.
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
页: [1]
查看完整版本: Oracle19c impdp失败报ORA-20000案例