關於imp無法匯出空表

2021-09-07 06:29:30 字數 1764 閱讀 6624

前天在業務庫中匯出完整庫時,再匯入到新庫時發現部分表丟失。

看日誌後分析是部分空表沒有匯出。查google知,11g中新特性,當表無資料時,不分配segment,以節省空間。而使用exp命令時,無segment的表不會被匯出。

那麼處理方案是為空表分配segment

如何分配segment:

先執行如下語句得出空表,同時生成如何分配segment的sql:

select

'alter table

'||table_name||

'allocate extent;

'from user_tables where num_rows=

0

查詢到的結果如下:

然後將執行結果複製到另乙個sql視窗,並執行,分配segment.然後可以執行imp

alter

table

qrtz_cron_triggers allocate extent;

alter

table

qrtz_job_listeners allocate extent;

alter

table

qrtz_paused_trigger_grps allocate extent;

alter

table

qrtz_trigger_listeners allocate extent;

alter

table

unit_common_department allocate extent;

alter

table

unit_common_user allocate extent;

alter

table

unit_department_user allocate extent;

alter

table

mt_notice allocate extent;

alter

table

mt_tenant_gz_user allocate extent;

alter

table

msg_short_message allocate extent;

alter

table

msg_mas_config allocate extent;

alter

table

cd_read_marker allocate extent;

alter

table

exchange_log allocate extent;

alter

table

qrtz_blob_triggers allocate extent;

alter

table

qrtz_calendars allocate extent;

alter

table

mt_notice_content_info allocate extent;

alter

table

wf_gz_data_sync allocate extent;

alter

table wf_gz_data_sync_his allocate extent;

Oracle空表無法匯出的解決方法

由於oracle 11g的新特性,表資料如果為空,則延遲分配表空間,所以匯出的資料不全 1 設定立刻分配表空間 設定後,後續新增的表即使沒有資料會自動建立表空間,不再延遲建立 alter system set deferred segment creation false 2 查詢當前使用者下的所有...

oracle11g無法匯出空表問題

產生原因 oracle11g為了節約空間,對空表不分配segment 解決方法 方法1.用如下語句設定空表可匯出 alter system set deferred segment creation false注意 該值設定後需重新啟動資料庫,讓引數生效。並且該值只對後面新增的表產生作用,對之前建立...

oracle 匯出空表

資料庫備份 空表不能匯出的問題處理 設定deferred segment creation 引數 設定deferred segment creation 引數為false來禁用 段推遲建立 也就是直接建立segment 無論是空表還是非空表,都分配segment。在sqlplus中,執行如下命令 s...