Oracle 11g 使用exp命令匯出表不全的解決方案

G8bao7發表於2017-11-02
    今天在做遷移資料庫,從11.2.0.1遷移到11.2.0.4,用exp匯出一個使用者下所有的物件,在做imp匯入的時候發現表少了很多,看日誌後分析是部分空表沒有匯出。在網上查了一下,發現是11G中新特性,當表無資料時,不分配segment,以節省空間。而使用exp命令時,無Segment的表不會被匯出。
    解決方案的文章:
    
   最後我們採取了第三種:
   用SQL拼接一個語句: select 'alter table '||table_name||' allocate extent;' from user_tables where num_rows=0;
 :
  alter table BUSEXTINFO allocate extent;
  alter table BUSCHECKINFO allocate extent;
  alter table HOMEMEMBER allocate extent;
  alter table BUSASSEMBLYINFO allocate extent;
  alter table BUSASSEMBLYHISTORY allocate extent;
  alter table ASGNEMPDUTYPLUS allocate extent;
  alter table JX_MAINTAINPEOPLELD allocate extent;
  alter table MCBUSOILSTANDARDGS allocate extent;
  alter table MCBUSOILSTDDETAILDGS allocate extent;
  alter table FDISARRSEQUENCETIMELD allocate extent;
  alter table FDISARRSEQUENCETMPLD allocate extent;
  .......
最後執把這些語句執行一遍就OK了!

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/26250550/viewspace-2146739/,如需轉載,請註明出處,否則將追究法律責任。

相關文章