将现有 Oracle 数据库(非二进制可执行程序文件/)从一个操作系统平台移植到另一个操作系统平台(例如从 Windows 到 Solaris)
这种需求会发生在 Oracle 版本升级过程中(Oracle 8i 一直到 Oracle 11G),或者在同一 Oracle 版本内(Oracle 10.2 到 Oracle 10.2)。
平台迁移中不考虑操作系统内部的更改(例如将 Linux、Windows 或 Solaris 从 32 位到 64 位),这些更改会被当做正常升级/ wordsize 转换来处理。
我们以下几种解决方案
我们没有迁移实用程序(脚本或 DBUA)来执行 Oracle Database 的跨平台迁移。
更改平台需要使用下列方法之一重新构建数据库和(或)移动数据:
执行“export/import”操作,包括Datapump。所有版本都支持“export/import”操纵,但是对于Datapump,则需要 10.1.0.2 或更高版本。
10G 或更高版本可使用 Transportable Tablespaces。
10G 或更高版本可使用 RMAN Convert Database 功能。
Streams 流复制。
Create Table As Select (CTAS)
Dataguard 基于异构平台的物理主备库。
Oracle Golden Gate。
每个可用选项都会有其优势和局限,包括数据类型、所需时间和潜在成本。
可用选项的优劣将取决于源和目标操作系统及 Oracle 版本。
例如:
使用 Dataguard 基于异构平台的物理主备库时将存在平台局限
仅当源和目标都属于相同 ENDIAN 格式时,RMAN Convert Database 才工作。
针对 Transportable Tablespaces 的 RMAN's convert 功能将从一种 ENDIAN 格式转换为另一种格式。
这两个命令是不相同的。
PLATFORM_NAMEENDIAN_FORMATOracle 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 Linux Big
Apple Mac OS Big
IBM Power Based Linux Big
HP Tru64 UNIX Little
Linux IA (32-bit & 64-bit) Little
HP Open VMS Little
Microsoft Windows IA (32-bit & 64-bit) Little
Oracle Solaris on x86 & x86-64 Little
Linux 64-bit for AMD Little
Microsoft Windows 64-bit for AMD Little
下面是使用Transportable Tablespaces基本步骤:
在新环境中创建一个“空”数据库
将所有数据表空间从源数据库插入目标数据库
SYSTEM+SYSAUX 表空间无法传输
移动视图、同义词等所需的其他步骤
可能升级很快
复杂性可能成为约束
自 Oracle Database 10g 开始支持跨平台和跨 Endian 工作
下面是在升级中使用 Oracle Streams 的基本信息:
构建数据库的副本并升级该数据库
将其与源数据库同步
最小停机时间:仅重新连接客户端
跨平台工作
自 Oracle 9iR2 开始支持跨版本
对其进行设置所需的一些工作
自源数据库未被操作以来可能的回退
可能的问题包括:
数据类型限制
性能
在CentOS 6.4下安装Oracle 11gR2(x64)