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

Oracle Data Guard 物理備庫使用可傳輸表空間遷移資料操作指南

     編輯:Oracle 資料庫相關知識

Oracle 可傳輸表空間(Transportable Tablespaces, TTS)技術可將一組表空間在資料庫間高效移動。在 Data Guard 物理備庫架構下,需協調主備兩端檔案複製與元資料匯入。本文整理官方標準流程。

一、適用場景

  • 跨平台/跨版本遷移部分資料(子集)。
  • 大量資料載入,效能優於邏輯備份(expdp/impdp)。
  • 主備庫儲存路徑可能不同,需配合 DB_FILE_NAME_CONVERT。

二、標準操作流程

步驟 1:主庫產生可傳輸表空間集

  1. 將目標表空間設為 READ ONLY。
  2. 使用 Data Pump (expdp) 匯出中繼資料(結構定義),產生 .dmp 檔案。
  3. 複製表空間對應的資料檔(.dbf)至暫存區。

步驟 2:傳輸檔案至主庫與備庫

目標端操作關鍵要求
主庫複製資料檔 + 匯出檔(.dmp)至目標目錄路徑可自訂
備庫複製資料檔至 DB_FILE_NAME_CONVERT 指定的目錄若未設定該參數,後續需手動 ALTER DATABASE RENAME FILE

重要:備庫 STANDBY_FILE_MANAGEMENT 必須設為 AUTO,以便後續 Redo 自動建立檔案關聯。

步驟 3:主庫匯入表空間(Plug In)

impdp directory=tts_dir dumpfile=tts_exp.dmp
   transport_datafiles='/path/to/datafile1.dbf','/path/to/datafile2.dbf'
   tablespace_list=tbs_1,tbs_2

匯入過程會產生 Redo,透過 Data Guard 傳輸並套用至備庫,完成備庫端表空間掛載。

三、關鍵參數對照

參數角色建議值/說明
DB_FILE_NAME_CONVERT備庫主庫路徑 → 備庫路徑映射,如 ('/u01/oradata/','/u02/oradata/')
STANDBY_FILE_MANAGEMENT備庫AUTO(自動建立/刪除資料檔)
TABLESPACE 狀態主庫匯出前 READ ONLY,匯入後 READ WRITE

四、注意事項與限制

  1. 表空間必須自包含(EXEC DBMS_TTS.TRANSPORT_SET_CHECK 驗證)。
  2. 不可包含 SYSTEM、SYSAUX、UNDO、TEMP 等系統表空間。
  3. 跨平台需相容字元集與 Endian 格式,或使用 RMAN CONVERT 轉換。
  4. 備庫若為 Active Data Guard (開啟唯讀),匯入產生的 Redo 會即時套用,無額外延遲。

五、參考資源

  • Oracle Database Administrator's Guide - Transportable Tablespaces 章節
  • MOS Doc ID 1456243.1:Data Guard 環境下 TTS 最佳實務
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved