天天看點

Oracle 跨作業系統 遷移 說明

關于跨OS 的DB 遷移,MOS 上有相關的文章說明:[ID733205.1]。

To migrate anexisting Oracle database (NOT BINARIES)  from one Operating Systemplatform to another (i.e. Windows to Solaris) ,This can occur as part ofan Oracle version upgrade (Oracle 8i .. Oracle 11G) or within the sameOracle version: (Oracle 10.2 to Oracle 10.2). 

--可以将Oracle DB 從一個作業系統遷移到另一個作業系統,比如從windows到Solaris,注意這裡的遷移僅僅是資料的遷移,不包含DB 的安裝媒體。這個遷移可以是不同DB版本的遷移,比如從8i 到11g,也可以是相同版本的遷移,比如從10.2 到10.2.

Changes withinan Operating System (ie: Linux,Windows or Solaris from 32 bit to 64 bit) arenot considered cross platform migrations and are performed as normal versionupgrades/wordsize conversions. 

--改變作業系統不用考慮系統的平台,可以按照正常的db version upgrades 和 wordsize 的改變來操作。

一. 解決方法

There is no migrationutility (Script or DBUA) to perform a cross platform migration of an OracleDatabase.

--沒有遷移工具如腳本或者DBUA來執行跨OS的資料遷移。

Changingplatforms requires the database be re-built and / or the data moved using oneof the following methods:

--跨平台的遷移需要重建資料庫,然後使用如下的一種方法來完成資料的遷移工作。

(1)    Export / Import to include theuse of Datapump facilities. All versions support Export/Import but for Datapump10.1.0.2 or higher is required

(2)    Transportable Tablespaces 10Gor Later

(3)    RMAN Convert Databasefunctions. 10G or Later

(4)    Streams Replication

(5)    Create Table As Select (CTAS)

(6)    Dataguard Heterogeneous Primaryand Physical Standbys

(7)    Oracle Golden Gate

Each availablechoice will have strengths and limitations to include data types, time requiredand potential costs.

       --每一個可選的方法都有它的優勢和限制,如資料類型,需要的時間和一些潛在的消耗。

The choicesavailable will depend on BOTH the Operating System and Oracle versions on boththe source and destination. 

--方法是否可用也取決與Source 和 Destination 兩端的作業系統和Oracle版本。

二. 示例

There areplatform limitations when using Dataguard Heterogeneous Primary and PhysicalStandbys。

--比如使用DG的異構平台來遷移時,就會有作業系統的限制。 關于這塊内容,之前有詳細的Blog:

Oracle DataGuard 支援的異構平台 說明

RMAN ConvertDatabase only works if both source and destination belong to the same ENDIANformat. 

--RMAN Convert DB 僅在source 和destination 的ENDIAN 格式相同的情況下才可以使用。

RMAN's convertfunction for Transportable Tablespaces will convert from one ENDIAN format toanother. 

在ENDIAN 格式不同的情況下,可以使用RMAN convert function 來轉換ENDIAN 從一種格式到另一種格式。如:

 RMAN> convert tablespace TBS1 to platform="Linux IA(32-bit)" FORMAT '/tmp/%U';

兩端相同之後,就可以進行Transportabletablespace 的操作。

可以通過v$transportable_platform視圖檢視系統的ENDIAN 格式:

SQL> columnplatform_name format a35

SQL> select *from v$transportable_platform order by 1;

PLATFORM_IDPLATFORM_NAME                      ENDIAN_FORMAT

---------------------------------------------- --------------

          1 Solaris[tm] OE (32-bit)             Big

          2 Solaris[tm] OE (64-bit)             Big

          3 HP-UX (64-bit)                      Big

          4 HP-UX IA (64-bit)                   Big

          5 HP Tru64 UNIX                       Little

          6 AIX-Based Systems (64-bit)          Big

          7 Microsoft Windows IA (32-bit)       Little

          8 Microsoft Windows IA (64-bit)       Little

          9 IBM zSeries Based Linux             Big

         10 Linux IA (32-bit)                   Little

         11 Linux IA (64-bit)                   Little

         12 Microsoft Windows x86 64-bit        Little

         13 Linux x86 64-bit                    Little

         15 HP Open VMS                         Little

         16 Apple Mac OS                        Big

         17 Solaris Operating System (x86)      Little

         18 IBM Power Based Linux               Big

         19 HP IA Open VMS                      Little

         20 Solaris Operating System(x86-64)   Little

         21 Apple Mac OS (x86-64)               Little

20 rowsselected.

1.2.1 The following isthe basic information for using Transportable Tablespaces:

--使用Transport Tablespace 的步驟:

(1)    Create an "empty"database in the new environment

(2)    Plug in all data tablespacesfrom source to target database

(3)    SYSTEM+SYSAUX tablespaces can'tbe transported

(4)    Additional steps necessary tomove views, synonyms etc.

(5)    Possibly very fast upgrade

(6)    Complexity could beconstraining

(7)    Works cross-platform andcross-Endianness since Oracle Database 10g

1.2.2 The following isthe basic information for using Oracle Streams in an upgrade:

--使用Oracle Streams的步驟:

(1)    Build up a copy of yourdatabase and upgrade it

(2)    Synchronize it with the sourcedatabase

(3)    Minimal downtime:  Justreconnecting the clients

(4)    Works Across platforms

(5)    Cross version since Oracle 9iR2

(6)    Some effort necessary to set itup

(7)    Fallback possible since sourceuntouched

(8)    Potential Issues include:

1)DatatypeRestrictions

2)Performance

1.2.3 The following are a list of notes to assist users in deciding whichprocess will work best for them. 

       --相關的說明文檔:

Note.553337.1 Export/ImportDataPump Parameter VERSION - Compatibility of Data Pump Between DifferentOracle Versions 

Note.556636.1 OracleServer - Export Data Pump and Import DataPump FAQ 

Note.351598.1 Export/ImportDataPump The Minimum Requirements to Use Export DataPump and Import DataPump(System Privileges) 

Note.243304.1 10g: Transportable Tablespaces Across Different Platforms 

Note:371556.1 How move tablespaces across platforms using Transportable Tablespaces with RMAN

Note.413586.1 How To Use RMAN CONVERT DATABASE for Cross Platform Migration 

Note:413484.1 Data Guard Support for Heterogeneous Primary and PhysicalStandbys in Same Data Guard Configuration

Oracle Streams Concepts and Administration: Appendix D 

http://download.oracle.com/docs/cd/E11882_01/server.112/e17069/ap_strmnt.htm#CIHJBIAA

小結:

關于Oracle 跨作業系統的遷移,我們不用過多的關心作業系統的類型,這種遷移支援跨DB 版本和跨wordsize 的遷移。

我們可以使用如下的方法實作跨OS的遷移:

在遷移過程,我們需要注意2種資訊:

1.     作業系統的ENDIAN格式,不同的作業系統,ENDIAN格式不一樣,如果我們遷移的2種OS 的ENDIAN 不一樣,我們可以使用RMAN's convert function 來進行轉換,使他們保持一緻。

2.     如果遷移過程資料庫的wordsize,如果不一緻,我們也需要修改wordsize,使兩端保持一緻。​

接下來會寫幾篇有關使用Transportable tablespaces的 Blog。

繼續閱讀