关于在不同版本和平台之间进行还原或复制的常见问题 (文档 ID 1526162.1)--跨版本恢复

0    73    1

👉 本文共约3968个字,系统预计阅读时间或需15分钟。

用途

本文档回答了有关如何使用 RMAN 从旧版本以及具有不同字长的系统中还原备份的常见问题。下面列出了一些常与 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 数据库,并按照本 文档 中的说明将数据库恢复到一致的时间点。

*Database Backup and Recovery User's Guide*

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

*此时不要打开数据库。*
\4. 将 10.2 数据库手动升级至 11.2,参考文档

Database Upgrade Guide

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方式打开。

.

参考:
https://docs.oracle.com/database/121/RCMRF/rcmsynta020.htm#i1011578
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方式打开。

.

参考:
https://docs.oracle.com/database/121/RCMRF/rcmsynta020.htm#i1011578
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 报告。

本人提供Oracle、MySQL、PG等数据库的培训和考证业务,私聊QQ646634621或微信db_bao,谢谢!

如果您要使用 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

以及:

https://www.oracle.com/technetwork/database/features/availability/thehartfordprofile-xtts-133180.pdf

在 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:1503653.1 - Complete Checklist for Manual Upgrades to Oracle Database 12c Release 1 (12.1)

NOTE:1079563.1 - RMAN DUPLICATE/RESTORE/RECOVER Mixed Platform Support

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

标签:

头像

小麦苗

学习或考证,均可联系麦老师,请加微信db_bao或QQ646634621

您可能还喜欢...

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

11 − 3 =

 

嘿,我是小麦,需要帮助随时找我哦
  • 18509239930
  • 个人微信

  • 麦老师QQ聊天
  • 个人邮箱
  • 点击加入QQ群
  • 个人微店

  • 回到顶部
返回顶部