關於ORACLE 11g資料庫不能匯出空表問題解決

2021-06-26 21:15:19 字數 853 閱讀 5059

oracle 11g新增了乙個引數:deferred_segment_creation,含義是段延遲建立,預設是true。當deferred_segment_creation=true時,新建立的表在未插入資料前,資料庫不會立即為此表分配segment,也就是說不占用資料空間,只有在向此表中插入資料後才真正分配空間。 

這樣雖可以節省少量的空間,但也會造成其他問題。當使用exp命令進行資料庫匯出時,未分配空間的表是不會匯出的,如此造成了資料庫的不完整,給資料庫的遷移帶來麻煩。 

解決未分配空間的表不匯出的問題可採取如下方法:

解決辦法 :

1 設定deferred_segment_creation 引數為false後,無論是空表還是非空表,都分配segment。 

使用命令sqlplus / as sysdba登入。

在sqlplus中,執行如下命令: 

sql>alter system set deferred_segment_creation=false; 

檢視: 

sql>show parameter deferred_segment_creation; 

該值設定後只對後面新增的表產生作用,對之前建立的空表不起作用。 

注意並且要重新啟動資料庫

,讓引數生效 

2、如果想匯出已經建立的表,則可以對空表分配空間

select 'alter table '||table_name||' allocate extent;' from user_tables;

執行以上sql語句輸出的結果,執行完畢,則表已更改。

此時執行exp命令,即可把包括空表在內的所有表,正常匯出。

還原資料庫 oracle 11g

1.需要檔案 2.需要知道表空間 nnc data01 和臨時表空間 nnc index01 和資料庫使用者 nc63train 3.開始,第一步,建立兩個表空間 開啟sql plus,連線資料庫,執行語句 4.第二步,建立資料庫使用者 createuser nc63train identified...

解除安裝Oracle 11g資料庫

完全解除安裝oracle11g步驟 1 開始 設定 控制面板 管理工具 服務 停止所有 oracle 服務。2 開始 程式 oracle orahome81 oracle installation products universal installer,單擊 解除安裝產品 全部展開 選中除 ora...

Oracle11 g資料庫過期

公司使用的oracle11 g 32位 資料庫出現有效期過期問題,解決此問題可以使用下面的方法 1 查詢密碼有效期system登入 sql select from dba profiles where profile default and resource name password life t...