ITPub博客

首页 > 数据库 > Oracle > Run Out Of Space On UNDO Tablespace Using DataPump Import/Export

Run Out Of Space On UNDO Tablespace Using DataPump Import/Export

原创 Oracle 作者:kisslfcr 时间:2016-09-05 09:15:07 0 删除 编辑
参考文档:
Run Out Of Space On UNDO Tablespace Using DataPump Import/Export (文档 ID 735366.1)
Error ORA-30036 DataPump Import (IMPDP) Exhausts Undo Tablespace (文档 ID 727894.1)

使用datapump数据迁移时,若目标库中表已经存在且有索引或者主键约束,则在插入每一行都会产生undo,从而出现undo表空间不够的报错。
在alert日志中有如下内容
statment in resumable session 'XXXXXX' was suspended due to 
  ORA-30036:无法按8拓展段(在换源表空间'UNDOTBS1'中)
为了防止次问题可以在迁移前做如下处理(如条件允许)

主键:
using ALTER TABLE ... MODIFY CONSTRAINT ... DISABLE NOVALIDATE
迁移完成后
ALTER TABLE ... MODIFY CONSTRAINT ... ENABLE VALIDATE
索引:
drop后重建

至于为什么impdp会产生大量undo,原因在于目标表已存在且其上有索引,插入数据时需要维护索引,索引有序,此时就会涉及到数据块的改变,数据块改变就会产生undo和redo,此时若表很大,则会产生大量的undo数据从而撑爆表空间。

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

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

注册时间:2015-01-12

  • 博文量
    246
  • 访问量
    426060