资讯专栏INFORMATION COLUMN

关于impdp导数据时ORA-06502错误代码的分析

IT那活儿 / 997人阅读
关于impdp导数据时ORA-06502错误代码的分析

点击上方“IT那活儿”,关注后了解更多内容,不管IT什么活儿,干就完了!!!


日常运维工作中经常需要对数据做备份或倒换,其中也会经常性遇到一些问题。

翻看以前的一些问题记录,本次就对从高版本导数据至低版本时遇到的ORA-06502错误做一个分析记录。

01


问题描述


使用db_link从19c impdp导入数据到12c时报错:
ORA-06502:PL/SQL:numeric or value error(数字或值错误)
1.1 操作:通过db_link impdp导入;
1.2 版本:19c -> 12c;
1.3 日志信息:

02


报错分析


2.1 从报错提示上看猜测是表分区名过长,但因两边都是生产库,不好更改表名和分区名。
因为远端19c数据库中表分区名太长超过30,在local端12.1只能先创建表结构后(创建表结构时,调整分区名长度)进行impdp。
在impdp时候按分区导入数据时候进行分区映射。
2.2 通过select dump(value,16) from v$spparameter where name=compatible 检查spfile参数文件。
2.3 尝试从源头寻找问题,而考虑使用db_link导数据可能会出现如下问题:
When both the NETWORK_LINK and the TABLES parameters are 
used, then only whole tables can be imported (not partitions
of tables). Trying to import a partition of a table over a
database link will fail with ORA-39203 (Partition selection
is not supported over a network link) or in older releases
with ORA-14100 (partition extended table name cannot refer
to a remote object). The only exception to this is if 
TRANSPORTABLE=ALWAYS is also specified, in which case single
or multiple partitions of a specified table can be imported.
See also section 8.13. "ORA-39203 (Partition selection is
not supported over a network link)"
 below.
db_link导入时不能指定到分区级别,NETWORK_LINK 和TABLES 同时指定时,只能导入全部表,可以把TABLES参数后面的分区去掉,直接指定表。
2.4 由于生产环境要求,只能按分区来导入,尝试处理如下:
  • 在impdp导入之前开启如下events:


alter system set events sql_trace {process: pname = dw | process: pname = dm} level=12;
alter system set events 6502 trace name errorstack level 10;


  • 执行impdp命令,并追加TRACE=1ff0300 METRICS=Y LOGTIME=ALL参数,检查相关日志。

2.5 操作复现,尝试寻找问题根源:
  • 尝试一:不使用DB LINK,直接在源库导出对应报错对象的PUMP文件,之后在19C环境直接导入12C的导出的PUMP文件,看问题是否依然存在;
  • 尝试二:如果尝试一中问题依然存在,导入时追加EXCLUDE=STATISTICS,看问题是否依然存在;
  • 尝试三:除了有问题的表和分区,其他的分区表,使用相同的impdp 语法,是否能成功导入。
2.6 在经过以上尝试后的根据错误日志确定是由于名字长度引起:
Oracle版本从12.2之后 对象名字增加为128个字符,而12.2之前是30个字符,目前该库版本低于12.2。
2.7 虽然定位了问题,但由于无法变更生产库对象,尝试寻找该bug是否有对应的补丁包。
根据分析,19c db_link导入数据至 12c时由于双方版本不一致会触发bug,可以尝试打补丁30522341解决该bug。

03


问题总结


3.1 impdp导入时针对该ORA-00报错,如果导入对象是非系统数据,则可以对该数据字段长度进行更改。
切记:在没有客户授权的情况下绝对不能对数据做变更操作的。
3.2 通过补丁包30522341升级来修复该bug。

end



本文作者:冯俊鸿

本文来源:IT那活儿(上海新炬王翦团队)

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/129650.html

相关文章

  • ❤️思维图整理大厂面试高频数组10: 3种方法彻底解决中位数问题, 力扣4❤️

    此专栏文章是对力扣上算法题目各种方法的总结和归纳, 整理出最重要的思路和知识重点并以思维导图形式呈现, 当然也会加上我对导图的详解. 目的是为了更方便快捷的记忆和回忆算法重点(不用每次都重复看题解), 毕竟算法不是做了一遍就能完全记住的. 所以本文适合已经知道解题思路和方法, 想进一步加强理解和记忆的朋友, 并不适合第一次接触此题的朋友(可以根据题号先去力扣看看官方题解, 然后再看本文内容). 关...

    XanaHopper 评论0 收藏0
  • ❤️图整理大厂面试高频数组8: 移除元素双指针优化, 力扣27❤️

    此专栏文章是对力扣上算法题目各种方法的总结和归纳, 整理出最重要的思路和知识重点并以思维导图形式呈现, 当然也会加上我对导图的详解. 目的是为了更方便快捷的记忆和回忆算法重点(不用每次都重复看题解), 毕竟算法不是做了一遍就能完全记住的. 所以本文适合已经知道解题思路和方法, 想进一步加强理解和记忆的朋友, 并不适合第一次接触此题的朋友(可以根据题号先去力扣看看官方题解, 然后再看本文内容). 关...

    zhangyucha0 评论0 收藏0
  • 思维图整理大厂面试高频数组24: 合并两个有序数组两种双指针思想, 力扣88

    摘要:此专栏文章是对力扣上算法题目各种方法的总结和归纳整理出最重要的思路和知识重点并以思维导图形式呈现当然也会加上我对导图的详解目的是为了更方便快捷的记忆和回忆算法重点不用每次都重复看题解毕竟算法不是做了一遍就能完全记住的所 ...

    darkerXi 评论0 收藏0

发表评论

0条评论

IT那活儿

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<