進行數據庫遷移時,用pl/sql導出數據,然后在導入數據時出問題,并且dos窗口有亂碼顯示,pde和dmp都能正常導出,但是無法正常導入 ,,懷疑時導出數據操作有誤,因為pl/sql導出也是調用exp.exe ,但是窗口會被自動關閉,無法查看詳細的導出日志,所以用手動方式操作
導出 :
- 執行導出后查看日志情況如下
// 數據庫地址可能是數據實例名orcl ,也可能是 ip:端口/數據庫實例名
exp 用戶名/密碼@數據庫地址 file=d:/data.dmp log=d:/data.log tables=要導出的表名
Paste_Image.png
好像有編碼不統一的情況
參考此處修改編碼
-
再次導出 ,編碼問題的警告已經沒有了
Paste_Image.png
導入 :
- 執行后報錯,提示表已經存在(忘記截圖了),原因是我通過sql語句手動建好了表,只是沒有數據 ,所以解決方法是加上一個ignore=y (要根據業務情況而定,不能把一些重要的操作忽略掉了)
// 數據庫地址可能是數據實例名orcl ,也可能是 ip:端口/數據庫實例名
imp 用戶名/密碼@數據庫地址 file=d:/data.dmp log=d:/data_import.log tables=要導入的表名
。
//忽略一些錯誤 ,不會因為有錯誤而停止執行后面的內容
imp 用戶名/密碼@數據庫地址 file=d:/data.dmp log=d:/data_import.log tables=要導入的表名 ignore=y
附加內容
有時導出一個dmp文件,導入時可能會報錯表空間沒有的問題,是因為dmp文件中的表空間是源數據,可能和你當前的表空間不匹配,此時就要修改dmp文件,修改其中的表空間,修改dmp文件的表空間 ,因為是間接用16進制的方式修改,所以盡可能的減少要修改的內容,以免破壞dmp文件的結構,修改前先備份!!!!