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

背景

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

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

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

 

版本

PL/SQL:  Version 10.0.5.1710 01.706090blog

DB :Oracle Database 11g Enterprise Edition Release 11.2.0.3.0教程

執行步驟

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

image_thumb3

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

    2:這個選項要去掉io

 

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

image_thumb6

   Grants : 受權,若是兩邊用戶不一樣,這個選項千萬不要選,導出的數據重點就在這,只有這個選項會讓數據和用戶體系有關聯。im

這樣咱們須要的表結構和數據均可以導出完成了。因爲咱們表數據量大,跑一次就得半小時,就這個玩意兒坑了我兩個小時。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:這個聽說選擇了的話,數據就沒法導入進去了,沒驗證,反正也沒啥用,就不選了。

 

總結

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

一、若是是數據庫遷移或者還原,那麼Grants這種權限類,表空間類的選項確定是要選擇的。

二、對於不一樣用戶、表數據導入就只關注數據自己,原數據庫表的權限之類的屬性就會和新表引發衝突致使導入失敗。

相關文章
相關標籤/搜索