Oracle導出警告「EXP-00003: 未找到段 (0,0) 的存儲定義」解決

環境:CentOS7.4   Oracle11.2.0.4(搭建rac集羣)spa

問題描述:在使用exp命令執行導出的時候,部分表提示「EXP-00003: 未找到段 (0,0) 的存儲定義」警告。.net

問題緣由:該問題是由於導出的數據表爲空表致使的。Oracle 11GR2當表無數據時,不分配segment,以節省空間,所以在用EXPORT導出時,空表不能導出。日誌

解決方法:code

一、使用如下語句查找空表,把查詢結果導出執行,強行修改segment值,而後再導出便可導出空表。blog

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

注意:語句查出來的不必定是所有的表(有可能有漏掉),若是有缺失能夠根據導出日誌執行如下alert語句便可。get

二、在相應的空表中插入一條記錄再刪除(或者rollback)。這樣能夠產生segment。導出時則可導出空表。io

三、設置deferred_segment_creation 參數。該參數值默認是TRUE,當改成FALSE時,不管是空表仍是非空表,都分配segment。table

alter system setdeferred_segment_creation=false scope=both;

注意:該值設置後對之前導入的空表不產生做用,仍不能導出,只能對後面新增的表產生做用。如需導出以前的空表,只能用前面兩種辦法。class

 

參考:https://blog.csdn.net/u013991521/article/details/52576473集羣

相關文章
相關標籤/搜索