Today, we found that the exported tables from Oracle 11gR2 Exp are incomplete, and some non-recorded tables are not exported.
I checked it online and said it was caused by the new Deferred Segment Creation of Oracle 11g R2.
Check the user_tables table and find that the segment_created attribute of the table not exported is NO.
Solution:
1. You can use the following statement to generate an SQL statement for execution:
Select 'alter table' | table_name | 'move ;'
From user_tables where segment_created = 'no ';
Or
Select 'alter table' | table_name | 'allocate extent ;'
From user_tables where segment_created = 'no ';
2. Modify system parameters (not tested ):
You can disable this function by modifying deferred_segment_creation to false. The modification takes effect only for the table created later. Existing tables are not affected.
Alter system set deferred_segment_creation = true;
Others
Alter table... move not only pulls the HWM back, but also recycles the extent
In oracle9i, the table space needs to be reduced after the data of a large table is deleted,
You can use alter table tabname move (tablespace tbs_name ),
Note: At this time, you must rebuild the index. Because after moving, the rowid of the data changes.