Oracle 11.2.0.2 exp导出错误处理一则
客户生产库版本为AIX 11.2.0.2,客户端版本为11.2.0.1,在客户端按用户级别导出表格的时候出现以下错误:
. . 正在导出表 S61_B214_GT_2010_3301
导出了 1224 行
EXP-00008: 遇到 ORACLE 错误 1455
ORA-01455: 转换列溢出整数数据类型
EXP-00000: 导出终止失败
为了排除错误,客户端以表方式导出,S61_B214_GT_2010_3301,的下一张表格报同样错误,同时在某些客户端报错信息多了以下错误:
EXP-00003: no storage definition found for segment(0,0)
这个错误已经很明显了,因为在11.2.0.1时,由参数deferred_segment_creation(默认为true)控制是否对新建表格默认分配段空间,所以在exp新建表格时,往往会出现此类错误。
最终Oracle认为此类错误为bug,并在11.2.0.2时得以修正。知道问题的原因之后,我们就可以有以下3种解决方案:
1、在生产端导出
2、客户端升级到11.2.0.2,由于客观原因,不能升级客户端.
3、生产库将参数deferred_segment_creation由true改为false(所幸该参数可以动态修改),并重建相关新建表格
select owner,table_name from dba_tables where table_name not in (select segment_name from dba_segments where segment_type = 'TABLE') and owner='HZ';