首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

Oracle Exp/Imp 跨平台遷移實戰:含 Advanced Replication 環境驗證

     編輯:Oracle 資料庫相關知識

專案背景

產品系統跨平台遷移,資料量中等、停機窗口充裕。關鍵挑戰:來源庫已部署 Advanced Replication(高級複製),需驗證 EXP/IMP 遷移後複製環境是否自動生效。

測試架構

  • RAC1.US.ORACLE.COM:主站點(Master Site)
  • TESTMV.US.ORACLE.COM:物化視圖站點(Materialized View Site)
  • TESTMV:目標導入站點(新環境物化視圖站點)

註:RAC1 單實例,非真正 RAC,僅 SID 命名殘留。

核心原則:全庫級導出導入

Advanced Replication 物件(複製群組、物化視圖日誌、內部觸發器、工作隊列等)分佈於 SYS、SYSTEM 及應用 Schema,**僅 FULL=Y 完整導出才能完整保留複製拓撲**。Schema/Table 級導出會導致複製環境殘缺失效。

測試步驟記錄

  1. 建立測試用戶 YANGTK、表 T(PK)、T1(FK 關聯 T)、索引。
  2. 在主站點建立複製群組,將 T、T1 加入並產生物化視圖日誌。
  3. 在物化視圖站點建立物化視圖(快速刷新)。
  4. 驗證雙向複製正常(主站點 DML → 物化視圖站點刷新同步)。
  5. FULL EXP 主站點與物化視圖站點。
  6. FULL IMP 至目標 TESTMV 站點(含 SYS/SYSTEM 物件)。
  7. 驗證目標站點複製群組狀態(DBA_REPGROUP)、物化視圖刷新作業(DBA_REFRESH、DBA_JOBS)是否自動生效。
  8. 執行 DML 測試:主站點插入 → 目標站點刷新 → 數據一致性比對。

關鍵驗證點

物件類型驗證 SQL預期結果
複製群組SELECT gname, status FROM dba_repgroup;STATUS = 'NORMAL'
物化視圖日誌SELECT log_table FROM dba_mview_logs;日誌表存在、有記錄
刷新作業SELECT job, what, interval, broken FROM dba_jobs WHERE what LIKE '%refresh%';JOBS 存在、BROKEN='N'
物化視圖SELECT mview_name, refresh_mode, last_refresh_date FROM dba_mviews;模式正確、最近刷新時間更新

常見坑點與對策

  • GLOBAL_NAMES=TRUE 導致導入後 DB Link 名稱不匹配 → 導入後手工重建 DB Link 或暫時設定 GLOBAL_NAMES=FALSE。
  • 複製管理員帳號/密碼 不同環境不一致 → 導入後同步 DBA_REPCAT_ADMIN 權限與密碼。
  • Job Queue 進程 目標庫未啟動(JOB_QUEUE_PROCESSES=0)→ 導入後設定參數並重啟實例。
  • 時區/字元集 不一致導致時間戳/中文亂碼 → 遷移前統一字元集(建議 AL32UTF8)與時區。

結論

EXP/IMP 全庫模式 可完整遷移 Advanced Replication 環境,關鍵在於:FULL=Y、目標庫參數對齊、導入後驗證複製群組與刷新作業狀態。大型生產環境建議搭配 RMAN 復制資料庫(含控制檔、SPFILE)以縮短停機時間。

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