Oracle-10g
從源數據庫文件系統已更改的轉儲導入 Oracle 數據庫
我正在將數據庫從一台伺服器遷移到另一台伺服器。在遷移過程中,我們將文件系統結構從:
/appli2/oradata05/HISTO/ /appli2/oradata06/HISTO/ /appli2/oraredolog01/HISTO/ /appli2/oraarch/HISTO/
到
/appli2/oracle/HISTO/oradata05 /appli2/oracle/HISTO/oradata06/HISTO/ /appli2/oracle/HISTO/oraredolog01/HISTO/ /appli2oracle/HISTO/oraarch/HISTO/
根據這些變化,我得到了錯誤:
Starting "SYSTEM"."SYS_IMPORT_FULL_01": SYSTEM/******** DIRECTORY=MIG11G DUMPFILE=20131125_full_HISTO.expdp LOGFILE=impdp_dump_HISTO_r7.log parallel=4 Processing object type DATABASE_EXPORT/TABLESPACE ORA-31684: Object type TABLESPACE:"UNDO" already exists ORA-31684: Object type TABLESPACE:"TEMP" already exists ORA-31684: Object type TABLESPACE:"TOOLS" already exists ORA-39083: Object type TABLESPACE failed to create with error: ORA-01119: error in creating database file '/appli2/oradata05/HISTO/HISTO_tab_anc_01.dbf' ORA-27040: file create error, unable to create file IBM AIX RISC System/6000 Error: 13: Permission denied Failing sql is: CREATE TABLESPACE "TAB_ANC" DATAFILE '/appli2/oradata05/HISTO/HISTO_tab_anc_01.dbf' SIZE 1048576000,'/appli2/oradata05/HISTO/HISTO_tab_anc_02.dbf' SIZE 2146435072 LOGGING ONLINE PERMANENT BLOCKSIZE 8192 EXTENT MANAGEMENT LOCAL UNIFORM ORA-39083: Object type TABLESPACE failed to create with error: ORA-01119: error in creating database file '/appli2/oradata06/HISTO/HISTO_idx_anc_01.dbf' ORA-27040: file create error, unable to create file IBM AIX RISC System/6000 Error: 13: Permission denied Failing sql is: CREATE TABLESPACE "IDX_ANC" DATAFILE '/appli2/oradata06/HISTO/HISTO_idx_anc_01.dbf' SIZE 1048576000,'/appli2/oradata06/HISTO/HISTO_idx_anc_02.dbf' SIZE 2146435072 LOGGING ONLINE PERMANENT BLOCKSIZE 8192 EXTENT MANAGEMENT LOCAL UNIFORM
是否可以只導入目前文件系統結構中的數據?我看到了 remap 命令,但我從未使用過它,如果它是問題的答案,有人可以舉一個例子來使用它。
remap_tablespace:source_tablespace_1:user,source_tablespace_2:user
回复你的評論,
all
是content
keyword的預設值,所以你可以忽略這個。無論如何,我已經做了一些測試。我不知道您的舊數據庫是如何建構的,但是從您的問題中我注意到您只想導入兩個表空間(TAB_ANC,IDX_ANC)以及其中的所有對象/模式。如果你想這樣做,你可以執行這種導入:
impdp system/passwd@HISTO directory=MIG11G dumpfile=20131125_full_HISTO.expdp parfile=imp_histo.par
參數文件是這個:
include=schema:"in ('SCHEMA1', 'SCHEMA2', ... , 'SCHEMAn')" include=tablespace:"in ('TAB_ANC', 'IDX_ANC')" remap_datafile=/appli2/oradata05/HISTO/HISTO_tab_anc_01.dbf:/appli2/oracle/HISTO/oradata05/HISTO_tab_anc_01.dbf remap_datafile=/appli2/oradata06/HISTO/HISTO_idx_anc_01.dbf:/appli2/oracle/HISTO/oradata06/HISTO/HISTO_idx_anc_01.dbf
如您所見,您需要包含這些表空間中包含的所有模式(或者您也可以在新數據庫中從頭開始創建它們)。要驗證這些模式,您可以執行如下查詢:
SELECT username, default_tablespace FROM dba_users;
當您在具有不同文件命名約定的平台之間移動數據庫時,重新映射數據文件很有用。
我認為
remap_tablespace
當您已經(手動)在目標數據庫中創建了所有必需的表空間但名稱不同時,您可以使用。