只有一個dump文件,啥信息也沒給的前提下怎麼去正確導入該dump到oracle數據庫

踩坑過程:客戶直接給了一個dump文件,啥信息也沒給的前提下怎麼去正確導入該dump文件

1.首先預估大約需要多少空間。。dump文件發現該文件大小54個G,保守估計導入後會擴大到一倍,所以新建一個用戶,分配一個表空間100G,並分配該用戶dba權限(實際其實只需要imp執行權限就行,但是爲了避免可能會帶來其他因爲權限而導致導入時間排查太久,故而一次性到位,直接給dba權限)

2.據排查發現其實oracle利用dump格式導入導出有兩套命令,exp/imp 和 expdp/impdp,且必須一一匹配,也就是說源端用exp命令導出的,這邊也必須用imp命令導入,反之亦然。

在我們不知道dump文件是用什麼命令導出的時候,我們只能去試,大膽去測試就行。

發現用dmp的時候出現如下錯誤

IMP-00038: Could not convert to environment character set’s handle 

IMP-00000: Import terminated unsuccessfully

很重要的兩個錯誤信息,這兩個錯誤信息就告訴我們源端導出的dump文件命令是用的expdp,所以我們導入的時候要用impdp

3.好了問題又來了,可能有的同學會去百度查資料發現,impdp是屬於完全相同的庫導入導出,需要知道用戶名和表空間,建跟源端一樣的才能導入,不要急,慢慢來

不管怎樣,大膽導一次試下(就用之前開始建好的用戶和表空間)

好,到此到家就會發現,導入的時候它會提示你的,用戶名如果不對,會直接報用戶名不存在,這個時候再建一個一摸一樣的用戶名就行

緊接着,表空間也給出了錯誤的信息提示,再把之前建好的表空間名字修改下就行,也不需要重建表空間。

然後接着再往下執行

至此抽取成功,檢查表裏數據發現確實已經抽取完成。。

實際抽取命令:impdp 用戶名/密碼@實例名 directory=dump文件存放的路徑的別名 dumpfile=dump文件名 

再說下dump文件存放的路徑,兩種,這邊就說一種簡單的,常見的就是去查下服務器默認的dump文件存放路徑,然後把dump文件放到該目錄下,查看方法命令如下

select * from DBA_DIRECTORIES;

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