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

Oracle EXP/IMP 權限配置與表空間建立標準化範本

     編輯:Oracle 資料庫基礎

資料導出導入 (EXP/IMP) 前的權限配置與表空間準備是成功遷移的前提。本文提供最小權限授予範本、表空間建立標準語句 (含自動擴展)、TNS 連線描述範例,並說明 FULL=Y、IGNORE=Y、TABLES= 等關鍵參數的實務用法。

導出導入基本語法


-- 導出 (EXP)
exp wjcx/wjcx@orcl file=wjcx.dmp

-- 導入 (IMP) - 完整導入
imp wjcx/wjcx@orcl file=wjcx.dmp full=y ignore=y

-- 導入 - 單表導入
imp wjcx/wjcx@orcl file=wjcx.dmp tables=emp

參數說明:

  • full=y:導入所有使用者 (需 SYSDBA 權限)。
  • ignore=y:表已存在時忽略建立錯誤,繼續導入資料 (不會覆蓋結構)。
  • tables=:指定導入表清單,支援萬用字元 tables=emp,dept%。

最小權限授予範本 (目標使用者)


-- 基本連線權限
GRANT CONNECT TO wjcx;

-- 開發/測試環境常用組合 (含建表、序列、程序、觸發器...)
GRANT CONNECT, RESOURCE, DBA TO wjcx;  -- 注意:DBA 權限極高,生產環境禁用

生產環境建議精細授權:


GRANT CREATE SESSION TO wjcx;
GRANT CREATE TABLE, CREATE VIEW, CREATE SEQUENCE, CREATE PROCEDURE,
      CREATE TRIGGER, CREATE TYPE, CREATE SYNONYM TO wjcx;
GRANT UNLIMITED TABLESPACE TO wjcx;  -- 或指定 QUOTA ON tablespace

表空間建立標準語句 (含自動擴展)


CREATE TABLESPACE wjcx
  LOGGING
  DATAFILE 'F:\Oracle\oradata\orcl\wjcx01.dbf'
  SIZE 32M
  AUTOEXTEND ON
  NEXT 32M
  MAXSIZE 2048M
  EXTENT MANAGEMENT LOCAL;

關鍵參數解析:

參數建議值說明
SIZE32M~100M初始大小,避免頻繁擴展
AUTOEXTEND ONON自動擴展,防止 ORA-01653
NEXT32M~100M每次擴展增量
MAXSIZE2G~UNLIMITED上限,防止佔滿磁碟
EXTENT MANAGEMENT LOCALLOCAL本地管理,效能優於字典管理
SEGMENT SPACE MANAGEMENT AUTOAUTO (11g+)自動段空間管理 (ASSM),減少碎片

TNS 連線描述標準範本 (tnsnames.ora)


ORCL =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.3)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = orcl)
    )
  )

Easy Connect 替代 (無需 tnsnames.ora):


exp wjcx/wjcx@192.168.0.3:1521/orcl file=wjcx.dmp
imp wjcx/wjcx@192.168.0.3:1521/orcl file=wjcx.dmp full=y ignore=y

實務檢查清單

  1. 來源/目標資料庫版本相容 (EXP 版本 ≤ 目標 DB 版本)。
  2. 字元集相容 (來源 ⊆ 目標),否則需 NLS_LANG 設定或字元集轉換。
  3. 目標表空間已建立、使用者已建立、配額已授予。
  4. 導出前檢查物件狀態:SELECT object_name, status FROM user_objects WHERE status != 'VALID';
  5. 導入後驗證:行數、約束、索引、觸發器、存儲過程編譯狀態。
  6. 大量資料建議改用 Data Pump (EXPDP/IMPDP) 並行導入。

常見錯誤代碼速查

代碼訊息對策
EXP-00008ORA-00942: table or view does not exist導出使用者無權限查詢該物件,授予 SELECT 或以擁有者導出
IMP-00015Object already exists加 ignore=y 或先 DROP 目標物件
IMP-00017Tablespace 'XXX' does not exist預先建立表空間或使用 Data Pump remap_tablespace
IMP-00058ORA-02304: invalid object identifier物件名含特殊字元,使用雙引號或重命名

標準化權限與表空間範本,能將遷移失敗率降至最低。記住:權限最小化、表空間預建、參數顯式化 是鐵律。

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