oracle imp的那些事

近日,用imp导入的时候遇到一些问题。先整理一下遇到的问题,并提供解决的方案。

导入命令如下:

imp test1/test1@实例  file=xxx IGNORE=Y GRANTS=N INDEXES=N CONSTRAINTS=N  log=/tmp/oracleimp.log  buffer=1000000 fromuser=xxx touser=test1
1.ORA-01659: unable to allocate MINEXTENTS beyond 31 in tablespace xxx

(1)导入的时候是分区表,当时备份时并没有指定分区导出,所以导出时包含了全部的分区。导入时oracle会检查要导入的表空间大小是否满足 该分区表预分配的空间大小,不满足的话就会抛出ORA-01659的问题了。所以需要加大导入的表空间大小或者删除一些不需要的数据。

一开始以为导入时表会创建在用户所属的表空间下,实际上是在原来的表空间中。如果要导入的表空间不存在,也会报错的。

所以可以创建要导入的表空间,也可以更换表空间。

(2)也可以指定要导入的表空间,在导入dmp文件之前,先将原备份数据的表结构导出。用文本编辑器更换原来的表空间,然后将sql文件导入到新库。之后执行上述命令可以完整导入。由于表已经被创建了所以导入时忽略了创建表的错误,故可以成功导入。

exp时没有drop表的命令。当表已经被创建时,里面的数据字段和表结构不匹配会产生错误。遇到这种情况需要删除之前创建的表。

在导出时要加上compress=y 将空间压缩一下,会减少该错误的发生。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值