ORA-39373报错问题定位分享
大家好,我是本际云服务器推荐网的小编小本本。在日常数据库维护过程中,我们经常需要进行两库间数据迁移工作。本次我将分享一下ORACLE12C通过数据泵从高版本12.2迁移数据到低版本12.1过程中遇到的问题,分析思路及处理方法。

事件背景
某运营商一个业务系统因存储空间不足导致业务无法扩展,为满足后续业务增长需求与相应业务部门开会商讨,将其数据库迁移到另一套新购设备存储上。在迁移之前需要检查源端数据库用户权限、DBLINK、连接数及字符集等配置。统计源端数据库表空间使用量,在目标端进行创建,并适当扩大UNDO表空间和TEMP表空间,防止在迁移过程中出现快照过旧和临时空间不能扩展的问题。使用ORACLE工具EXPDB和IMPDP相结合,来进行数据迁移。数据迁移完成后需要重点进行源端与目标端对象数量是否一致。
踩坑过程
与应用维护人员约定好时间和地点,登录数据库主机开始迁移。在高版本导入低版本数据库,在高版本数据库数据导出时,要加上version参数(目标端数据库版本),来解决兼容性问题。但是,在导出数据时却出现了报错“ORA-39373:cannotexportTABLE_DATA:”AXXXX”.”JL_RD_ST_AUDITRESULT_634_201909″toversion12.1.0.2.0duetolongidentifiers”。
通过查询相关资料得知,12CR1版本的对象名长度限制是30个字符,而12CR2版本的对象名长度限制是128个字符,导致了兼容性问题。为了解决这个问题,需要找出源端数据库中所有对象名超过30的对象,通知业务人员对长度超过限制的对象进行删除或者重命名。重新导出数据后,顺利完成数据迁移。
总结
在12CR2版本导入12CR1版本的过程中,由于高版数据库对象名长度限制是128个字符,而低版本对象名长度限制是30个字符,所以要找出高版本库中所有对象名长度超过30的对象,对他们进行删除或者重命名,否则会出现类似“ORA-39373”报错。希望这次分享能够给大家带来帮助。
原创文章,作者:小编小本本,如若转载,请注明出处:https://www.benjiyun.com/yunzhujiyunwei/vps-yunwei/5881.html
