問題描述:我使用oracle11G開發,表空間名稱叫TBS_A,得知客戶服務器表空間創建成了TBS_B,為了更方便導出數據庫到客戶服務器,就在自己的數據庫也創建了個同名表空間TBS_B。然後將我自己的數據使用imp(不是dp)從TBS_A導入到了TBS_B,然後將自己TBS_B的表空間使用expdp導出成10G版本。但是拿到客戶那,使用impdp導入時卻提示我TBS_A表空間不存在
我想問,我導出的是自己數據庫的TBS_B,為什麼到客戶那會提示最初數據庫表空間的名字不存在。
最後加了個 remap_tablespace參數解決,但是不明白為什麼會提示最初那個表空間不存在。
最後解決的方法是
1.使用PL/SQL “導出用戶對象”,會生成一個以原有表空間的表結構。替換下關鍵,例如原有表空間名為“test1”,使用Editplus打開生成的Sql文件將所有“test1”的關鍵字替換為“要導入的表空間名”。
2.使用PL/SQL “導入表”,將剛才改好SQL文件導入,此時在當前用戶下的默認表空間裡已經生成表結構。
3.使用exp命令將數據庫導出:
exp 用戶名/密碼@192.168.1.158/orcl owner=用戶 grants=y file=D:\backup\ZLQHWEB_DATA.dmp log=D:\backup\ZLQHWEB_LOG.log
4.使用imp命令導入:
imp zlwb/[email protected]/orcl full=y ignore=y file=D:\backup\ZLQHWEB0712_DATA.dmp
因為是不同表空間導入所需需要設置full=y,因為已經存在相應的表結構,所以需要設置ignore=y。