跨 OS 平台迁移 Oracle DB 基本思路[ID 1525396.1]
--转载一篇MOS上的文章
适用版本
Oracle Server Enterprise Edition - Version: 8.1.7.4 to 11.2.0.3
将现有 Oracle 数据库(非二进制可执行程序文件/)从一个操作系统平台移植到另一个操作系统平台(例如从 Windows 到 Solaris)
这种需求会发生在 Oracle 版本升级过程中(Oracle 8i 一直到 Oracle 11G),或者在同一 Oracle 版本内(Oracle 10.2 到 Oracle 10.2)。
平台迁移中不考虑操作系统内部的更改(例如将 Linux、Windows 或 Solaris 从 32 位到 64 位),这些更改会被当做正常升级/ wordsize 转换来处理。
有关详细信息,请参考相应的迁移手册或
Note: 62290.1 - Changing between 32-bit and 64-bit Word Sizes
Fix
我们没有迁移实用程序(脚本或 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 基于异构平台的物理主备库时将存在平台局限
有关详细信息,请参考 Note: 413484.1
仅当源和目标都属于相同 ENDIAN 格式时,RMAN Convert Database 才工作。
针对 Transportable Tablespaces 的 RMAN's convert 功能将从一种 ENDIAN 格式转换为另一种格式。
这两个命令是不相同的。请参考本文档结尾列出的文章,以获得所需的正确解释。
以下是ENDIAN_FORMAT格式列表
PLATFORM_NAME ENDIAN_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 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基本步骤思路:
1.在新环境中创建一个“空”数据库
2.将所有数据表空间从源数据库插入目标数据库
3.SYSTEM+SYSAUX 表空间无法传输
4.移动视图、同义词等所需的其他步骤
5.可能升级很快
6.复杂性可能成为约束
自 Oracle Database 10g 开始支持跨平台和跨 Endian 工作
下面是在升级中使用 Oracle Streams 的基本信息:
1.构建数据库的副本并升级该数据库
2.将其与源数据库同步
3.最小停机时间:仅重新连接客户端
4.跨平台工作
5.自 Oracle 9iR2 开始支持跨版本
6.对其进行设置所需的一些工作
7.自源数据库未被操作以来可能的回退
8.可能的问题包括:
数据类型限制
性能