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

Oracle 遷移實戰:EXPDP/IMPDP 數據泵導出導入全流程與權限遷移腳本

     編輯:Oracle 教學

Oracle 數據泵 EXPDP/IMPDP 遷移實戰:從導出到導入的標準化流程

傳統 EXP/IMP 效率低、功能弱,數據泵 (Data Pump) 成為主流。本文記錄某項目從 EXP 失敗轉用 EXPDP 的完整過程:Directory 創建、導出、目標端表空間/用戶/權限重建、導入,附完整權限授予腳本。

一、源端導出操作

-- 1. 創建 Directory 對象
CREATE DIRECTORY oracleDB AS 'D:\OracleDB';
-- 2. 授權
GRANT READ, WRITE ON DIRECTORY oracleDB TO radpcs;
-- 3. 執行導出 (全庫模式)
expdp radpcs/ictradpcs@radpcs \
  DIRECTORY=oracleDB \
  DUMPFILE=20150226.dmp \
  LOGFILE=20150226.log \
  FULL=Y

二、目標端準備:表空間、用戶、權限

-- 以 SYSDBA 登錄
CONN / AS SYSDBA

-- 創建表空間 (務必與源端名稱、數量一致)
CREATE TABLESPACE RADPCS_DATA
  DATAFILE 'D:\OracleDB\radpcs_DATA.DBF' SIZE 200M REUSE AUTOEXTEND ON NEXT 10M MAXSIZE 16383M
  EXTENT MANAGEMENT LOCAL UNIFORM SIZE 1024K;

CREATE TABLESPACE RADPCS_INDX
  DATAFILE 'D:\OracleDB\radpcs_INDX.DBF' SIZE 200M REUSE AUTOEXTEND ON NEXT 10M MAXSIZE 16383M
  EXTENT MANAGEMENT LOCAL UNIFORM SIZE 1024K;

-- 創建用戶
CREATE USER radpcs IDENTIFIED BY ictradpcs
  DEFAULT TABLESPACE radpcs_data
  QUOTA UNLIMITED ON radpcs_data
  QUOTA UNLIMITED ON radpcs_indx;

-- 權限授予腳本 (核心系統權限+角色)
GRANT CONNECT, RESOURCE, DBA TO radpcs;
GRANT CREATE ANY TABLE, CREATE PROCEDURE, CREATE SESSION,
      DEBUG CONNECT SESSION, SELECT ANY TABLE, UNLIMITED TABLESPACE TO radpcs;
-- 完整 100+ 行權限腳本見原文,建議保存為 radpcs_grants.sql 版本控制

三、目標端導入操作

-- 1. 同步創建 Directory 並授權
CREATE DIRECTORY oracleDB AS 'D:\OracleDB';
GRANT READ, WRITE ON DIRECTORY oracleDB TO radpcs;

-- 2. 執行導入
impdp radpcs/ictradpcs@radpcs \
  DIRECTORY=oracleDB \
  DUMPFILE=20150226.dmp \
  LOGFILE=20150226_imp.log

四、EXP/IMP vs EXPDP/IMPDP 核心差異

維度EXP/IMPEXPDP/IMPDP
運行位置客戶端進程服務端進程 (需 Directory 對象)
性能單線程,慢支援 PARALLEL 並行,快 5-10 倍
功能基礎導出入並行、過濾、轉換、壓縮、加密、網絡模式、可插拔表空間
版本支援所有版本10g+,不支援 9i 及以下

五、遷移檢查清單

  • 源目標版本相容性:COMPATIBLE 參數、字符集一致;
  • 表空間名稱、大小、自動擴展策略完全對齊;
  • 用戶默認/臨時表空間、Quota 正確;
  • 導入日誌檢查 ORA-39083、ORA-31684 等錯誤並逐一解決;
  • 導入後統計信息收集:EXEC DBMS_STATS.GATHER_SCHEMA_STATS('RADPCS');。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved