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

使用 PL/SQL Developer 將遠端 Oracle 資料庫遷移至本地端完整教學

     編輯:Oracle 資料庫基礎

開發測試常需將生產/測試環境的 Schema 匯入本地資料庫。本文詳述使用 PL/SQL Developer 內建 **Export User Objects** 與 **Export/Import Tables** 功能,實現結構與資料的完整離線遷移,適合中小型 Schema (建議 < 50GB)。

前置條件

  • 本地已安裝 Oracle Client / 資料庫,並建立同名使用者 (含預設/暫存表空間、QUOTA、CONNECT/RESOURCE 角色)。
  • PL/SQL Developer 可連線遠端與本地兩個連線定義。
  • 磁碟空間足夠存放匯出檔 (.sql 結構腳本 + .pde 資料檔)。

步驟 1:匯出遠端使用者物件結構 (DDL)

  1. 以目標 Schema 使用者登入遠端連線。
  2. 選單 **Tools → Export User Objects...**
  3. 設定如下:
    Export User Objects 設定視窗
    • User:確認為當前登入使用者。
    • 勾選 **Include Owner** (產生 CREATE TABLE owner.tbl 含 Schema 前綴)。
    • 勾選 **Grants**、**Synonyms**、**Triggers**、**Indexes**、**Constraints**、**Storage Clauses**。
    • Output file:指定輸出 .sql 檔案路徑 (如 D:\migration\schema_struct.sql)。
  4. 按 **Export** 執行,產出完整 DDL 腳本。

步驟 2:匯出資料 (Table Data)

  1. 同一遠端連線下,選單 **Tools → Export Tables...**
  2. 設定如下:
    Export Tables 設定視窗
    • 選中目標資料表 (或全選)。
    • 關鍵:**取消勾選** 所有選項 (Include SQL, Include Owner 等),僅匯出純資料。
    • Output file:指定 .pde 檔案 (如 D:\migration\table_data.pde),副檔名會自動補齊。
  3. 按 **Export** 執行,產出專屬二進位資料檔 (效能優於 INSERT SQL)。

步驟 3:建立本地目標使用者與權限

-- 以 SYS/SYSTEM 登入本地資料庫
CREATE USER target_user IDENTIFIED BY "LocalPass#2024"
  DEFAULT TABLESPACE users
  TEMPORARY TABLESPACE temp
  QUOTA UNLIMITED ON users;

GRANT CONNECT, RESOURCE TO target_user;
-- 若需建立 View/Procedure 等,另行授予 CREATE VIEW, CREATE PROCEDURE 等

重要:使用者名 **必須與遠端 Schema 同名**,因步驟 1 匯出 DDL 含 OWNER 前綴。

步驟 4:匯入結構至本地

  1. 以新建本地使用者 (target_user) 登入 PL/SQL Developer (連線本地 SID)。
  2. 選單 **File → Open → Command File**,選取步驟 1 產出的 schema_struct.sql。
  3. 按 **F8** (或工具列執行鈕) 執行整個腳本。
  4. 查看 **Log** 面板,確認無嚴重錯誤 (忽略「物件已存在」類警告)。

步驟 5:匯入資料至本地

  1. 同一本地連線下,選單 **Tools → Import Tables...**
  2. 設定如下:
    Import Tables 設定視窗
    • Input file:選取步驟 2 產出的 table_data.pde。
    • 按 **Import** 執行。
  3. 完成後查詢核心資料表筆數驗證一致性。

進階技巧與避坑指南

場景問題解決方案
大表 (>10GB) 匯入極慢PDE 逐列處理、索引維護開銷大匯入前 DISABLE 索引/約束,匯入後 REBUILD;或改用 Data Pump (expdp/impdp) 平行匯入
CLOB/BLOB 欄位資料遺失PDE 格式版本相容性升級 PL/SQL Developer 至最新版;或改用 expdp CONTENT=DATA_ONLY
遠端/本地字元集不同 (AL32UTF8 vs ZHS16GBK)中文亂碼設定 NLS_LANG 環境變數一致;匯出前確認字元集轉換正確
序列值不同步Export User Objects 不含序列當前值手工 SELECT last_number FROM user_sequences 記錄,遷移後 ALTER SEQUENCE ... RESTART
密碼驗證函數/Profile 遺失未匯出 Profile/Password Verify Function手工重建 Profile 並指派

大型遷移替代方案

  • Data Pump (expdp/impdp):平行度、壓縮、網路模式 (NETWORK_LINK),TB 級首選。
  • RMAN Duplicate / Active Duplicate:整個資料庫級克隆,含密碼檔、參數檔、控制檔。
  • GoldenGate / XStream:異構、即時同步、雙向複寫。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved