首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> Oracle 資料庫 >> Oracle 教學

Oracle 資料庫導入導出操作速查:命令列與 PL/SQL Developer 雙模式

     編輯:Oracle 教學

Oracle 資料庫導入導出操作速查:命令列與 PL/SQL Developer 雙模式

本文整理 Oracle 資料遷移最常用的兩種方式:命令列 適合自動化腳本、無介面伺服器;PL/SQL Developer 圖形介面適合開發人員手工操作。兩者底層均呼叫 Data Pump (expdp/impdp) 或傳統 exp/imp。

一、命令列模式

1.1 導出

# Data Pump 導出(推薦,10g+)
expdp system/manager@ORCL \
  DIRECTORY=dpump_dir \
  DUMPFILE=full_%U.dmp \
  LOGFILE=exp_full.log \
  FULL=Y \
  PARALLEL=4 \
  COMPRESSION=ALL

# 傳統 exp(舊版本相容)
exp system/manager@ORCL file=/backup/full.dmp full=y log=/backup/exp.log

1.2 導入

# Data Pump 導入
impdp system/manager@ORCL \
  DIRECTORY=dpump_dir \
  DUMPFILE=full_%U.dmp \
  LOGFILE=imp_full.log \
  FULL=Y \
  TABLE_EXISTS_ACTION=REPLACE \
  REMAP_SCHEMA=old_user:new_user

# 傳統 imp
imp system/manager@ORCL file=/backup/full.dmp ignore=y log=/backup/imp.log

二、PL/SQL Developer 圖形介面模式

  1. 連線目標資料庫(需 DBA 或具備 DATAPUMP_EXP_FULL_DATABASE 角色)。
  2. 選單 Tools → Export Tables (傳統) 或 Tools → Data Pump Export (推薦)。
  3. 彈出視窗配置:
    • Mode:Full / Schema / Table / Tablespace
    • Directory:選擇預建的 Directory Object (如 DPUMP_DIR)
    • Dump File:輸入檔名,支援 %U 自動分卷
    • Log File:日誌檔名
    • Parallel:平行度 (Data Pump 專屬)
    • Compression:METADATA_ONLY / ALL / NONE
    • Filter:勾選 Schema/Table 名稱、WHERE 條件
  4. 點擊 Start 執行,下方日誌即時顯示進度。
  5. 導入對應選單 Tools → Data Pump Import,關鍵選項:
    • Table Exists Action:SKIP / APPEND / TRUNCATE / REPLACE
    • Remap Schema:from_user:to_user
    • Remap Tablespace:old_ts:new_ts
    • Transform:SEGMENT_ATTRIBUTES:N 移除存儲屬性

三、前置準備(兩種模式通用)

-- 建立 Directory Object(伺服器端路徑)
CREATE OR REPLACE DIRECTORY dpump_dir AS '/u01/app/oracle/admin/ORCL/dpdump';
GRANT READ, WRITE ON DIRECTORY dpump_dir TO system;

-- 確認目錄存在且 oracle 使用者可讀寫
! ls -ld /u01/app/oracle/admin/ORCL/dpdump

四、常用參數對照表

功能expdp/impdp 參數PL/SQL Developer 選項
完整庫FULL=YMode: Full
指定 SchemaSCHEMAS=scott,hrMode: Schema + 勾選用戶
指定表TABLES=emp,deptMode: Table + 勾選表
WHERE 過濾QUERY=emp:"WHERE deptno=10"Filter → Where Clause
平行度PARALLEL=4Parallel 欄位
壓縮COMPRESSION=ALLCompression: ALL
Schema 重映射REMAP_SCHEMA=A:BRemap Schema 欄位
表空間重映射REMAP_TABLESPACE=OLD:NEWRemap Tablespace 欄位
表存在動作TABLE_EXISTS_ACTION=REPLACETable Exists Action: REPLACE

五、驗證與事後檢查

  • 查看日誌檔:tail -f exp_full.log 或 PL/SQL Developer 日誌頁籤。
  • 導入後核對物件數:SELECT owner, object_type, COUNT(*) FROM dba_objects WHERE owner IN ('SCOTT','HR') GROUP BY owner, object_type;
  • 抽樣比對筆數:SELECT COUNT(*) FROM scott.emp;
  • 檢查無效物件:SELECT * FROM dba_objects WHERE status='INVALID';

總結

命令列適合 CI/CD 腳本、定時備份、大型遷移;PL/SQL Developer 適合 臨時導出、開發測試、視覺化配置。核心前置條件一致:Directory Object 權限、足夠磁碟空間、字元集一致、版本相容。建議團隊統一規範導出命名慣例(如 schema_YYYYMMDD_%U.dmp)並納入備份保留策略。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved