使用 impdb 的表空間 ‘XXX_SML_INDEX’ 不存在
我是甲骨文的新手。我正在嘗試使用轉儲文件將 Oracle 數據庫從一台機器導入到另一台機器。我正在使用以下命令進行導入
impdp MOBILETEST/MOBILETEST 目錄=MOBILETEST 轉儲文件=MOBILETEST.dmp 日誌文件=MOBILETEST.log full=y;
我收到錯誤:“表空間 ‘XXX_SML_INDEX’ 不存在”
ORA-39083: 對像類型 TABLESPACE_QUOTA 未能創建並出現錯誤:ORA-00959: 表空間 ‘XXX_SML_INDEX’ 不存在 失敗的 sql 是: DECLARE TEMP_COUNT NUMBER; SQLSTR VARCHAR2(200); BEGIN SQLSTR := ‘ALTER USER “MOBILETEST” QUOTA UNLIMITED ON “XXX_SML_INDEX”’; 立即執行 SQLSTR;如果 SQLCODE = -30041 THEN SQLSTR := ‘SELECT COUNT(*) FROM USER_TABLESPACES
WHERE TABLESPACE_NAME = ‘‘XXX_SML_INDEX’’ AND CONTENTS = ‘‘TEMPORARY’’’,則立即執行 SQLSTR;EXE ORA-39083:對像類型 TABLESPACE_QUOTA 未能創建並出現錯誤:
- 我正在嘗試使用remap_tablespace但不知道在哪裡可以獲得第二個 TABLESPACE_QUOTA 名稱,例如 remap_tablespace=XXX_SML_INDEX: ?
查找數據庫級別的預設表空間(不一定是使用者的預設表空間):
SQL> select property_value from database_properties where property_name = 'DEFAULT_PERMANENT_TABLESPACE'; PROPERTY_VALUE -------------- USERS
在另一個具有足夠查詢權限的使用者登錄時,為您的使用者找到預設表空間
DBA_USERS
:SQL> select default_tablespace from dba_users where username = 'BP'; DEFAULT_TABLESPACE ------------------------------ USERS
以該使用者身份登錄時為您的使用者查找預設表空間:
SQL> select default_tablespace from user_users; DEFAULT_TABLESPACE ------------------------------ USERS
使用該資訊,將表空間重新映射為:
remap_tablespace=XXX_SML_INDEX:USERS
.
在目標數據庫(您打算導入的地方)中找到現有表空間的列表,然後
select distinct tablespace_name from dba_tablespaces;
然後使用remap_tablespace:
impdp MOBILETEST/MOBILETEST directory=MOBILETEST dumpfile=MOBILETEST.dmp logfile=MOBILETEST.log full=y remap_tablespace=XXX_SML_INDEX:CUSTOMER_TS