Oracle RMAN進階恢複概述(六)跨平台的資料庫移動和RMAN

來源:互聯網
上載者:User

Oracle 10g R2支援手工跨平台移動資料庫,即使這些平台具有不同的尾數格式(endian format)。 尾數格式與位元組排序有關,它有兩種不同的格式,即大尾數和小尾數。 如果在不同尾數位元組格式的平台之間移動資料庫,就需要手工操作,並且使用RMAN的convert datafile 或者 convert tablespace命令來將傳送的資料檔案轉換為正確的尾數格式。

一、可跨平台傳送的資料表空間

Oracle 支援幾乎(不是所有)Oracle 資料庫家族的所有平台之間的資料表空間移動。該功能具有如下的一些優點:

(1) 在不同的內容提供者之間有效地發布資料

(2) 在不同資料倉儲,資料集和OLTP 系統之間輕鬆地轉移資料。

(3) 輕鬆地跨平台遷移資料庫

為了能夠在平台之間移動資料表空間,必須將compatible 設定為10.0.0 或更高的值。 設定該參數後,在下一次啟動操作時,資料表空間資料檔案將被設定為支援跨平台操作。 注意的是: 只有在設定為可讀寫或聯機時,唯讀檔案和離線資料檔案才可支援跨平台操作。

二、位元組排序和資料檔案轉換

1、資料檔案排序

Oracle 平台一般使用兩種不同的位元組排序方法(稱為:尾數格式)。 如果多個平台使用相同的位元組排序方案,則可以採用以前的常用方法傳送資料表空間,而不會產生任何問題。

如果位元組排序方案不同,則需要在RMAN中使用convert 命令來將資料表空間轉換為目標平台上所需的格式。 可以通過串連動態視圖v$database和新的v$transportable_platform 視圖來確定尾數格式:

SQL> select endian_format from v$transportable_platform tp, v$database d where tp.platform_name=d.platform_name;

ENDIAN_FORMAT

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

Little

該樣本中,當前系統使用的是小尾數格式。 因此,如果在兩個系統上的查詢返回相同的結果,則表示有相容的資料檔案格式;如果返回不同的結果,則需要使用RMAN和compatible 參數來傳送資料表空間。

2、使用RMAN 轉換資料表空間尾數格式

如果需要轉換另一個平台的資料表空間,則可以使用RMAN。

(1)轉換資料表空間:

先將資料表空間轉換為唯讀模式:

SQL> alter tablespace BL read only;

資料表空間已更改。

RMAN> convert tablespace BL to platform='AIX-Based Systems (64-bit)'

db_file_name_convert='D:/APP/ADMINISTRATOR/ORADATA/BL','F:/bl';

啟動 conversion at source 於 08-7月 -10

使用通道 ORA_DISK_1

通道 ORA_DISK_1: 啟動資料檔案轉換

輸入資料檔案: 檔案號=00005 名稱=D:/APP/ADMINISTRATOR/ORADATA/BL/BL01.DBF

已轉換的資料檔案 = F:/BL/BL01.DBF

通道 ORA_DISK_1: 資料檔案轉換完畢, 經過時間: 00:00:07

完成 conversion at source 於 08-7月 -10

啟動 Control File and SPFILE Autobackup 於 08-7月 -10

段 handle=D:/APP/ADMINISTRATOR/FLASH_RECOVERY_AREA/BL/AUTOBACKUP/2010_07_08/O1_M

F_S_723857700_63CW16C1_.BKP comment=NONE

完成 Control File and SPFILE Autobackup 於 08-7月 -10

說明,在這個實驗中,我們發現它備份了控制檔案和spfile檔案,這也說明了以前的一個觀點,當資料檔案發生變化時,在開啟自動備份的前提下,會自動備份這2個檔案。

(2) 轉換資料檔案

RMAN> convert datafile 'D:/APP/ADMINISTRATOR/ORADATA/BL/BL01.DBF' from platform

'AIX-Based Systems (64-bit)' db_file_name_convert 'D:/APP/ADMINISTRATOR/ORADATA/

BL','F:/bl';

有關 CONVERT DATAFILE or TABLESPACE,參考聯機文檔

http://www.di.unipi.it/~ghelli/didattica/bdldoc/B19306_01/backup.102/b14191/dbxptrn001.htm

使用平台名來自v$transportable_platform視圖的platform_name列。 Oracle 對於放入正確的名稱有嚴格的要求。

一旦完成了轉換,就可以用下面的方式完成移動,使用可傳送資料表空間手工移動資料檔案或資料表空間。 注意的是,如果尾數格式不同,RMAN 就不能完成操作。尾數相同的可以按下面方法操作。

SQL> select * from v$transportable_platform;

PLATFORM_ID PLATFORM_NAME

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

1 Solaris[tm] OE (32-bit)

2 Solaris[tm] OE (64-bit)

7 Microsoft Windows IA (32-bit)

10 Linux IA (32-bit)

6 AIX-Based Systems (64-bit)

3 HP-UX (64-bit)

三、跨平台移動資料庫

Oracle 10g 提供了全新的功能處理在尾數格式相同的平台之間移動資料庫。Convert database命令結合DBMS_TDP程式包可以減少在平台之間移動資料庫的整體工作量。 該過程包括如下步驟:

1、 以唯讀方式開啟資料庫

Start mount;

Alter database open read only;

2、使用dbms_tdp.check_db 過程來檢查資料庫狀態。

Set serveroutput on

Declare

Db_ready boolean;

Begin

Db_ready := dbms_tdb.check_db

('Microsoft Windows IA (32-bit)',dbms_tdb.skip_readonly);

End;

/

3、 使用dbms_tdb.check_external 過程來標識外部對象:

Set serveroutput on

Declare

External boolean;

Begin

External := dbms_tdb.check_external;

End;

/

4、當資料庫主備好傳送時,就可以使用RMAN 的convert database命令。 RMAN 建立資料庫移動所需要的指令碼,但不實際執行移動,而是建立移動所需要的檔案。

Convert database new database  'copy' transport scripts 'c:/oracle/copyscripts' to platform 'Microsoft Windows IA (32-bit)';

一旦完成該命令,只需遵循RMAN 提供的指令就可以在目標資料庫上完成轉換。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.