23.1、说明:

1、

众所周知,在清空表内所有数据时,truncate比delete要快很多,原因是,delete语句每次删除一行,都在事务日志中为所删除的每行记录一项。

truncate通过释放存储表数据所用的数据页来删除数据,并且只在事务日志中记录页的释放。但是如果表存在外键的话,是不能使用truncate的。

在使用的过程中,我发现某个存在外键的表,使用truncate提示成功了。一开始,我在怀疑是不是oracle存在bug,在某个特定条件下,触发了

这个bug,造成truncate成功了。后来,等这张表插入过数据之后,我再使用truncate时,提示失败了。我这才恍然大悟,这个问题跟exp空表

无法导出是一个原因。oralce11g为了节省存储空间,新建表的时候默认是不分配segment的。既然segment都没有,就不用谈exp和truncate了。

但是oracle还是预留了系统参数 DEFERRED_SEGMENT_CREATION(延迟创建segment)。这个参数,默认是true。我们可以将他改成false。这

样的话,再创建表的时候就会立即分配segment了。但是修改参数之前创建的表还是不会立即分配segment的。如果想分配segment,可以在表中

插入一条数据,再删除。也可以使用 alter table XXX allocate extent,这样就会创建segment了,再使用exp就会导出空表,而且存在外键的表

使用truncate清空数据时,也不会提示成功了。如果单表插入数据后被truncate,则会保留segment。

2、DEFERRED_SEGMENT_CREATION 设置为true的优缺点:

(1)优点:

在创建一系列表的时候,若事先已知许多表并没有数据,可以指定这个参数为true,这样可以节省空间,也可以增加建表速度。

(2)缺点:

使用exp导出的时候,不会导出没有segment分配的表。使用expdp可以导出空表。

3、查看该参数当前设置:

show parameter deferred_segment_creation;

4、修改该参数当前设置:

这个参数可以动态修改,使用 alter system/session set deferred_segment_creation=true/false;

更改后,之前延迟分配segment的表并不会受到影响,仍然为空表。

5、查询某schema中所有未分配segment的表可以使用以下语句:

select * from user_tables where segment_created = 'NO';

6、若想为这些未分配segment的表分配空间,可以使用语句:

select 'alter table' || table_name || 'allocate extent;' from user_tables where segment_created = 'NO';

为所有空表分配segment,之后就可以进行exp导出了。

23.2、示例:

1、说明:

用impdp命令将从linux(版本:Oracle Database 11g Enterprise Edition Release 11.2.0.4.0-64bit Production,A库)上面导出的数据库

导入到本地windows系统的数据库(Oracle Database 11g Standard Edition Release 11.2.0.1.0 - 64bit Production,B库)上时,报了以

下错误:

错误描述:

ORA-00439 未启用的功能:DEFERRED_SEGMENT_CREATION

或者叫做

ORA-00439 feature not enabled deferred segment creation

2、解决思路:

(1)查看 DEFERRED_SEGMENT_CREATION 参数设置是否一样:

在A库查询参数被设置为TRUE,在B库查询参数被设置为FALSE,修改B库设置,改成 TRUE,重新导入,还是报一样的错误。

(2)查看数据库版本:

A库是企业版,B库是标准版。

DEFERRED_SEGMENT_CREATION 在标准版中不支持该功能。

(3)解决办法:

在做expdp时,带上参数 version = 10.2.0,同样,在做impdp时,也带上参数 version = 10.2.0。

特别注意:version=11.2.0 是不行的。

23、ORA-00439:DEFERRED_SEGMENT_CREATION 问题解决的更多相关文章

  1. Python中读取txt文本出现:SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 2-3: truncated \UXXXXXXXX escape问题解决

    windows中的路径是反斜杠\,然而反斜杠\在python中有着转义字符的意义,所以在py文件中写windows文件路径的时候,要特别注意反斜杠\的使用. 下面有三种解决方式: 方式一:转义的方式 ...

  2. celery问题记录

    1. 问题:WARNING/MainProcess] /home/jihonghe/.virtualenvs/py3_dj217_env/lib/python3.6/site-packages/bil ...

  3. Oracle 错误总结及问题解决 ORA

    参考地址 ORA-00001: 违反唯一约束条件 (.)错误说明:当在唯一索引所对应的列上键入重复值时,会触发此异常.ORA-00017: 请求会话以设置跟踪事件ORA-00018: 超出最大会话数O ...

  4. oracle安装完成后目录中不论有没有tnsnames.ora和listener.ora文件 PLSQL都能连上的问题解决方法

    今天遇到这个问题了,发现listener.ora文件和tnsnames.ora文件在Net Work文件夹下没有,正常情况下安装完oracle或者是oracle Client是会有的,但是在Net M ...

  5. oracle服务起不来以及无法监听问题解决

    改问题是在搭建起一个很早之前的数据库的时候碰见的,虽然这个问题网上已经有很多相关的帖子,但因最近碰见多次这样的问题,特此简单记录: 1.最开始碰见的问题是:The listener supports ...

  6. 【原创】ORACLE常见使用问题解决

    ORACLE常见使用问题解决 一.安装了oracle客户端后,发现plsql客户端找不到之前已经配置过的TNS连接信息 或许大家再使用ORACLE软件的过程中,经常会遇到这样的问题: 问题现象描述: ...

  7. ARCGIS Server 发布服务时出现的问题解决

    target='CFH.ConfigurationFactoryHost'  machine='IBM3850X5'  thread='24072'  elapsed='0.31200'>Ser ...

  8. tnsnames.ora 监听配置文件详解

    今天是重要的一天.将XML数据导入ORACLE遇到很多问题,学了好多,其中很长时间花在网络配置上,刚开始学,具体原因不知道,先把搜集到的好文章存下来,以后慢慢研究. 监听配置文件            ...

  9. Selenium2学习-038-firefox、webdriver版本不对称问题解决:org.openqa.selenium.firefox.NotConnectedException: Unable to connect to host 127.0.0.1 on port 7055

    今天有个朋友在群里问,为何脚本运行不通过,其脚本操作步骤简单描述如下: 1.启动火狐浏览器 2.打开百度 3.查询框输入关键字 4.点击按钮[百度一下] 脚本挺简单的,其给出的应用报错信息如下所示: ...

随机推荐

  1. Linux性能监控与分析之--- CPU

    Linux性能监控与分析之--- CPU 望月成三人关注 2016.07.25 18:16:12字数 1,576阅读 2,837 CPU性能指标 用户进程使用CPU的比率 系统进程使用CPU的比率 W ...

  2. 9.4-6 kill & killall & pkill

    kill:终止进程 能够终止你希望停止的进程. kill 命令的参数选项及说明 -l    列出全部的信号名称 -p    指定kill命令只打印相关进程的进程号,而不发送任何信号 -s    指定要 ...

  3. Day029 JDK8中新日期和时间API (四)

    JDK8中新日期和时间API 其他的一些API ZoneId:该类中包含了所有的时区信息,一个时区的ID,如 Europe/Paris ZonedDateTime:一个在ISO-8601日历系统时区的 ...

  4. Linux - fuser 命令

    前言 之前连公司堡垒机的时候发现连不上,找运维排查是建立的链接数太多,很多超时链接没有断掉,导致不能再创建链接 此时,需要手动断开用户终端链接,然后百度搜到 fuser 可以断开用户终端链接 命令作用 ...

  5. node.js学习(1)全局对象

    1 计时器 1)三秒后执行 2) 每隔2秒执行一次 3)清除计时器 2 全局对象 1)当前文件所在目录 2)当前文件路径

  6. 多尺度目标检测 Multiscale Object Detection

    多尺度目标检测 Multiscale Object Detection 我们在输入图像的每个像素上生成多个锚框.这些定位框用于对输入图像的不同区域进行采样.但是,如果锚定框是以图像的每个像素为中心生成 ...

  7. 外部NORFlash是第一个以硬件为基础的信任

    外部NORFlash是第一个以硬件为基础的信任 External NOR Flash memory is first with hardware root-of-trust 英飞凌科技公司宣布了它声称 ...

  8. python+selenium基础篇,文件上传

    1.百度查询图片,上传文件 2.实现代码如下: from selenium import webdriverfrom time import sleepdr=webdriver.Firefox()dr ...

  9. Spring Cache缓存技术,Cacheable、CachePut、CacheEvict、Caching、CacheConfig注解的使用

    前置知识: 在Spring Cache缓存中有两大组件CacheManager和Cache.在整个缓存中可以有多个CacheManager,他们负责管理他们里边的Cache.一个CacheManage ...

  10. Netty 框架学习 —— ChannelHandler 与 ChannelPipeline

    ChannelHandler 1. Channel 生命周期 Channel 的生命周期状态如下: 状态 描述 ChannelUnregistered Channel 已经被创建,但还未注册到 Eve ...