Welcome 微信登录

首页 / 数据库 / MySQL / Oracle 11g 导出表报EXP-00011:table不存在

Oracle 11g,在用exp命令备份数据库时,如果表中没有数据报EXP-00011错误,对应的表不存在。这导致对应的空表无法备份。原因:11g默认创建一个表时不分配segment,只有在插入数据时才会产生(当然也可以强制分配),以节省磁盘空间。对于已经存在的空表解决办法:就是想办法让空表有segment,第一种:可以通过插入数据的方式(不想要这些数据可以回滚),只要有insert动作就会分配segment;第二种:就是强制分配:alter table tablename allocate extent;如果采用第二种可以用以下方法:1、用以下这句查找空表:select "alter table "||table_name||" allocate extent;" from user_tables where num_rows=0;2、把查询结果导出,执行导出的语句; 为了后面创建的表能直接分配segment:用系统账户登录数据库,修改参数deferred_segment_creation(11g新增的)。该参数即指是否延迟创建segment,默认为true。如果想让表创建时就分配segment,那么就应该修改该参数为false即alter system set deferred_segment_creation=false。 然后show parameter deferred deferred_segment_creation;如下所示:推荐阅读:Linux上Oracle 11g安装步骤图文详解 http://www.linuxidc.com/Linux/2013-10/91270.htmLinux操作系统中Oracle 11g数据库安装过程图文详解 http://www.linuxidc.com/Linux/2012-12/76814.htmCentOS 5.6 上安装 Oracle 11g R2 单实例数据库详解 http://www.linuxidc.com/Linux/2013-02/79189p4.htmOracle VM虚拟机中安装Oracle Clusterware 11g步骤 http://www.linuxidc.com/Linux/2008-11/17161.htmVM虚拟机下在Linux上安装Oracle 11G单实例数据库 http://www.linuxidc.com/Linux/2013-10/91192.htm更多Oracle相关信息见Oracle 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=12<!-- Baidu Button BEGIN -->Oracle 11g等待事件:db file async I/O submitORA-01795: 列表中的最大表达式数为1000相关资讯      EXP-00011 
  • Oracle EXP-00011 导出数据时空表  (12/24/2012 19:50:11)
本文评论 查看全部评论 (0)
表情: 姓名: 字数