11G中有个新特性,当表无数据时,不分配segment,以节省空间
解决方法:
1、insert一行,再rollback就产生segment了。
该方法是在在空表中插入数据,再删除,则产生segment。导出时则可导出空表。
2、设置deferred_segment_creation 参数
show parameter deferred_segment_creation
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
deferred_segment_creation boolean TRUE
SQL> alter system set deferred_segment_creation=false;
系统已更改。
SQL> show parameter deferred_segment_creation
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
deferred_segment_creation boolean FALSE
该参数值默认是TRUE,当改为FALSE时,无论是空表还是非空表,都分配segment。
需注意的是:该值设置后对以前导入的空表不产生作用,仍不能导出,只能对后面新增的表产生作用。如需导出之前的空表,只能用第一种方法。
搞了我好久,最后查到这个方法。
先查询一下当前用户下的所有空表
select table_name from user_tables where NUM_ROWS=0;
用以下这句查找空表
select 'alter table '||table_name||' allocate extent;' from user_tables where num_rows=0
把查询结果导出,执行导出的语句
'ALTERTABLE'||TABLE_NAME||'ALLOCATEEXTENT;'
-----------------------------------------------------------
alter table AQ$_AQ$_MEM_MC_H allocate extent;
alter table AQ$_AQ$_MEM_MC_G allocate extent;
alter table AQ$_AQ$_MEM_MC_I allocate extent;
alter table AQ$_AQ_PROP_TABLE_T allocate extent;
alter table AQ$_AQ_PROP_TABLE_H allocate extent;
alter table AQ$_AQ_PROP_TABLE_G allocate extent;
alter table AQ$_AQ_PROP_TABLE_I allocate extent;
alter table AQ$_KUPC$DATAPUMP_QUETAB_T allocate extent;
alter table AQ$_KUPC$DATAPUMP_QUETAB_H allocate extent;
alter table AQ$_KUPC$DATAPUMP_QUETAB_G allocate extent;
alter table AQ$_KUPC$DATAPUMP_QUETAB_I allocate extent;
'ALTERTABLE'||TABLE_NAME||'ALLOCATEEXTENT;'
-----------------------------------------------------------
alter table AQ$_SYS$SERVICE_METRICS_TAB_T allocate extent;
alter table AQ$_SYS$SERVICE_METRICS_TAB_H allocate extent;
alter table AQ$_SYS$SERVICE_METRICS_TAB_G allocate extent;
alter table AQ$_SYS$SERVICE_METRICS_TAB_I allocate extent;
然后再执行
exp 用户名/密码@数据库名 file=/home/oracle/exp.dmp INDEXES=n STATISTICS=none;
成功!
相关推荐
ORACLE8I数据库应用EXP工具时ORA-06553报错的解决方法 摘要:本文主要解决ORACLE 8I数据库应用EXP工具时ORA-06553报错的问题,分析出现问题的原因,并提供了正确的解决方法和措施。 知识点1:Oracle 8I数据库EXP...
在 Oracle 9i 中,exp工具是非常重要的数据导出工具,但是在使用过程中,经常会遇到一些错误,例如 EXP-00008 ORA-00942 EXP-00024 等错误,这些错误会导致数据导出失败。今天,我们将讨论如何解决这些错误。 EXP-...
通过以上方法,我们可以有效地解决ORA-29275错误,并提高Oracle数据库的整体稳定性和数据完整性。需要注意的是,在实际操作过程中,应当根据具体情况选择最适合的解决方案。例如,在某些情况下,调整字段长度可能是...
文档有为什么oracle 11g不能导出空白,导出空表的详细操作方法(很简便哦)
在IT领域,尤其是在数据库管理与维护中,遇到ORA-01460错误是常见的问题之一,这通常意味着系统在尝试执行数据转换时遇到了未实现或不合理的请求。本文将深入探讨ORA-01460错误的成因、影响以及提供一系列有效的解决...
oracle12c程序连接时异常: ORA-01017: 用户名/口令无效; 登录被拒绝 的解决方案。
Oracle 19c 备份恢复-导入导出是指使用 Oracle 数据库提供的工具 exp 和 imp 实现数据库的备份恢复和数据的导入导出。本文将详细介绍 Oracle 19c 备份恢复-导入导出的基本命令、工作方式、模式、选项和高级选项。 ...
### Oracle 9i 全备份导入到 11g 的处理方法 #### 一、问题背景 当将Oracle 9i的数据全备份导入到Oracle 11g版本时,经常会遇到由于`db_block_size`参数不一致导致的导入失败问题。这种情况下,如果直接进行导入...
### Oracle导dmp出现文件ORA-12154 TNS 无法解析指定的连接标识符解决方案 #### 问题背景 在进行Oracle数据库的操作时,经常会遇到“ORA-12154 TNS 无法解析指定的连接标识符”这样的错误提示。此问题通常发生在...
在View -> Toad Options -> Executables -> Export中,添加exp.exe的完整路径,例如"D:\oracle\ora10g\BIN\EXP.EXE"。 3. **导出所有表中的数据** - 如果你需要导出数据库中的所有表,可以通过快捷键Ctrl+A全选,...
Oracle11g客户端是Oracle数据库系统的一个组成部分,主要用于在Windows环境下与Oracle服务器进行通信和数据交互。这个压缩包文件“Oracle11g客户端安装包.zip”包含安装客户端所需的所有组件,使得用户能够在本地...
在Oracle数据库管理中,导出特定的数据库对象或表是一项常见的需求,特别是在数据迁移、备份或维护场景下。本文将详细解析如何使用Oracle的导出工具(expdp)来导出数据库中的部分表,并将其保存为DMP文件,同时记录...
标题和描述中提到的是关于如何解决Oracle数据库系统中出现的Ora-00600错误的故障处理方法。Ora-00600错误是Oracle数据库内部错误,通常表明系统遇到了无法处理的异常情况。这篇文档可能提供了解决这个问题的步骤和...
在这种情况下,我们可以到 "View" -> "Toad Options" -> "Executables" -> "Export" 中指定 exp 的路径,例如 D:\oracle\ora10g\BIN\EXP.EXE。 此外,我们还可以使用 Toad 来导出某个或多个用户的信息。我们可以...
通过上述步骤,可以有效解决在使用Oracle 11g导出数据时遇到的ORA-1455错误问题。需要注意的是,在执行参数更改和数据导出命令时,应当具备相应的数据库权限,并且考虑到这些操作可能对数据库的性能有短期影响,因此...
### Oracle导入时表空间不一致解决方法 在Oracle数据库管理中,经常会出现因表空间不一致而导致的数据导入失败的问题。本文将详细介绍如何解决这一常见问题,并确保数据能够顺利地从一个环境迁移到另一个环境中。 ...