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

使用 Oracle SQL Developer 將 MySQL 資料庫遷移至 Oracle 完整指南

     編輯:Oracle 資料庫基礎

工具選型理由

Oracle SQL Developer 內建 Migration Workbench,免費、圖形化、支援 Microsoft Access、SQL Server、MySQL、Sybase、DB2、Informix 等異構資料庫遷移至 Oracle,適合中小型專案與異構遷移 PoC。

遷移前準備

  1. 下載安裝 Oracle SQL Developer(含 JDK 8+)。
  2. 下載 MySQL JDBC Driver (Connector/J),在 SQL Developer → Tools → Preferences → Database → Third Party JDBC Drivers 新增路徑。
  3. 確保網路互通:SQL Developer 執行機器可連線 MySQL (3306) 與 Oracle (1521)。
  4. 建立 Oracle 目標使用者與表空間,授予 RESOURCE、CREATE SESSION 等權限。

遷移嚮導步驟

  1. 選單 Tools → Migration → Migrate。
  2. Source Database:選 MySQL,填入連線資訊,測試連線。
  3. Target Database:選 Oracle,填入目標連線。
  4. Capture:擷取 MySQL 中繼資料(表、欄位、索引、FK、View、Trigger、Procedure)。
  5. Convert:自動轉換型別對應(如 VARCHAR → VARCHAR2、DATETIME → TIMESTAMP、AUTO_INCREMENT → SEQUENCE + TRIGGER),檢視轉換報告,手動修正不支援語法。
  6. Generate:產生 DDL 腳本(建表、索引、約束、序列、觸發器、PL/SQL 包)。
  7. Move Data:線上搬移資料(可選離線模式:產生 INSERT/CSV/Loader 控制檔)。

型別對應與常見轉換陷阱

MySQLOracle注意事項
VARCHAR(N)VARCHAR2(N CHAR)建議用 CHAR 語意避免多位元組截斷
TEXT / LONGTEXTCLOB大物件需啟用 LOB 存儲參數
DATETIME / TIMESTAMPTIMESTAMP(6)MySQL TIMESTAMP 有時區自動轉換,Oracle 需應用層處理
INT AUTO_INCREMENTNUMBER + SEQUENCE + BEFORE INSERT TRIGGER或 Oracle 12c+ 使用 IDENTITY COLUMN
ENUM / SETVARCHAR2 + CHECK CONSTRAINT手動加 CHECK 约束
ENGINE=InnoDB FKFK Constraint自動轉換,需確認啟用狀態

資料搬移效能優化

  • 啟用 Truncate before load 避免重複鍵衝突。
  • 大表勾選 Parallel、調大 Fetch Size (如 5000)、Commit Size (如 10000)。
  • 離線模式:產生 SQL*Loader 控制檔 + CSV,再用 sqlldr 並行直載,效能最佳。

驗收檢查清單

  1. 表數量、欄位數、索引數、FK 數量對帳。
  2. 核心表行數 SELECT COUNT(*) 比對(允許極小誤差)。
  3. 抽樣比對關鍵業務欄位資料內容。
  4. 存儲程序/函數/觸發器編譯狀態 ALL_OBJECTS WHERE STATUS='VALID'。
  5. 應用端連線測試、功能回歸、效能基準比對。

官方資源

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