oracle11g导出数据库空表

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

固然oracle11g数据迁移的方式有不少种,可是exp/imp依旧是我使用最熟悉的命令,下面提出的方案,能够解决上文中提到的问题。 数据库

一、修改oracle系统参数 oracle

alter system set deferred_segment_creation=false;

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

二、为空表手工分配表空间 code

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

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命令了。 table

注意:上面的操做,针对有必定oracle基础的同窗。 class

相关文章
相关标签/搜索