1 、故障描述
某次某用户反馈在使用
impdp
导入数据时,命中
Error: ORA-39183: internal error -19 ocurred during decompression phase 2
错误,如下:

通常来讲,数据泵报错归属于相对比较容易分析的问题类型,报错代码中通常会有较为明显的提示,但此次报错显然不在该范畴,因此需要进一步下钻分析。
2 、根因分析
由于报错的场景比较小众,因此我们跳出报错本身进行问题的定位和尝试。首先,需要排除备份文件本身是否有问题,对比源端和目标端备份文件的
md5
码一致,同时确保源端
dmp
文件是成功导出的。

其次,由于导入命令中明确指定了
schema
选型,为排除
schema
选型可能带来的影响,再和客户沟通可以去掉指定的
schema
后,再次进行尝试。具体如下:删除用户时报用户不存在,检查表空间也不存在,创建表空间后重新导入还是报错。


3 、解决方案
考虑到导入命令比较简单,同时排除了
dmp
文件本身和选项的因素之后,此时严重怀疑是数据泵本身的软件缺陷,针对
ORA-39183
错误代码进行
MOS
匹配,果然找到对应的说明,如下:
根据 Data Pump Import (IMPDP) Fails With Error: ORA-39183: internal error -19 ocurred during decompression phase 2 (Doc ID 2092469.1) 内容描述,和实际备份文件时间 01.dmp 的时间和其它 dmp 文件相差 6 小时,能够对上,至此问题闭环。

在手动进行重新备份之后, dmp 文件可以成功导入。
