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

Posted wenzhongyan

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于在不同版本和平台之间进行还原或复制的常见问题相关的知识,希望对你有一定的参考价值。

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

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。
请确保您完成了相关升级文档(如下所列)中列出的各种数据库组件的升级前/升级后过程:
The following database versions will require an indirect upgrade path:
Source Database
Upgrade Path for Target Database
7.3.3 (or lower) ----> 7.3.4 -> 9.2.0.8 ----> 11.2.x
8.0.5 (or lower) ----> 8.0.6 -> 9.2.0.8 ----> 11.2.x
8.1.7 (or lower) ----> 8.1.7.4 -> 10.2.0.2(or any higher 10GR2 version) ----> 11.2.x
9.0.1.3 (or lower) ----> 9.0.1.4 -> 10.2.0.2 (or any higher 10GR2 version) ----> 11.2.x
9.2.0.7(or lower) ----> 9.2.0.8 ----> 11.2.x


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

2) 我能在两个不同的补丁程序集之间进行还原或复制吗?
正如您可以在不同的 Oracle 版本之间进行还原一样,您也可以在两个不同的补丁程序集之间执行这一操作。有关详细信息,请参阅问题 1。
请注意,您必须按照相应 Readme 文件中的说明进行操作。如果需要重置日志(resetlogs),请在执行升级或降级至某个补丁程序集所需的脚本之前,根据需要执行以下命令:
SQL> alter database open resetlogs upgrade; 

SQL> alter database open resetlogs downgrade;

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?
通常,您不能在两个不同的平台之间进行还原或复制。
在 10g 之前的版本中,从一个平台迁移至另一个平台的唯一方法是使用导出/导入。在 10g 中,通过 RMAN 转换(convert)命令,您可以使用 10g 跨平台可传输表空间(Cross-Platform Transportable Tablespaces)选项跨越各个平台
SQL> -- This list taken from 11.2.0.3. Older RDBMS versions may contain fewer platforms.
SQL> -- The list will not contain the platform info for the database from which you are running the query.
SQL> col platform_name for a35
SQL> select * from v$transportable_platform order by platform_id;

PLATFORM_ID PLATFORM_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
         14 Linux x86 32-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
SQL> -- You can easily find the platform info for the database running the above query by using the following SQL: SQL> SELECT tp.platform_id,substr(d.PLATFORM_NAME,1,30), ENDIAN_FORMAT
     FROM V$TRANSPORTABLE_PLATFORM tp, V$DATABASE d
     WHERE tp.PLATFORM_NAME = d.PLATFORM_NAME;

此外,在平台之间进行迁移时,可使用第三方应用程序,例如 VERITAS Storage Foundation 便捷式数据容器:
http://eval.veritas.com/mktginfo ... ners_for_Oracle.pdf(有关 VERITAS Storage Foundation 便捷式数据容器的信息,请联系 Veritas)

以上是关于关于在不同版本和平台之间进行还原或复制的常见问题的主要内容,如果未能解决你的问题,请参考以下文章

不同平台之间aclocal版本不匹配的问题

关于arm嵌入式是的jaffs2文件系统

关于SVN先还原在更新是啥意思?新手,请指导。

Windows Server 2016-将Active Directory还原到不同的硬件平台

关于数据库的各种备份与还原姿势详解

关于MPI-IO,你该知道的