Oracle11g空表导出设置】的更多相关文章

今天凌晨在客户现场进行一个Oracle11g的数据库迁移,习惯性的用了exp/imp,然后在新的数据库发现,空表根本没有exp出来,然后查资料,发现了如下信息:[ORACLE 11G在用EXPORT导出时,空表不能导出. 11G中有个新特性,当表无数据时,不分配segment,以节省空间 解决方法: 1.insert一行,再rollback就产生segment了. 该方法是在在空表中插入数据,再删除,则产生segment.导出时则可导出空表. 2.设置deferred_segment_creat…
轻松解决oracle11g 空表不能exp导出的问题 [引用 2012-9-22 18:06:36]     字号:大 中 小 oracle11g的新特性,数据条数是0时不分配segment,所以就不能被导出. 共两种解决方法,推荐使用第二种(最简单).一.修改数据库参数alter system set deferred_segment_creation=false; 修改后,也不会导出空表,只有新建的空表才会导出,不适用,只有新建数据库时,修改此参数才比较有用.二.sql语句1.先查询一下哪些…
Oracle11g 新增參数deferred_segment_creation  ,建库的时候默认值为true,意思是延时载入,当表中不存在数据的时候,不为这个表创建空间,当你导出的时候会发现非常多表不存在 使用show parameter deferred deferred_segment_creation; 命令能够查看deferred_segment_creation的值.假设想让空表导出 方法一:像库表中插入值 方法二:1.运行sql改动deferred_segment_creation…
1.Oracle11g默认对空表不分配segment,故使用exp导出Oracle11g数据库时,空表不会导出. 2.设置deferred_segment_creation 参数为FALSE后,无论是空表还是非空表,都分配segment. 在sqlplus中,执行如下命令: SQL>alter system set deferred_segment_creation=false; 查看:   SQL>show parameter deferred_segment_creation; 该值设置后…
在使用exp备份数据库,然后使用imp导入的时候出现了好多表或者视图不存在的错误信息. 究其原因,是11G中增加了一个新的特性:数据条数是0时不分配segment,所以就不能被导出. 解决思路:就是向空表中增加一行数据.但是如果有很多空表,一行一行的导入就好出现问题.下面是终极解决方案: 在命令行执行: select 'alter table '||table_name||' allocate extent;' from user_tables where num_rows=0 将查询出来的语句…
之前再做项目的时候下载了一个开源的程序,数据库在移植的时候通过exp/imp导入导出,结果程序在启动时报错,对比过后发现两个数据库表相差了十几个,再排查问题,发现少掉的十几个表全部是空表,查了一下oracle11g的特性,发现当数据条数是0时不分配segment,所以就不能被导出!我勒个擦!坑爹有木有! 但是总不能每个表插入一条数据再导出吧,作为一个程序猿总不能上手工课吧,于是继续查,找到了一个解决办法,特此记录,以儆效尤! 第一种解决办法: 在创建数据库之前,先将数据库segment属性进行修…
背景 oracle9用了一段时间,10用了一段时间,11现在算是主流了.11g也是坑人,空表竟然不导出,解决方法到时很多.这里只是记录下,知道有这个事情. 9的特点是还要用客户端管理工具链接服务器 10的最大改变就是oem变为bs架构了.真是牛 11扯淡地方就多了,安装包还不一样 12有个很大的不同是控制台服务好像给省了 解决方法 Select 'alter table '||table_name||' allocate extent;' from user_tables where num_r…
转自:http://www.2cto.com/database/201109/105931.html oracle11g的新特性,数据条数是0时不分配segment,所以就不能被导出. 解决方法: 1插入一条数据(或者再删除),浪费时间,有时几百张表会累死的.2创建数据库之前使用代码: Sql代码 alter system set  deferred_segment_creation=false;  调整再建表这两种方都不好下面是终极方法: 先查询一下哪些表是空的: Sql代码 select t…
解决方法: 1插入一条数据(或者再删除),浪费时间,有时几百张表会累死的.2创建数据库之前使用代码: Sql代码 alter system set  deferred_segment_creation=false;  调整再建表这两种方都不好下面是终极方法: 先查询一下哪些表是空的: Sql代码 select table_name from user_tables where NUM_ROWS=0;   下面我们通过select 来生成修改语句:Sql代码 select 'alter table…
select 'alter table '||table_name||' allocate extent(size 64k);' from tabs t where not exists (select segment_name from user_segments s where s.segment_name=t.table_name);…