精华内容
下载资源
问答
  • exp不导出空表,是11g的新特性,当无数据时,分配segment,以节省空间,所以exp导出的时候,不导出这些。 先登录要导出的用户执行以下语句 先执行 select 'alter table '||table_name||' allocate extent;' ...

    exp不导出空表,是11g的新特性,当表无数据时,不分配segment,以节省空间,所以exp导出的时候,不导出这些表。 先登录要导出的用户执行以下语句

    先执行 select 'alter table '||table_name||' allocate extent;' from user_tables where num_rows=0;

    后执行

    SET FEEDBACK OFF set heading off set pagesize 1000

    spool d:\allocateemptytable.sql

    select 'alter table '||table_name||' allocate extent;' from user_tables where num_rows=0;

    spool off

    这个语句的查询结果是针对空表的sql  把查询结果复制执行 然后在用exp导出

     

    转载于:https://www.cnblogs.com/yourshj/p/5306786.html

    展开全文
  • 用上面的命令总是只能导出部分,假如的话,导出来了,我查了一下,这是ORacle11G的一个bug,需要修改一点配置,才行。 但是修改配置涉及到了生产数据库的修改,这在客户这边是允许了。后来想了...

    测试数据库需要通过生产的数据库的数据导过来。但是用一般的导出命令:imp portal/portal file=/home/oracle/3-21.dmp full=y;

    用上面的命令总是只能导出部分不为空的表,假如表为空的话,导不出来了,我查了一下,这是ORacle11G的一个bug,需要修改一点配置,才行。

       但是修改配置涉及到了生产数据库的修改,这在客户这边是不允许了。后来想了个其他的办法,就是用数据泵的方式也就是用expdp来导出数据,这样就全部导出了。

    使用导出泵的方法为:
    先明确要把导出的dmp文件放到哪个目录下面比如我们要放到'/home/oracle'底下,那么我们要先建立direction='/home/oracle'

    建完之后再执行: 
    然后再输入
    expdp  用户名/密码@IP:端口/实例名 directory=portal_dir tablespaces=portal dumpfile=dp_3-31.dmp logfile=dp_log3-31.log;

    即可。
    步骤为:
    sqlplus /nolog;
    conn sys/sys as sysdba;
    create or replace  directory portal_dir as '/home/oracle';
    grant all on directory portal_dir to portal;
    exit退出sqlplus
    然后执行:

    export ORACLE_SID=beeportal;
    expdp directory=portal_dir  dumpfile=dp_3-31.dmp logfile=dp_log3-31.log;

    上面的字符串是我经过了大量的测试之后得到了,第一句的意思是找到beeporal的实例,假如你不知道机器上的实例你可以用:

    lsnrctl status  来看一下有没有 要导出的实例名。可能执行完了之后会出现错误:

    错误 1、ORA-12514: TNS:listener does not currently know of service requested in connect descriptor

    显示字符串的链接出错了,解决方式为:

    export ORACLE_SID=beeportal;
    expdp directory=portal_dir  dumpfile=dp_3-31.dmp logfile=dp_log3-31.log;

    把实例名和ip端口全部去掉。就可以了。

    错误2、视图和序列倒不出来

    开始的时候我在网上查的时候用的命令是:

     expdp   tablespace=portal 
     directory=test_dir  dumpfile=test_3-31.dmp logfile=test_log3-31.log;

    我把tablespace定为:portal,这样只导出了tablespace=portal的数据,视图和序列都没有导出,于是我把tablespace=portal去掉,问题解决。

    expdp directory=portal_dir  dumpfile=dp_3-31.dmp logfile=dp_log3-31.log;

    ======================================================================================================

     

    上面写的是用数据泵导出数据,现在再看一下用数据泵导入数据。

    为了保证导入数据的完整性。应为:先把表空间和portal用户删掉(假如你知道表空间使用的物理硬盘上的dbf文件,最好也删掉),在建立表空间和poral然后再导入表。

    方法为:

    sqlplus /nolog;
    conn sys/sys as sysdba;

    drop tablespace portal including contents cascade constraints;

    找到物理的表空间的存储地址:dbf文件删掉,到不到也可不删除,不过这要造成浪费磁盘的空间)

    drop user portal cascade;

    create tablespace portal datafile '/u01/app/oracle/product/oracle/dbs/portal2012-3-31.dbf' size 500m autoextend on maxsize unlimited;
    create user portal identified by portal default tablespace portal temporary tablespace temp;

     grant connect,resource,exp_full_database,imp_full_database to portal;

    然后退出sqplus

    执行导入命令:

    impdp portal/portal directory=portal_dir dumpfile=dp_3-31..dmp;

    我说一下命令:

    drop tablespace portal including contents cascade constraints;(表示删除表空间。—)

    drop user portal cascade;(删除用户)

    create tablespace portal datafile '/u01/app/oracle/product/oracle/dbs/portal2012-3-31.dbf' size 500m autoextend on maxsize unlimited;(创建表空间)

    create user portal identified by portal default tablespace portal temporary tablespace temp;(创建用户)

     grant connect,resource,exp_full_database,imp_full_database to portal;(给用户赋上导入导出数据的权限)。

    当然,在执行这些命令的时候不可能一直顺利的,可能出现的问题:

    问题1、应为先执行:drop tablespace portal including contents cascade constraints;再找到物理磁盘dbf文件删除。假如顺序乱了。先删了物理磁盘dbf文件,这时候再执行drop tablespace portal including contents cascade constraints时候会报错。

    解决方法为:先查一下要删除的tablespace依赖的dbf文件,然后将文件挂起,然后再删除。

      select tablespace_name from sys.dba_tablespaces
      alter database datafile '/u01/app/oracle/product/oracle/dbs/portal.dbf' offline drop;
      drop tablespace portal including contents cascade constraints;

    问题2、删除用户时显示:用户正在连接无法删除。

    解决方式为:

    进入sqlplus /nolog; conn sys/sys as sysdba;

           select name,user# from user$;
                找到要删除的portal 的ID=129
                UPDATE USER$ SET NAME='portaldelete' WHERE USER#=129;

    commit;

    改完之后在把数据库停一下在启动:

        ALTER SYSTEM FLUSH SHARED_POOL;

        shutdown immediate;
        startup;

    这样就可以建立新的用户portal了。

    文章出处:http://hi.baidu.com/yfqsdie/item/f123cfbecdfa86f463388e22

    展开全文
  • oracle导出经常空表无法导出,这里介绍了如何将空表导出来,对数据库工作者非常有益,操作十分的简单!
  • oracle数据库空表导出问题 11g,当无数据时,分配segment,导出时数据为0的就会无法导出。 使用:  1.项目开始时,先设置数据库,保证后期的使用正常  alter system set deferred_segment_creation=...
    oracle数据库空表导出问题
    
    11g,当表无数据时,不分配segment,导出时数据为0的表就会无法导出。
    使用:
        1.项目开始时,先设置数据库,保证后期的使用正常
         alter system set deferred_segment_creation=false; 
        2.如果没有设置上边的参数已经将数据库导入,则会出现问题,因为上边的参数只对修改后新增的表有作用,之前导入的没办法使用;
            解决办法  用以下这句查找空表


           select 'alter table '||table_name||' allocate extent;' from user_tables where num_rows=0


          把查询结果形成语句导出
    展开全文
  • Oracle 11G在用EXP 导出时,空表不能导出解决.pdf
  • oracle11g不能导出空表

    2014-01-18 23:12:19
    oracle11g不能导出空表,导致没有数据的空表无法备份。   1.用以下这句查找空表  select table_name from user_tables where num_rows= 0 2.强制分配  alter table tablename allocate extent 3.为了后面...

    oracle11g不能导出空表,导致没有数据的空表无法备份。

     

    1.用以下这句查找空表

       select table_name  from user_tables where num_rows= 0

    2.强制分配

       alter table tablename allocate extent

    3.为了后面创建的表能直接分配segment

      alter system set deferred_segment_creation=false

    展开全文
  • 文档有为什么oracle 11g不能导出空白,导出空表的详细操作方法(很简便哦)
  • Oracle11g,导出时;空表不能导出

    千次阅读 2016-10-21 10:41:38
    Oracle11g,导出时;空表不能导出
  • 最近在做交易系统项目的时候,因为要与测试人员数据库数据保持一致,所以需要从测试部那边把整个数据库导过来,但是就会发现导过来的表不完整,检查之后发现是因为测试部的空表没有导出来。查询了之后,发现这是...
  • oracle11g空表不能导出

    2015-03-27 09:34:12
    oracle 11g 空表不能导出
  • oracle 11g不能导出空表的解决.pdf
  • 有效的解决了Oracle数据库中 空表不能导出的问题,大大节省了开发时间。
  • Oracle 11G 不能导出空表的解决方法.pdf
  • 主要介绍了ORACLE EXP不能导出空表的原因分析及解决方法,大家参考使用吧
  • exp命令导出oracle11g的数据库时,空表会出现错误
  • 也就是说没有创建段的表格是不能被exp导出到dmp文件中的。所以需要我们手动为空表创建段。 二、工具与环境 1.操作系统:window server2008R2 2.oracle版本: oracle 11g 2.0.1 3.oracle客户端:...
  • 一、问题原因: 11G中有个新特性,当无数据时,分配segment,以节省空间 1、insert一行,再...导出时则可导出空表。 2、设置deferred_segment_creation 参数 show parameter deferred_segment_crea
  • Oracle 11G在用EXP 导出时,空表不能导出解决
  • 1. 原因Oracle 11G在导出表时,空表不能导出,11G R2中有个新特性,当无数据时,不分配segment,来节省空间deferred_segment_creation:推迟段的创建,就是不去导出空表,来节省空间。2.解决方法①设置deferred_...
  • 导出oracle11.2.0.4的服务器...Oracle 11G在用EXPORT导出时,空表不能导出  11GR2中有个新特性,当无数据时,不分配segment,以节省空间  解决方法: 一、 insert一行,再rollback就产生segment了。  该方法是
  • ORACLE 11G在用EXPORT导出时,空表不能导出。 11G中有个新特性,当无数据时,不分配segment,以节省空间  解决方法:  1、insert一行,再rollback就产生segment了。  该方法是在在空表中插入
  • 11g Oracle导出表 默认不导出数据为解决
  • 10G客户端导出11G数据文件,如果存在空表,是不能导出的,解决办法: 1.执行select 'alter table '||table_name||' allocate extent;' from user_tables where num_rows=0; 2.执行上一步查询出来的语句。 3.正常...
  • oracle11g 空表不能导出

    2017-03-02 12:07:33
    一、问题原因: 11G中有个新特性,当无数据时,分配segment,以节省空间 1、insert一行,再rollback就产生segment了...导出时则可导出空表。 2、设置deferred_segment_creation 参数 show parameter deferre

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 20,398
精华内容 8,159
关键字:

oracle空表不能导出