oracle11g导出数据库空表

原创
2014/03/26 12:45
阅读数 1.1K

项目中使用oracle11g的情况越来越常见,也经常会基于oracle11g数据库的数据迁移。缘于oracle11g的一个特性,默认情况下,oracle不会给空表分配表空间,对于这些空表,使用exp命令做导出的时候,不会导出这些空表。

当然oracle11g数据迁移的方式有很多种,但是exp/imp依旧是我使用最熟悉的命令,下面提出的方案,可以解决上文中提到的问题。

1、修改oracle系统参数

alter system set deferred_segment_creation=false;

作用:对于新建的表,直接分配表空间

2、为空表手工分配表空间

用指定的数据库用户,执行脚本文件createAllocateSql.sql,脚本如下:

set heading off;

set echo off;

set feedback off;

set termout on;

spool allocate.sql;

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

spool off;
执行上面的脚本后,会生成  allocate.sql文件,执行该文件,完成空表的空间分配。

通过上面的操作,以后就可以没压力的使用exp命令了。

注意:上面的操作,针对有一定oracle基础的同学。


展开阅读全文
加载中

作者的其它热门文章

打赏
0
4 收藏
分享
打赏
0 评论
4 收藏
0
分享
返回顶部
顶部