踩坑程序:客戶直接給了一個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;

轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/252016.html
標籤:其他
上一篇:抖音資料采集Frida脫殼工具
