跨 OS 平臺遷移 Oracle DB

pxbibm發表於2014-10-25
將現有 Oracle 資料庫(非二進位制可執行程式檔案/)從一個作業系統平臺移植到另一個作業系統平臺(例如從 Windows 到 Solaris)
這種需求會發生在 Oracle 版本升級過程中(Oracle 8i 一直到 Oracle 11G),或者在同一 Oracle 版本內(Oracle 10.2 到 Oracle 10.2)。
平臺遷移中不考慮作業系統內部的更改(例如將 Linux、Windows 或 Solaris 從 32 位到 64 位),這些更改會被當做正常升級/ wordsize 轉換來處理。
我們以下幾種解決方案

解決方案

我們沒有遷移實用程式(指令碼或 DBUA)來執行 Oracle Database 的跨平臺遷移。

更改平臺需要使用下列方法之一重新構建資料庫和(或)移動資料:

  1. 執行“export/import”操作,包括Datapump。所有版本都支援“export/import”操縱,但是對於Datapump,則需要 10.1.0.2 或更高版本。
  2. 10G 或更高版本可使用 Transportable Tablespaces。
  3. 10G 或更高版本可使用 RMAN Convert Database 功能。
  4. Streams 流複製。
  5. Create Table As Select (CTAS)
  6. Dataguard 基於異構平臺的物理主備庫。
  7. Oracle Golden Gate。

每個可用選項都會有其優勢和侷限,包括資料型別、所需時間和潛在成本。

可用選項的優劣將取決於源和目標作業系統及 Oracle 版本。

例如:

使用 Dataguard 基於異構平臺的物理主備庫時將存在平臺侷限

僅當源和目標都屬於相同 ENDIAN 格式時,RMAN Convert Database 才工作。

針對 Transportable Tablespaces 的 RMAN's convert 功能將從一種 ENDIAN 格式轉換為另一種格式。

這兩個命令是不相同的。


PLATFORM_NAME ENDIAN_FORMAT
Oracle Solaris on SPARC (32-bit & 64-bit) Big
AIX-Based Systems (64-bit) Big
HP-UX (64-bit) Big
HP-UX IA (64-bit) Big
IBM zSeries Based Linux Big
Apple Mac OS Big
IBM Power Based Linux Big
HP Tru64 UNIX Little
Linux IA (32-bit & 64-bit) Little
HP Open VMS Little
Microsoft Windows IA (32-bit & 64-bit) Little
Oracle Solaris on x86 & x86-64 Little
Linux 64-bit for AMD Little
Microsoft Windows 64-bit for AMD Little

下面是使用Transportable Tablespaces基本步驟:

  • 在新環境中建立一個“空”資料庫
  • 將所有資料表空間從源資料庫插入目標資料庫
  • SYSTEM+SYSAUX 表空間無法傳輸
  • 移動檢視、同義詞等所需的其他步驟
  • 可能升級很快
  • 複雜性可能成為約束
  • 自 Oracle Database 10g 開始支援跨平臺和跨 Endian 工作


下面是在升級中使用 Oracle Streams 的基本資訊:

  • 構建資料庫的副本並升級該資料庫
  • 將其與源資料庫同步
  • 最小停機時間:僅重新連線客戶端
  • 跨平臺工作
  • 自 Oracle 9iR2 開始支援跨版本
  • 對其進行設定所需的一些工作
  • 自源資料庫未被操作以來可能的回退
  • 可能的問題包括:
  1. 資料型別限制
  2. 效能

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12798004/viewspace-1309376/,如需轉載,請註明出處,否則將追究法律責任。

相關文章