Expdp使用version参数时,报ORA-39373
某天晚上,同事在使用数据泵进行数据迁移的过程中遇到点问题,简要记录之。
1、概述
同事需要将一套19C数据库中的数据迁移到COMPATIBLE=12.1.0的数据库中,在使用数据泵导出的命令中添加了VERSION=12.1.0选项。在导出的日志中有几条ORA-39373报错信息。具体日志如下所示:
| ORA-39373: cannot export SYSTEM_GRANT: ….. to version 12.1.0 due to long identifiers ORA-39373: cannot export SYSTEM_GRANT: ….. to version 12.1.0 due to long identifiers ORA-39373: cannot export INDEX_STATISTICS to version 12.1.0 due to long identifiers | 
2、从报错的信息可以看出,由于指定了导出的版本(VERSION=12.1.0),而一些标识符太长,所以无法导出,SYSTEM_GRANT这个关键字,看样子是系统权限这部分的内容;INDEX_STATISTICS应该是索引的统计信息。
3、同事担心这个报错是否会导致迁移的数据不一致,这些报错其实可以在数据迁移后手动处理,也不会造成业务数据的不一致。数据迁移完成后,对比两个库中业务用户的系统权限部分,查看目标端的业务用户缺少哪些系统权限,手动赋予这些系统权限即可。而索引的统计信息,这本来就是需要在数据迁移完成后,手动重新收集的。
4、这个问题在MOS文章:12.2 DataPump Export (EXPDP) Using a Lower Export Client Fails Due To ORA-39373 (Doc ID 2369249.1)中也有说明(In 12.2 Oracle database, the maximum length of identifiers is increased to 128 bytes for most identifiers, up from 30 bytes in previous releases.)。MOS中的解决方案是对超过30个字符的数据对象进行重命名,然后重新导出。
 
                     
                    
                 
                    
                 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号