最近在oracle数据库还原时,出现好多表没有导入成功,这是因为什么呢,网上查阅资料,导库前需要进行数据库的空表处理。这里记录下来,方便备查。
数据库版本:oracle 11g
deferred_segment_creation 延迟段创建(Oracle 11g的新特性)
alter system set deferred_segment_creation=false;
设置为 true,即创建一个表时,不分配空间,只有插入第一条数据时才分配空间。
优点:加快建表速度,节约空间
缺点:export导出是不会导出空表
Select 'alter table '||table_name||' allocate extent;' from user_tables where num_rows=0 or num_rows is null;
执行SQL后,会生成若干可执行的语句,即空表的更改语句 修改表extent。如下图所示
生成出来的语句就是空表的压缩空间的语句,复制出来执行即可!
创建用户:gzgl ,密码:gzgl ,默认工作空间:DATA
在windows的cmd窗口下执行数据导入命令
imp gzgl/gzgl @orcl full=y file=D:/20191231.dmp log=D:/20191231.dmp.log
空表处理后,数据库的导入就会好很多。
【1】.html
本文发布于:2024-02-01 02:12:17,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170672474033105.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |