Oracle導出的數據庫,再導入部分表未導出 或Oracle空表導出失敗

像遇到特殊情況下的加班,加班內容又不多,有不想來公司的情況下,想導一個庫到本地上,然後會宿舍繼續加班,像遇到疫情這樣的情況,大多數都是將導入本地庫啦,之前還是剛剛入職的時候導庫導的不完整,後面百度了一下,也明白了這個,現在記錄一下,以後就不會錯了。主要原因是Oracle11G的新特性導致的,我們重新設置即可,也簡單。該導庫以及導入的全過程是由CMD進行操作即可。如果導入失敗可以對需要導入庫的所有舊錶進行手工刪除(建議先對需要刪除數據庫的先備份先)。

 

第一步:設置空表對應的設置

導出空表時設置對應的segment(11G新特性,當表無數據時,不分配segment,以節省空間) 。

所以執行第一句語句:空表分配segment,

然後再執行第二句語句:將第二句的查詢結果,複製出來,全部執行一遍,目的是保證空表能通過CMD導出。

alter system set deferred_segment_creation=false scope=both; 

select 'alter table '||table_name||' allocate extent;' from user_tables;

 

第二步:導出數據

語法:

exp 用戶名/密碼@ROCL file=數據庫地址+數據庫名稱.dmp owner=(用戶名稱)

 

例子:

exp TestDB/TestDB@ORCL file=D:\測試\TestDB.dmp owner=(TestDB)

第三步:導入數據

語法:

imp 用戶名/密碼@ROCL file=導出位置+數據庫名稱.dmp full=y ignore=y

解釋說明:

full=y:( 全庫導出): 導出除ORDSYS,MDSYS,CTXSYS,ORDPLUGINS,LBACSYS 這些系統用戶之外的所有用戶的數據.

ignore=y: 表示忽略創建錯誤,繼續後面的操作

例子:

imp TestDB/TestDB@ORCL file=D:\測試\testDB.dmp full=y ignore=y

 

 

                                                          遇到最好的自己,不卑不亢-------------------2020-03-21 深夜

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章