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

Oracle 匯入匯出補充:三種方式選型、BLOB/CLOB 處理與表空間擴容錯誤排查

     編輯:Oracle 教學

Oracle 匯入匯出補充:三種方式選型、BLOB/CLOB 處理與表空間擴容錯誤排查

實務中資料遷移頻繁遇到大數據量、LOB 欄位、表空間不足等問題。本文補充三種匯入匯出工具選型指南與關鍵坑點解決方案。


三種匯入匯出方式對比

方式工具/指令適用場景優點缺點
1. 傳統 exp/impexp/imp (Client 端)全庫/Schema/表級遷移、大數據量、跨版本匯入功能完整、支援直接路徑、網路匯入 (NETWORK_LINK)11g+ 官方不再增強、需注意字元集一致性
2. Data Pump expdp/impdpexpdp/impdp (Server 端)**首選方案**:大數據量、並行、壓縮、加密、網路匯入、可重啟效能極佳 (並行)、功能最豐富、支援細粒度物件過濾需目錄物件 (DIRECTORY)、Server 端檔案系統存取
3. SQL*Plus / SQL DeveloperSET MARKUP CSV/HTML, INSERT 腳本, GUI 匯出單表/少量資料、臨時測試、跨異構資料庫無需額外工具、人工可控極慢、不支援 LOB、易編碼錯誤
4. PL/SQL Developer / ToadGUI 工具內建匯入匯出精靈開發者日常小量資料搬移視覺化、支援多種格式 (CSV/Excel/SQL)大數據量易 OOM、非自動化
選型原則:
• 遷移/備份/大數據 → **Data Pump (expdp/impdp)**
• 11g 前舊版本相容 → 傳統 exp/imp
• 幾百/千筆測試資料 → SQL Developer / PL/SQL Developer

關鍵坑點 1:BLOB/CLOB 欄位匯入匯出失效

工具LOB 支援解決方案
傳統 exp/imp✅ 支援直接使用
Data Pump expdp/impdp✅ 完整支援 (含 SecureFiles)直接使用
SQL*Plus / SQL Developer 匯出 INSERT❌ **不支援** (截斷/報錯)**不可用**
PL/SQL Developer 匯出 SQL❌ 多數版本不支援**不可用**

跨資料庫遷移含 LOB 表的正確姿勢:

  1. 源端建立 Database Link:CREATE DATABASE LINK dblink_tgt CONNECT TO user IDENTIFIED BY pwd USING 'tgt_tns';
  2. 目標端建表結構 (含 LOB 欄位)。
  3. 使用 CREATE TABLE ... AS SELECT 或 INSERT ... SELECT 透過 DB Link 直接搬移:
CREATE TABLE target_schema.lob_table AS
SELECT * FROM source_schema.lob_table@dblink_tgt;

-- 或分批次
INSERT /*+ APPEND */ INTO target_schema.lob_table
SELECT * FROM source_schema.lob_table@dblink_tgt;
COMMIT;

此法繞過檔案中轉,效能最佳且完整保留 LOB。


關鍵坑點 2:匯入報錯 ORA-01659 表空間無法擴展

ORA-01659: unable to allocate MINEXTENTS beyond 93 in tablespace USERS

原因:表空間已達最大尺寸限制 (32G/檔案,或自動擴展觸及 MAXSIZE),無法再分配Extent。

解決方案:為表空間新增資料檔 (Datafile) 並啟用自動擴展無上限:

ALTER TABLESPACE users
ADD DATAFILE '/u01/app/oracle/oradata/orcl/users02.dbf'
SIZE 500M
AUTOEXTEND ON NEXT 10M MAXSIZE UNLIMITED;
  • 若檔案系統空間不足,需先擴充磁碟/檔案系統。
  • 建議表空間建立時即規劃多檔案、啟用 AUTOEXTEND ON MAXSIZE UNLIMITED,並監控實際使用率設定告警 (如 80%)。
  • 大表建議使用 **Bigfile Tablespace** (單檔案最大 128TB) 簡化管理。

補充:Data Pump 常用進階參數

-- 並行度 (核心加速參數)
expdp system/pwd schemas=SCOTT directory=DP_DIR dumpfile=scott_%U.dmp parallel=4

-- 壓縮 (減少磁碟/網路 IO)
expdp ... compression=ALL  -- METADATA_ONLY / DATA_ONLY / ALL / NONE

-- 加密 (安全傳輸)
expdp ... encryption=ALL encryption_password=StrongPwd#123

-- 網路匯入 (無需中轉 dump 檔,直接源→目標)
impdp system/pwd@target_db schemas=SCOTT network_link=SRC_DB_LINK directory=DP_DIR

-- 重映射 (跨表空間/Schema/用戶遷移)
impdp ... remap_schema=SRC:TGT remap_tablespace=USERS:USERS_TGT
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved