上个专题我们讲了ASM的内容和管理
http://www.zhaibibei.cn/asm/
要想使用ASM我们首先了解Oracle提供给我们的集群软件
在Oracle 9i(包括)前,我们搭建集群环境都需要借助第三方的软件
之后Oracle提供了自己的软件来进行集群的搭建
Oracle版本:11.2.0.4
1.什么是集群件(Clusterware)
Oracle集群软件让服务器可以互相通信,以使他们可以以一个集合单元向外提供服务,这种形式的结合我们称之为集群(Cluster)
Oracle集群件提供运行RAC的必要的基础架构,同时也负责管理一些资源(resource)
- 虚拟IP地址 (virtual IP)
- 数据库
- 监听(isteners)
- 服务(services)
这些服务通常命名为ora.host_name.resource_name的形式
只有在Oracle 指导下我们才建议编辑这些资源
上图是一个典型的Oracle集群架构,在集群上运行了Oracle数据库RAC并同时向外提供服务
使用Oracle集群有如下好处
- 提高应用的可扩展性
- 降低高可用性架构的成本
- 提供故障转移功能
- 通过添加资源来提供性能
- 减少软硬件故障带来的停机时间
- 可单独管理各个资源
- 可自动开启异常关掉的进程
最大的好处为它脱离了第三方的集群软件,提供了从磁盘管理(ASM)到数据管理(RAC)的全套解决方案
Oracle集群件包含两个重要组件
- Voting Disk 用来保存节点成员信息
- Oracle Cluster Registry (OCR) 用来保存集群的配置信息
他们必须保存在共享存储中,并让所有节点可访问
2. Oracle集群系统要求
2.1 Oracle集群硬件需求
2.1.1 网络需求
集群中的节点至少需要2块网卡
- 一块用于对外服务(Public)
- 一块用来用于节点之间的通信(Private)
私有网卡之间至少需要千兆网络支持且不支持交叉线连接
为确保网络的高可用性,我们推荐至少2块网卡做网卡绑定用于Public,2块网卡做网卡绑定用于Private
2.1.2 存储要求
集群要求可被多台设备同时访问的设备,支持如下:
- NFS
- iSCSI
- Direct Attached Storage (DAS)
- Storage Area Network (SAN) storage
- Network Attached Storage (NAS)
同样Oracle推荐使用多路径来确保存储连接的高可用性
2.1.3安装位置需求
Oracle建议集群软件安装在各自的节点服务器中,这样一个节点损坏不会对其他节点有影响
2.2 Oracle集群操作系统要求
Oracle集群所需的操作系统环境需要经过Oracle认证
Linux平台:
http://www.oracle.com/technetwork/database/clustering/tech-generic-linux-new-086754.html
Unix平台:
http://www.oracle.com/technetwork/database/clustering/tech-generic-unix-new-166583.html
Windows平台:
http://www.oracle.com/technetwork/database/clustering/tech-generic-windows-new-166584.html
Oracle集群软件和数据库软件是独立的,我们可以在装好集群软件后安装数据库软件(RAC)
2.3 Oracle集群软件需求
Oracle集群使用Voting Disk和OCR来进行集群的管理
2.3.1 Voting Disk
Oracle集群使用Voting Disk 文件来决定哪些节点属于集群,我们可以将其放置在ASM或者一般的共享存储中
ASM中的Voting Disk 我们无需手动配置,ASM会根据磁盘组冗余度来自动管理建立其副本
如果没有将其放置在ASM中,Oracle建议我们手动在不同物理设备中建立至少3个Voting DIsk
至少需要3个Voting Disk,最多15个
2.3.2 Oracle Cluster Registry(OCR)
Oracle集群使用OCR来存储及管理集群内的资源,包括RAC数据库,监听,VIP等
OCR在一个树状结构内以key-value对的形式来存储配置信息
Oracle建议为OCR配置多个位置来确保高可用性,另外:
- 我们最多就可以配置五个位置
- 每个位置必须配置在共享存储中,并可以被每个节点访问
- 我们可以在线覆盖一个失败的OCR文件,当其不是唯一一个的时候
- 我们必须通过一些工具来维护OCR,如 CRSCTL,SRVCTL,OCRCONFIG,DBCA
3. Oracle集群网络配置
3.1 Public IP
该IP作为公共的IP需要能被所有客户端连接,如不使用GNS我们需要在集群节点中静态分配该IP
该IP需要至少一张物理网卡
3.2 Virtual IP
该IP为虚拟IP,需要被所有客户端和Public IP连接
正常情况下其分布在各个节点中,当节点无法发生故障时,上面的VIP会转移至其他节点,以保证该IP可正常服务
3.3 Private IP
该地址为集群所需的私有IP地址,它主要负责集群中各节点数据的内部传输(Cache Fusion),它不应该能被Public/Virtual IP以及客户端所连接
该IP需要至少一张物理网卡
私有网卡之间至少需要千兆网络支持且不支持交叉线连接
4. Single Client Access Name (SCAN)
SCAN为Oracle 11.2 新的功能,他主要起到一个中转作用,客户端连接到SCAN 上,其依次将该请求转发至集群中的VIP上,而不用关心集群中各节点的IP信息
我们必须为集群配置一个SCAN
它是一个域名,其解析到一个至三个IP地址上,解析的方法如下:
4.1 手动配置
这是我们最常用的一种SCAN配置方式
它配置简单,但是只能对应一个IP地址,我们需要在hosts文件中指定
- Public IP
- Virtual IP
- Private IP
- SCAN IP
Public IP 及Private IP需要在节点中静态配置
4.2 GNS配置
这种方法配置复杂,需要DNS和DHCP服务器的支持,一般很少用
他可以支持三个SCAN IP地址,同时需要一个GNS VIP用于接收客户端请求
我们只需要指定GNS VIP,以及各节点的Public 和Virtual IP
各节点的VIP以及SCAN IP通过DHCP获取
Public IP 及Private IP需要在节点中静态配置
GNS可参考如下链接:
http://72.32.201.108/rac/Oracle_RAC_with_GNS.html
以上参考自官方文档:
https://docs.oracle.com/cd/E11882_01/rac.112/e41959/intro.htm#CWADD90953