暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

数据泵导出报错常规处理

数据泵导出报错常规处理

作者简介:王旭,在数据库管理方面拥有10多年经验。精通主流数据库系统,在企业数据库管理、性能优化、架构设计和高可用性能解决方案方面拥有丰富得实践经验。目前拥有(ORACLE ACE、MYSQL OCP、PG ACE、PGCA、PGCE、PGCM)等数据库认证。

场景

  • 测试库搭建
  • 迁移
  • 升级

步骤解析

  • 在导出数据泵我们通常遇到较多的报错可能有快照过久、坏块等问题,解决这类问题的一般办法是判断数据是否使用,在哪里开始报错;以下是一个windows上运行的oracle数据库,在导出最后报了几个常见的错误:
  • 第一个快照过久,出现了具体回滚段号,说明我们undo的记录被覆盖了,无法构造出一致性读,在数据泵到这个表的时候无法构造前镜像,这个通常和undo_retention参数有关系,我们将undo表空间文件增加,同时调整这个参数大于数据泵导出时间即可解决。一般全库导出,如果io差或者大对象较多,oracle处理较慢就会导致该问题出现。

  • 第二个报错,坏块,我们通常可以使用exclude参数排除表或者说使用query参数只导出部分数据,可以有效解决该问题。如果排表导出要注意oracle是将该数据库所有的这个表名都排除,如果只想排除某个schema的表,那么只能用query的方式保留下表结构;

总结

  • 数据泵总体使用比较灵活,可以根据卡在哪个位置,做出不同的处理,常见使用的参数就是exclude排除系统用户、排除部份表、排除其它对象,query参数导出部分数据或者只导出表结构等。

文章转载自小周的数据库进阶之路,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论