關於在不同版本和平臺之間進行還原或複製的常見問題 (文件 ID 1526162.1)

mosdoc發表於2016-12-14

文件內容


用途

問題和答案
  1) 我能用更高版本的 Oracle 還原或複製舊版本的資料庫嗎?
  2) 我能在兩個不同的補丁程式集之間進行還原或複製嗎?
  3) 我能在同一作業系統的不同版本之間進行還原或複製嗎?
  4) Oracle 的位(bit)級別(32 位或 64 位)不匹配時,可以進行還原或複製嗎?
  5) 可以將更高版本的備份還原到較早版本的 Oracle 嗎?
  6) 我能在兩個不同的平臺之間還原或複製我的 RMAN 備份嗎,例如 Solaris 到 Linux?

參考


適用於:

Oracle Database - Enterprise Edition - 版本 9.0.1.0 和更高版本
Oracle Database - Standard Edition - 版本 9.0.1.0 和更高版本
本文件所含資訊適用於所有平臺

用途

本文件回答了有關如何使用 RMAN 從舊版本以及具有不同字長的系統中還原備份的常見問題。下面列出了一些常與 Oracle 軟體升級相關的情形。

如果您需要有關當前主題的更多資訊,請透過以下連結直接訪問“備份和恢復社群”與Oracle 客戶和專家進行討論:

問題和答案

注意:以下部分中的還原是指使用者管理的(非 RMAN)還原或 RMAN 還原。複製(Duplicate)是隻有 RMAN 才具有的一種功能,但在提到複製時,它也適用於使用者管理的資料庫克隆。

1) 我能用更高版本的 Oracle 還原或複製舊版本的資料庫嗎?

RMAN 可將在較舊的資料庫版本上進行的備份還原到較新的版本中。舊的備份必須是在 9.2 或更高版本的資料庫中進行的。

此方法可用作異地(out-of-place) 資料庫升級的一部分,其中,舊的備份被還原到新版本資料庫中,然後升級指令碼照常執行。由於舊的資料庫在升級過程中可以保持連線狀態,因此這種方法相對於就地(in-place) 升級更為可取,在就地升級中資料庫必須保持離線狀態。

例如,我希望使用在 10.2 資料庫上進行的備份將資料庫升級到 11.2。11.2 資料庫將駐留在新的主機上。

步驟如下:

1. 在新主機上安裝 11.2 資料庫軟體和最新的補丁程式集,並按照本 中的說明準備 11.2 Oracle 主目錄。
2. 允許從新主機訪問磁碟和/或磁帶備份
3. 將備份還原到 11.2 資料庫,並按照本  中的說明將資料庫恢復到一致的時間點。

 

20 Performing RMAN Recovery: Advanced Scenarios
          ... Restoring a Database on a New Host'

此時不要開啟資料庫。
4. 將 10.2 資料庫手動升級至 11.2,參考文件

2 Preparing to Upgrade Oracle Database
         ... Manual Upgrade

請確保您完成了相關升級文件(如下所列)中列出的各種資料庫元件的升級前/升級後過程:
Note 837570.1 Complete Checklist for Manual Upgrades to 11gR2
Note 1503653.1  Complete Checklist for Manual Upgrades to Oracle Database 12c Release 1 (12.1)

 

注意:上面的過程適用於還原從未升級至 11.2 的 10.2 資料庫。如果資料庫已經升級,而您需要透過升級之前的備份(版本10.2)還原資料庫,則您只需要進行還原和恢復,介質回覆將重現由升級完成的一切內容。

 

不支援 RMAN複製”,因為該功能會在恢復之後嘗試自動開啟資料庫時失敗 3

從12c開始DUPLICATE TARGET DATABASE增加新選項NOOPEN,這個選項更適合資料庫恢復。
.
NOOPEN
指定duplicate資料庫是不開啟資料庫。
預設RMAN建立duplicate資料庫後以RESETLOGS方式開啟。

.

參考:

Oracle? Database Backup and Recovery Reference
12c Release 1 (12.1)
E50791-03
.
DUPLICATE
.
dupOptionList

 

2) 我能在兩個不同的補丁程式集之間進行還原或複製嗎?

正如您可以在不同的 Oracle 版本之間進行還原一樣,您也可以在兩個不同的補丁程式集之間執行這一操作。有關詳細資訊,請參閱問題 1。

請注意,您必須按照相應 Readme 檔案中的說明進行操作。如果需要重置日誌(resetlogs),請在執行升級或降級至某個補丁程式集所需的指令碼之前,根據需要執行以下命令:

SQL> alter database open resetlogs upgrade;

SQL> alter database open resetlogs downgrade;

由於 RMAN“複製”會嘗試自動開啟資料庫,因此,在這種情況下您就不應使用 RMAN 複製,而只使用 RMAN 還原。

從12c開始DUPLICATE TARGET DATABASE增加新選項NOOPEN,這個選項更適合資料庫恢復。
.
NOOPEN
指定duplicate資料庫是不開啟資料庫。
預設RMAN建立duplicate資料庫後以RESETLOGS方式開啟。

.

參考:

Oracle? Database Backup and Recovery Reference
12c Release 1 (12.1)
E50791-03
.
DUPLICATE
.
dupOptionList

 

3) 我能在同一作業系統的不同版本之間進行還原或複製嗎?

例如,我能將在執行 Solaris 9 的主機上進行的 9.2.0.1.0 RMAN 備份還原到已安裝 9.2.0.1.0 但其主機卻執行 Solaris 10 的其他機器嗎?

如果可以使用相同的 Oracle Server 安裝 CD(介質包)在 Solaris 9 和 Solaris 10 上安裝 9.2.0.1.0,則將支援這類還原。

4) Oracle 的位(bit)級別(32 位或 64 位)不匹配時,可以進行還原或複製嗎?

例如,可以將我的 9.2 版64 位資料庫還原或複製到 9.2.32 位安裝嗎?

執行還原/恢復時,最好保持相同的位版本。但是,除使用複製命令外,使用相同的作業系統平臺應該允許在 Oracle 位級別(32 位或 64 位)之間進行還原/恢復。請注意,這可能只適用於特定的作業系統,若有與此相關的任何問題,應向 Oracle Support 報告。

如果您要使用 32 位軟體執行 64 位資料庫(或反之),則在恢復結束之後必須要使用 utlirp.sql 轉換資料庫位版本。

有關在位之間進行切換的詳細資訊,請參閱以下文件:

Note 62290.1 Changing between 32-bit and 64-bit Word Sizes

如果不執行 utlirp.sql,將會出現以下錯誤(不限於):

ORA-06553: PLS-801: INTERNAL ERROR [56319]

5) 可以將更高版本的備份還原到較早版本的 Oracle 嗎?

例如,您準備從 10.2 升級至 11.2。在成功升級並在 11.2 上執行幾天之後,您對 11.2 資料庫進行了新的備份。您想知道,如果 11.2 中出現問題,是否能夠將 11.2 備份還原到其他主機上,該主機安裝了 10.2 資料庫軟體,(或在同一主機上重新安裝 10.2,然後還原 11.2 備份)。

如果在升級後從未增加 COMPATIBLE 引數,則可以進行此類還原。在本示例中,如果 11.2 資料庫始終是在 COMPATIBLE 為 10.2 的情況下執行,則可以將 11.2 資料庫的備份還原到 10.2 例項中,然後執行降級過程。

如果資料庫已經在 COMPATIBLE 為 11.2 的情況下開啟,則不能進行此類還原。另一種維護 HA 和舊版本資料庫(如果需要回滾)的好方法是,使用 Data Guard 滾動(rolling)升級法,該方法涉及臨時邏輯備用資料庫(只是在升級期間臨時把主資料庫變成邏輯備用資料庫)。將備用資料庫升級至新版本後(主資料庫仍然在舊版本上執行),您可以進行切換並驗證升級後的資料庫是否運作正常。如果運作不正常,您可以切換回到舊的版本。

6) 我能在兩個不同的平臺之間還原或複製我的 RMAN 備份嗎,例如 Solaris 到 Linux?

通常,您不能在兩個不同的平臺之間進行還原或複製。

注意:請參閱 Note 1079563.1 ,其中列出了 Oracle 支援的跨平臺複製/還原/恢復的平臺和 Oracle 版本。

在 10g 之前的版本中,從一個平臺遷移至另一個平臺的唯一方法是使用匯出/匯入。在 10g 中,透過 RMAN 轉換(convert)命令,您可以使用 10g 跨平臺可傳輸表空間(Cross-Platform Transportable Tablespaces)選項跨越各個平臺。有關更多詳細資訊,請參閱以下文件:

Note 243304.1 Transportable Tablespaces Across Different Platforms

以及:


在 10.2 及更高版本中,如果源 OS 和目標 OS 具有相同的位元組序(endian),您可以發出“CONVERT DATABASE”命令,以便轉換資料檔案並使其準備好傳輸到目標機器。有關“CONVERT DATABASE”的更多詳細資訊,請參閱:

Oracle Database Backup and Recovery Advanced User's Guide
10g Release 2 (10.2)
Chapter 15, RMAN Cross-Platform Transportable Databases and Tablespaces 

注意:請參閱 Note 732053.1 ,瞭解在版本10.2 和 11.1 中,如何在可傳輸資料庫(transportable database)期間跳過不包含UNDO資訊的資料檔案。該過程可大大減少總體完成時間。此外,請注意,為了實現這一目的,11.2 還針對 CONVERT DATABASE 提供了 SKIP UNNECESSARY DATAFILES 選項。

 

如果是從 32 位到 64 位,還必須按照 Note 62290.1 中的說明改變字長。

 

此外,在平臺之間進行遷移時,可使用第三方應用程式,例如 VERITAS Storage Foundation 便捷式資料容器:



(有關 VERITAS Storage Foundation 便捷式資料容器的資訊,請聯絡 Veritas)

 

社群討論

您可以在下面的社群參與對本文的討論。下面的頁面是實時討論頁面- 不是截圖;-)

參考

NOTE:560417.1 - Recovery Through Upgrade returns ORA-1092 on Open
NOTE:558408.1 - RMAN DUPLICATE / RESTORE a database to a higher patchset

NOTE:1079563.1 - RMAN DUPLICATE/RESTORE/RECOVER Mixed Platform Support
NOTE:73431.1 - RMAN Compatibility Matrix
NOTE:62290.1 - Changing between 32-bit and 64-bit Word Sizes
NOTE:732053.1 - Avoid Datafile Conversion during Transportable Database
NOTE:1503653.1 - Complete Checklist for Manual Upgrades to Oracle Database 12c Release 1 (12.1)

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

相關文章