環境: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
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/18428.html
標籤:Oracle
上一篇:[20200211]使用DBMS_SHARED_POOL.MARKHOT與sql_id的計算.txt
下一篇:ORACLE隱式型別轉換
