Oracle RAC 高可用性是建立在共享存储概念之上的,因此共享存储的方式选择和部署对数据库性能就显得非常重要了。
Oracle 集群需要存储的软件和数据
项目 |
内容 |
最少磁盘空间 |
Clusterware 软件 |
集群软件 |
500M(安装完成后不变) |
voting disk(表决磁盘) |
记录集群节点信息 |
20M |
OCR(Oracle 集群注册) |
存储集群配置信息 |
100M |
Oracle 数据库软件 |
数据库软件 |
1.3G(安装完成后不变) |
RAC 数据库 |
存储所有数据库文件 |
1.2G(使用过程中不断增加) |
Recovery File(恢复文件) |
快速恢复数据 |
2G |
Oracle 集群中各部分的存储机制(非第三方集群文件系统)
项目 |
存储系统 |
存储位置 |
Clusterware 软件 |
NFS(要求NAS设备)、ext2、ext3 等本地文件系统 |
本地磁盘、网络磁盘(NFS) |
voting disk |
OCFS2、Raw device、NFS |
共享磁盘、网络磁盘(NFS) |
OCR |
OCFS2、Raw device、NFS |
共享磁盘、网络磁盘(NFS) |
数据库软件 |
OCFS2(共享)、NFS(网络)、ext2、ext3 等本地文件系统 |
本地磁盘、网络磁盘(NFS)、共享磁盘(OCFS2) |
RAC 数据库 |
OCFS2、ASM、Raw device、NFS |
共享磁盘、网络磁盘(NFS) |
恢复文件 |
OCFS2、ASM、NFS |
共享磁盘、网络磁盘(NFS) |
从存储位置中可以看出,所有的内容均可使用网络磁盘,但是网络磁盘要求有 NAS 设备。如果不使用 NAS 设备,除软件外,其它的数据都必须存储在共享磁盘上。对于 Oracle 数据库软件,如果要存储在共享磁盘上(所有服务器共享一个 Oracle Home),需要使用 OCFS2 文件系统。
Clusterware 和 Oracle 数据库存储选项
存储选项 |
支持的文件类型 |
Clusterware |
数据库 |
恢复文件 |
ASM |
否 |
是 |
是 |
OCFS2 |
是 |
是 |
是 |
Raw Device |
是 |
是 |
否 |
NFS |
是 |
是 |
是 |
从上表中可以看出,想要使用单一文件系统,必须使用 OCFS2 或 NFS 文件系统。但是,Oracle 10g 提供了非常方便的存储管理系统 ASM,因此,大多数情况下建议使用 OCFS2 来存储 Clusterware 的数据和 Oracle 数据库软件,使用 ASM 来存储数据库文件。
综上所述,在 Linux(x86)上安装 Oracle 集群,推荐采用以下几种策略之一:
(1)将 Oracle 数据库软件安装在本地磁盘(每个节点上一个拷贝),使用裸设备来存储 Clusterware,使用 ASM 来存储数据库和恢复文件。
项目 |
存储系统 |
存储位置 |
Clusterware 软件 |
ext2、ext3 |
本地磁盘 |
voting disk |
Raw device |
共享磁盘 |
OCR |
Raw device |
共享磁盘 |
数据库软件 |
ext2、ext3 |
本地磁盘 |
RAC 数据库 |
ASM |
共享磁盘 |
恢复文件 |
ASM |
共享磁盘 |
(2)数据全部使用 OCFS2 来存储,并将 Oracle 数据库软件安装在 OCFS2 上(所有节点共享一个 Oracle Home)
项目 |
存储系统 |
存储位置 |
Clusterware 软件 |
ext2、ext3 |
本地磁盘 |
voting disk |
OCFS2 |
共享磁盘 |
OCR |
OCFS2 |
共享磁盘 |
数据库软件 |
OCFS2 |
共享磁盘 |
RAC 数据库 |
OCFS2 |
共享磁盘 |
恢复文件 |
OCFS2 |
共享磁盘 |
(3)将 Oracle 数据库软件安装在共享磁盘上(所有节点共享一个 Oracle Home),使用 ASM 存储恢复文件和数据库。
项目 |
存储系统 |
存储位置 |
Clusterware 软件 |
ext2、ext3 |
本地磁盘 |
voting disk |
OCFS2 |
共享磁盘 |
OCR |
OCFS2 |
共享磁盘 |
数据库软件 |
OCFS2 |
共享磁盘 |
RAC 数据库 |
ASM |
共享磁盘 |
恢复文件 |
ASM |
共享磁盘 |
在大多数情况下,使用第三种策略对于管理和扩展及I/O负载均衡会更好。