跨 OS 平台迁移 Oracle 数据库

将现有 Oracle 数据库(非二进制可执行程序文件/)从一个操作系统平台移植到另一个操作系统平台(例如从 Windows 到 Solaris)
这种需求会发生在 Oracle 版本升级过程中(Oracle 8i 一直到 Oracle 11G),或者在同一 Oracle 版本内(Oracle 10.2 到 Oracle 10.2)。
平台迁移中不考虑操作系统内部的更改(例如将 Linux、Windows 或 Solaris 从 32 位到 64 位),这些更改会被当做正常升级/ wordsize 转换来处理。
我们以下几种解决方案

解决方案

我们没有迁移实用程序(脚本或 DBUA)来执行 Oracle Database 的跨平台迁移。

更改平台需要使用下列方法之一重新构建数据库和(或)移动数据:

  1. 执行“export/import”操作,包括Datapump。所有版本都支持“export/import”操纵,但是对于Datapump,则需要 10.1.0.2 或更高版本。
  2. 10G 或更高版本可使用 Transportable Tablespaces。
  3. 10G 或更高版本可使用 RMAN Convert Database 功能。
  4. Streams 流复制。
  5. Create Table As Select (CTAS)
  6. Dataguard 基于异构平台的物理主备库。
  7. Oracle Golden Gate。

每个可用选项都会有其优势和局限,包括数据类型、所需时间和潜在成本。

可用选项的优劣将取决于源和目标操作系统及 Oracle 版本。

例如:

使用 Dataguard 基于异构平台的物理主备库时将存在平台局限

仅当源和目标都属于相同 ENDIAN 格式时,RMAN Convert Database 才工作。

针对 Transportable Tablespaces 的 RMAN's convert 功能将从一种 ENDIAN 格式转换为另一种格式。

这两个命令是不相同的。

 

PLATFORM_NAMEENDIAN_FORMAT
Oracle Solaris on SPARC (32-bit & 64-bit)Big
AIX-Based Systems (64-bit)Big
HP-UX (64-bit)Big
HP-UX IA (64-bit)Big
IBM zSeries Based LinuxBig
Apple Mac OSBig
IBM Power Based LinuxBig
HP Tru64 UNIXLittle
Linux IA (32-bit & 64-bit)Little
HP Open VMSLittle
Microsoft Windows IA (32-bit & 64-bit)Little
Oracle Solaris on x86 & x86-64Little
Linux 64-bit for AMDLittle
Microsoft Windows 64-bit for AMDLittle

下面是使用Transportable Tablespaces基本步骤:

  • 在新环境中创建一个“空”数据库
  • 将所有数据表空间从源数据库插入目标数据库
  • SYSTEM+SYSAUX 表空间无法传输
  • 移动视图、同义词等所需的其他步骤
  • 可能升级很快
  • 复杂性可能成为约束
  • 自 Oracle Database 10g 开始支持跨平台和跨 Endian 工作


下面是在升级中使用 Oracle Streams 的基本信息:

  • 构建数据库的副本并升级该数据库
  • 将其与源数据库同步
  • 最小停机时间:仅重新连接客户端
  • 跨平台工作
  • 自 Oracle 9iR2 开始支持跨版本
  • 对其进行设置所需的一些工作
  • 自源数据库未被操作以来可能的回退
  • 可能的问题包括:
  1. 数据类型限制
  2. 性能

相关推荐