关于在不同版本和平台之间进行还原或复制的常见问题

用途
问题和答案
 	1) 我能用更高版本的 Oracle 还原或复制旧版本的数据库吗?
 	2) 我能在两个不同的补丁程序集之间进行还原或复制吗?
 	3) 我能在同一操作系统的不同版本之间进行还原或复制吗?
 	4) Oracle 的位(bit)级别(32 位或 64 位)不匹配时,可以进行还原或复制吗?
 	5) 可以将更高版本的备份还原到较早版本的 Oracle 吗?
 	6) 我能在两个不同的平台之间还原或复制我的 RMAN 备份吗,例如 Solaris 到 Linux?
 

Oracle Database - Enterprise Edition - 版本 9.0.1.0 和更高版本,本文档所含信息适用于所有平台


注意:以下部分中的还原是指用户管理的(非 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 数据库,并按照本 文档 中的说明将数据库恢复到一致的时间点。 此时不要打开数据库。
4. 按照本文档 中的说明,紧接着,从安装完 11.2 软件后的时间点开始,将 10.2 数据库手动升级至 11.2。

请确保您完成了相关升级文档(如下所列)中列出的各种数据库组件的升级前/升级后过程:
Note 837570.1 Complete Checklist for Manual Upgrades to 11gR2
 

注意:上面的过程适用于还原从未升级至 11.2 的 10.2 数据库。如果数据库已经升级,而您需要通过升级之前的备份(版本10.2)还原数据库,
则您只需要进行还原和恢复,介质回复将重现由升级完成的一切内容。


不支持 RMAN“复制”,因为该功能会在恢复之后尝试自动打开数据库时失败(第 3 步)。

2) 我能在两个不同的补丁程序集之间进行还原或复制吗?

正如您可以在不同的 Oracle 版本之间进行还原一样,您也可以在两个不同的补丁程序集之间执行这一操作。有关详细信息,请参阅问题 1。

请注意,您必须按照相应 Readme 文件中的说明进行操作。如果需要重置日志(resetlogs),请在执行升级或降级至某个补丁程序集所需的脚本之前,根据需要执行以下命令:

SQL> alter database open resetlogs upgrade; 
或
SQL> alter database open resetlogs downgrade;

由于 RMAN“复制”会尝试自动打开数据库,因此,在这种情况下您就不应使用 RMAN 复制,而只使用 RMAN 还原。

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

以及:

http://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 中的说明改变字长。

..
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值