Data Pump 匯出/匯入檔案(.dmp、.log)永遠產生在資料庫伺服器端的目錄物件路徑,而非客戶端電腦。 遠端操作僅觸發伺服器端作業,完成後需至伺服器取檔或透過其他方式傳輸。
DATAPUMP_EXP_FULL_DATABASE / DATAPUMP_IMP_FULL_DATABASE 或 DBA 權限DATA_PUMP_DIR 指向 $ORACLE_HOME/rdbms/log 或自訂路徑使用待備份的結構擁有者登入 PL/SQL,執行:
declare
h1 number;
l1 varchar2(20);
begin
h1 := dbms_datapump.open(
operation => 'EXPORT',
job_mode => 'SCHEMA',
job_name => 'JOB_EXP1',
version => 'COMPATIBLE'
);
dbms_datapump.set_parallel(handle => h1, degree => 1);
dbms_datapump.add_file(handle => h1, filename => 'EXPDAT.LOG', directory => 'DATA_PUMP_DIR', filetype => 3); -- log
dbms_datapump.set_parameter(handle => h1, name => 'KEEP_MASTER', value => 0);
dbms_datapump.metadata_filter(handle => h1, name => 'SCHEMA_EXPR', value => 'IN(''CHY'')'); -- 結構名大寫
dbms_datapump.add_file(handle => h1, filename => 'CHYDB.DMP', directory => 'DATA_PUMP_DIR', filetype => 1); -- dump
dbms_datapump.set_parameter(handle => h1, name => 'INCLUDE_METADATA', value => 1);
dbms_datapump.set_parameter(handle => h1, name => 'DATA_ACCESS_METHOD', value => 'AUTOMATIC');
dbms_datapump.set_parameter(handle => h1, name => 'ESTIMATE', value => 'BLOCKS');
dbms_datapump.start_job(handle => h1, skip_current => 0, abort_step => 0);
dbms_datapump.wait_for_job(handle => h1, job_state => l1);
dbms_datapump.detach(handle => h1);
end;
/
SCHEMA_EXPR:IN('CHY') 中的 CHY 為結構名稱,必須大寫filename => 'CHYDB.DMP':匯出檔名,大寫select directory_path from dba_directories where directory_name = 'DATA_PUMP_DIR';
登入伺服器將 .dmp、.log 複製至本地或備份儲存。
.dmp 檔放入目標伺服器的 DATA_PUMP_DIR 路徑SA),指定預設表空間 USERS、暫存表空間 TEMPDBA 角色與所有系統權限declare
h1 number;
l1 varchar2(20);
begin
h1 := dbms_datapump.open(
operation => 'IMPORT',
job_mode => 'SCHEMA',
job_name => 'JOB_IMP1',
version => 'COMPATIBLE'
);
dbms_datapump.set_parallel(handle => h1, degree => 1);
dbms_datapump.add_file(handle => h1, filename => 'IMPORT.LOG', directory => 'DATA_PUMP_DIR', filetype => 3);
dbms_datapump.set_parameter(handle => h1, name => 'KEEP_MASTER', value => 0);
dbms_datapump.add_file(handle => h1, filename => 'CHYDB.DMP', directory => 'DATA_PUMP_DIR', filetype => 1);
dbms_datapump.metadata_filter(handle => h1, name => 'SCHEMA_EXPR', value => 'IN(''CHY'')');
dbms_datapump.set_parameter(handle => h1, name => 'INCLUDE_METADATA', value => 1);
dbms_datapump.set_parameter(handle => h1, name => 'DATA_ACCESS_METHOD', value => 'AUTOMATIC');
dbms_datapump.set_parameter(handle => h1, name => 'SKIP_UNUSABLE_INDEXES', value => 0);
-- 重新對應結構與表空間
dbms_datapump.metadata_remap(handle => h1, name => 'REMAP_SCHEMA', old_value => 'CHY', value => 'SA');
dbms_datapump.metadata_remap(handle => h1, name => 'REMAP_TABLESPACE', old_value => 'USERS', value => 'USERS');
dbms_datapump.metadata_transform(handle => h1, name => 'OID', value => 0);
dbms_datapump.start_job(handle => h1, skip_current => 0, abort_step => 0);
dbms_datapump.wait_for_job(handle => h1, job_state => l1);
dbms_datapump.detach(handle => h1);
end;
/
| 參數 | 來源值 | 目標值 | 說明 |
|---|---|---|---|
| REMAP_SCHEMA | CHY | SA | 來源結構→目標結構 |
| REMAP_TABLESPACE | USERS | USERS | 來源表空間→目標表空間 |