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

Oracle IMP/EXP 導入導出命令詳解:權限授予、換 Schema、參數檔、自動化備份腳本

     編輯:Oracle 資料庫基礎

前置權限授予(導入全庫必備)

CONN system/manager
CREATE USER target_user IDENTIFIED BY password;
GRANT CREATE SESSION, CREATE TABLE, CREATE VIEW, CREATE PROCEDURE,
      CREATE SEQUENCE, CREATE TRIGGER, CREATE SYNONYM,
      UNLIMITED TABLESPACE,
      IMP_FULL_DATABASE, EXP_FULL_DATABASE TO target_user;
-- IMP_FULL_DATABASE/EXP_FULL_DATABASE 為執行全庫導入導出的關鍵角色

基本導入導出範例

全庫導出

exp system/manager@ORCL file=full_backup.dmp full=y log=full_exp.log

全庫導入

imp system/manager@ORCL file=full_backup.dmp full=y log=full_imp.log ignore=y

ignore=y:忽略物件已存在錯誤(如表已存在),繼續導入資料。

換 Schema 導入(TOUSER/FROMUSER)

建立參數檔 import.par:

FROMUSER=SOURCE_SCHEMA
TOUSER=TARGET_SCHEMA
ROWS=Y
INDEXES=Y
GRANTS=Y
CONSTRAINTS=Y
BUFFER=409600
FILE=/backup/source_20240101.dmp
LOG=/backup/imp_20240101.log

執行:imp parfile=import.par

適用場景:測試環境克隆、Schema 重命名、多租戶資料隔離。

進階技巧

  • 顯示進度:加 feedback=1000,每 1000 行顯示一個 .,避免游標閃爍無回饋。
  • 條件式導出:exp ... tables=table1 query="WHERE created_date > SYSDATE-30"(雙引號轉義視 OS 而定)。
  • 壓縮導出檔:管道導向 gzip:exp ... | gzip > backup.dmp.gz(Unix/Linux)。
  • Windows 排程自動備份:建立 backup.bat 含 exp ...,配合「工作排程器」每日執行。

常見錯誤與對策

錯誤代碼原因對策
IMP-00017物件已存在加 ignore=y 或先 DROP 物件
IMP-00058字符集不匹配檢查 NLS_LANG、目標庫字符集是否為源庫超集
EXP-00008ORACLE_SID 未設定設定 ORACLE_SID 或指定 @TNS_ALIAS
ORA-39002Data Pump 權限不足授予 DATAPUMP_EXP_FULL_DATABASE / DATAPUMP_IMP_FULL_DATABASE
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved