oracle忽略版本号导入,关于oracle高版本到低版本导入ORA-39125

关于oracle高版本到低版本导入ORA-39125

2014-05-03 20:32:00

1147533288

原创

682

问题及解决记录如下(导入数据库oracle 10.2.0.1.0):

1.首先oracle11使用exp方式导出dmp,导入oracle10时正常成功,结果统计表数据量发现核对不上,部分空表没有成功导出。

核对导出log后发现,原数据库用户下78张表,实际导出62张表,导入正常,但是缺表,影响后续使用。。

2.改采用oracle11使用expdp方式导出dmp,导入oracle10失败

ORA-39125: Worker unexpected fatal error in KUPW$WORKER.PUT_DDLS while calling DBMS_METADATA.CONVERT [TABLE_STATISTICS]

ORA-06502: PL/SQL: numeric or value error

LPX-00225: end-element tag "HIST_GRAM_LIST_ITEM" does not match start-element tag "EPVALUE"

在网上查了一些资料说是ORACLE的BUG,需要打补丁。

采用以下办法解决成功:

导入的时候加一个exclude=table_statistics

select 'exec dbms_stats.gather_table_stats(ownname=>''' || owner || ''',tabname=>''' || TABLE_NAME || ''',cascade=>TRUE);'

from dba_tables where owner = 'TEST';

获取并批量执行sql(先将数据导入,然后收集模式所有对象的统计信息)

-------------------------------------------------------------------

更新

关于oracle11exp无法导出空表的解决方案:

原因:11G中新特性,当表无数据时,不分配segment,以节省空间。

1.system用户登陆,查询你要修改的用户下的表,我这里修改6个用户对应空表(采集,正确,错误库等等)

select 'alter table '||owner||'.'||table_name||' allocate extent;' from dba_tables where num_rows=0 and owner in ('CJ','ZQ','CW','BF','SY','PZ');

2.批量执行sql,分配segment.

3.E:\soft>exp system/orcl@10.10.10.28/orcl owner=(cj,zq,cw,bf,sy,pz) file=di.dmp log=di.log buffer=409600000 feedback=10000 rows=n

导出多用户,空表结构(rows=n)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值