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


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

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

問題原因:該問題是因為導出的數據表為空表導致的。Oracle 11GR2當表無數據時,不分配segment,以節省空間,因此在用EXPORT導出時,空表不能導出。

解決方法:

1、使用以下語句查找空表,把查詢結果導出執行,強行修改segment值,然后再導出即可導出空表。

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

注意:語句查出來的不一定是全部的表(有可能有漏掉),如果有缺失可以根據導出日志執行以下alert語句即可。

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

3、設置deferred_segment_creation 參數。該參數值默認是TRUE,當改為FALSE時,無論是空表還是非空表,都分配segment。

alter system setdeferred_segment_creation=false scope=both;

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

 

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM