標籤:oracle deferred_segment_cre exp 資料移轉
[email protected]>show parameter segment
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
deferred_segment_creation boolean TRUE
rollback_segments string
transactions_per_rollback_segment integer 5
deferred_segment_creation參數,在11.2.0.4g才有的參數,
建立一個表,在沒有插入資料時是否分配空間,為true時,不分配空間,但在sys使用者下不支援;
deferred_segment_creation=ture;
1.在sys使用者下,建立一個沒有資料的表時,同時自動分配空間;
2.在普通使用者下,建立一個沒有資料的表時,不會分配空間;
查看sql語句,是否已經分配空間;
select dbms_metadata.get_ddl(‘TABLE‘,‘T1‘) from dual;
--設定輸出格式(set long 99999)
deferred_segment_creation在11.2.0.4版本的Oracle資料庫新增參數,預設是true。
這會導致在exp時,沒有segment的對象不會匯出。
解決:
(1)設定deferred_segment_creation的值為false
此方法只對以後的表有效,之前的表還是沒分配空間。
(2) 建立表的時候聲明立即建立Segment
create table table_name segment creation immediate;
(3)對於已經建立但是還沒有Segment的表來說,
可以執行alter table table_name allocate extent來使其建立出分配空間,
當然也可以插入一條資料,使其建立分配空間;
Oracle 中deferred_segment_creation 的用法以及exp時解決辦法