PL/SQL導入/導出dmp文件-Oracle表空間不一致


背景

      今天進行UAT數據還原到SIT時,兩個環境Oracle數據庫用戶和表空間不一致,剛開始沒在意,經過一翻反復導入導出發現最終導入的只有表結構,數據始終無法導入。

導入的表結構 .sql文件和表數據 .dmp文件均無問題。

      由於數據庫表結構里存在BLOB字段,PLSQL無法導出.sql結果的數據文件,只能通過dmp文件方式導出。經過網上無數PLSQL教程的指導和嘗試,發現無法解決此問題。直接敲命令的方式太麻煩沒有進行嘗試。不得不說還有人轉文章更坑,連導出數據的步驟都是錯的。下面進入正題。

 

版本

PL/SQL:  Version 10.0.5.1710 01.706090

DB :Oracle Database 11g Enterprise Edition Release 11.2.0.3.0

執行步驟

a、導出原數據庫表結構:PL/SQL –> Tools –> Export User Objects

image_thumb3

    1:這個是所屬用戶,這個需要修改為默認用戶,把原來所屬用戶去掉

    2:這個選項要去掉

 

b、導出原數據庫表數據:PL/SQL –> Tools –> Export Tables

image_thumb6

   Grants : 授權,如果兩邊用戶不同,這個選項千萬不要選,導出的數據重點就在這,只有這個選項會讓數據和用戶體系有關聯。

這樣我們需要的表結構和數據都可以導出完成了。由於我們表數據量大,跑一次就得半小時,就這個玩意兒坑了我兩個小時。Broken heart

 

c、導入表結構到新數據庫:PL/SQL –> Tools –> Import Tables –> SQL Insert

image_thumb11

這個沒什么難度,找對地方、找對文件直接干就能成功了。

 

d、導入表數據到新數據庫:PL/SQL –> Tools –> Import Tables –> Oracle Import

image_thumb12

同樣的問題在這個:

Grants: 這個不要選,如果導出的數據里Grants存在,在這導入時不選擇是否能成功?由於我這操作麻煩就沒有再次嘗試了。

Show:這個據說選擇了的話,數據就無法導入進去了,沒驗證,反正也沒啥用,就不選了。

 

總結

小問題也能帶來大麻煩,表面看來只是一個選項選擇的問題,里面其實涉及含義很多。

1、如果是數據庫遷移或者還原,那么Grants這種權限類,表空間類的選項肯定是要選擇的。

2、對於不同用戶、表數據導入就只關注數據本身,原數據庫表的權限之類的屬性就會和新表引起沖突導致導入失敗。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM