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

利用 Oracle EXP/IMP 工具實現含高級複製環境的跨平台資料遷移

     編輯:Oracle 資料庫基礎

遷移背景與挑戰

專案需將部署了 Advanced Replication(高級複製)環境的資料庫跨平台遷移。資料量不大、停機窗口充裕,但複製環境包含主站點與物化視圖站點,遷移後必須確保複製機制仍正常運作。本文以「物化視圖站點遷移」為例,記錄完整測試流程。

測試環境架構

  • 主站點:RAC1.US.ORACLE.COM(單實例,非 RAC)
  • 源物化視圖站點:TESTMV.US.ORACLE.COM
  • 目標物化視圖站點:TESTMV(全新環境,用於導入測試)

註:資料庫名稱 RAC1 為歷史殘留,實際為單實例環境。

關鍵決策:必須採用全庫級導出/導入

Advanced Replication 的系統物件(內部表、觸發器、作業、封裝等)分散於 SYS、SYSTEM、REPADMIN 等多個 Schema。若採用 Schema 級或 Table 級導出,極大機率遺漏複製相關的系統物件,導致目標端複製環境損壞。因此 強制採用 FULL=Y 全庫模式。

測試資料準備步驟

-- 在主站點 RAC1 建立測試用戶與表
CONN SYSTEM/TEST@RAC1
CREATE USER YANGTK IDENTIFIED BY YANGTK DEFAULT TABLESPACE NDMAIN;
GRANT CONNECT, RESOURCE TO YANGTK;

CONN YANGTK/YANGTK@RAC1
CREATE TABLE T (ID NUMBER, NAME VARCHAR2(30));

後續將在主站點建立複製群組、部署物化視圖日誌與物化視圖,再於物化視圖站點執行導出,於目標端導入,驗證複製連結是否自動恢復。

遷移操作要點

  1. 導出端:exp userid=system/manager full=y file=mv_site.dmp log=mv_exp.log
  2. 導入端:預先建立同名表空間、同名用戶(含權限),再執行 imp userid=system/manager full=y file=mv_site.dmp log=mv_imp.log ignore=y
  3. 導入後驗證:檢查 DBA_REPGROUP、DBA_REPSITES、DBA_MVIEW_LOGS、DBA_MVIEWS 等視圖,確認複製群組狀態為 NORMAL,物化視圖可正常刷新。

常見坑點提醒

  • 字符集不一致導致導入報錯(參考 NLS_LANG 設定)
  • 目標端缺少源端的表空間路徑,需提前建立或使用 REMAP_TABLESPACE(Data Pump 才支援,傳統 IMP 需手動建表空間)
  • 複製管理用戶(如 REPADMIN)密碼需一致,否則導入後複製作業無法啟動
  • 導入後需重新產生物化視圖日誌的觸發器(通常隨表導入自動建立)
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved