跨 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 的跨平台迁移。
更改平台需要使用下列方法之一重新构建数据库和(或)移动数据:
- 执行“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_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基本步骤:
- 在新环境中创建一个“空”数据库
- 将所有数据表空间从源数据库插入目标数据库
- SYSTEM+SYSAUX 表空间无法传输
- 移动视图、同义词等所需的其他步骤
- 可能升级很快
- 复杂性可能成为约束
- 自 Oracle Database 10g 开始支持跨平台和跨 Endian 工作
下面是在升级中使用 Oracle Streams 的基本信息:
- 构建数据库的副本并升级该数据库
- 将其与源数据库同步
- 最小停机时间:仅重新连接客户端
- 跨平台工作
- 自 Oracle 9iR2 开始支持跨版本
- 对其进行设置所需的一些工作
- 自源数据库未被操作以来可能的回退
- 可能的问题包括:
- 数据类型限制
- 性能
相关推荐
kanpiaoxue 2013-06-19
RexLeee 2019-12-23
fouweng 2011-08-27
heavenmark 2011-07-31
Tinazhou 2016-11-22
molong0 2017-07-13
ECSHOP专属建设 2016-11-25
ruizhenggang 2011-10-11
BlogForUS 2018-01-22
cxj 2019-10-08
lilygg 2019-10-04
啦啦啦啦啦 2019-09-29
二哈 2012-02-12
小微分享驿站 2011-12-28