ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 11gR2关于exp问题

11gR2关于exp问题

原创 Linux操作系统 作者:大米嗵嗵 时间:2011-11-22 17:55:36 0 删除 编辑

数据库版本:11.2.0.2
客户端版本:11.2.0.1

做个测试,新建一张test1,插入数据,另外再建1张空表test2

exp用户导出报错
. . 正在导出表 test1
导出了 5 行
EXP-00008: 遇到 ORACLE 错误 1455
ORA-01455: 转换列溢出整数数据类型
EXP-00000: 导出终止失败
客户端以表方式导出test1没问题,但是在导test1的下一张表格test2报同样问题,同时在某些客户端报错信息多了条EXP-00003: no storage definition found for segment(0,0)
于是在服务器端进行相同的测试,导出均没问题。
此原因是由于11.2.0.1遗留下来的一个bug。
在11.2.0.1上用户模式的导出方式会忽略过没有分配segment的空表,日志不报任何错误。而以表模式导出空表时会报该表或视图不存在的错误。

尽管ORACLE说在11.2.0.2上此bug已经得到解决,但是前提是客户端需要同样是11.2.0.2的版本。

针对此情况最有效的方式可以采用以下2种对11.2.0.2数据库进行处理
方法一:
修改11g新参数deferred_segment_creation 改为false,重建相关新表,原因是11g默认初始新建表并不马上分配segment
之后导出无报错(同时也是11.2.0.1的解决方案)
方法二:
将客户端升级到11.2.0.2、

对于空表先插入数据再delete的方式或者创建表时加入allocate extent size 1k的子句,可以采用但并不方便

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/24005010/viewspace-711788/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2010-07-31

  • 博文量
    75
  • 访问量
    157829