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

相關文章
相關標籤/搜索