很感谢山水的一句话:“技术关一百分,交流50,别人还是认为你只有50分。在技术这个行业,一长一短,永远会是取短。”
回忆起刚接触oracle的时候,那个时候RAC,会写成rca,不知道是什么东西。想想有时候也有很好笑的时候。
RAC实质上是位于不同操作系统的oracle instance节点,同时的访问一个oracle database,每个节点之前通过私有的网络进行通信,互相的监控各个节点之前的运行状态。oracle数据库的数据文件、控制文件、联机日志文件等均放在在集群的共享存储设备上,而共享存储设备可以是raw、ocfs2、asm 等。所有的集群节点可以同时的读写共享存储。
RAC能够实现最高级别的可用性,可伸缩性,低成本计算能力,多并发处理能力。
OCR:用于保存集群和数据库的配置,所以ocr必须保存于共享磁盘(但不能是ASM,asm 是一个软件实现文件冗余保护系统,在11gR2可以使用ASM,因为有新的ACFS文件系统)。大概需要100M -2G左右的空间。
Voting disk :用于保护集群中各个节点信息并确保各个节点的一致性状态也是存放在共享磁盘上(不能是ASM),大概需要20M-1G左右的空间。
VIP:虚拟IP ,目的是为了实现应用的无停顿性。这个IP并非绑定于网卡,而是有oracle进程管理,如果某个用户连接的虚IP所在的实例宕机,oracle会自动将该IP映射到状态正常的实例,这样就不会影响到用户对数据库的访问,也不用用户修改应用。对于失败的节点,oracle必须恢复节点中的事务,保证数据库处于一致的状态,一般这个过程要1-5分钟。
RAC提供主机保护与负载均衡,不能容灾,假如共享硬盘损坏等不可预料的损失。所以RAC需要与其他容灾组件配合使用如 RAC+DG。
IP:
public network:数据库对外服务的网络,应用服务就是通过这个网络来访问数据库的,一般该网络是主干的千/万兆网络。
priate networka:节点之间有大量数据交互产生较大的流量,所以这个网络速度要快要稳,至少要采用千兆网络。采有可切换的冗余线路
而数据库一般是SAN或者iSAN网络去连接共享存储设备。
oracle 官方RAC结构中数据库层面上大致的被分为5层:
CRS --管理RAC环境 例如 VIP listener asm db and so on
RAC -- oracle的集群支持组件
LISTENER ---监听oracle的网络
ASM INSTANCE --- ASM实例,提供存储管理,存储空间可以给cluster直接的使用
DB INSTANCE ---数据库运行在这里
对于上面这5层CRS是必须的,ASM可选
CRS里面存放2个组件(voting disk,ocr),必须放在共享设备上如raw ,nfs ,gfs ocfs,lfs等唯独不能放在ASM 上排除11gR2。
而oracle的clusterware、database产品安装在节点的本地硬盘上。也就是$CRS_HOME $ORACLE_BASE $ORACLE_HOME这3个变量指定的路径下面。
从架构一套RAC,从硬件上的需求:服务器2台,交换机2个,存储一台,光钎交换机一个,四块网卡
主要也是根据自己的需求来配置硬件设备和网络设备,一般情况下是按照主机。存储。网络来准备需要购买的设备。
总的来讲当我们去部署一套RAC的时候,要注意的是ip ;public ip 为数据库所在主机的公共网络,private Ip被用来私有高速互联,而VIP 用来节点发生故障时候更快的故障转移,oracle利用每个节点的lisnter监听VIP,一旦发生故障,VIP将进行实际的故障切换,从而在其他的可用的节点上保持联机,从而降低了客户应用程序意识到节点故障所需要的时间。而VIP与public ip 必须在同一个网段内。
而每个节点主机上至少需要2张物理网卡,以便于分配公有IP和私有IP。对于私有IP的连接每个集群节点通过专用高速网络连接到所有的其他的节点。其目的在于集群上的节点在实例交换信息状态(锁信息、全局缓存信息等)那么这个机制就叫做oracle cache fusion。
实际生产环境中,高速互联至少需要配置GB级的以太网,而且最好情况下不要使用交叉直连的方式。较好的解决方案是节点间配置专用交换机,这样避免了因集群上一个节点宕掉而影响另外节点上正常的工作。
这个架构。
CRS:oracle集群软件架构。可以说是RAC环境稳定运行的基础。作为一个框架它有多个组成部分,包括一系列的进程和一堆的服务。
对于ORACLE RAC的部署,一般是走其中一个方案的(raw(ocr+voting)+ASM(data+flashback recovery area))
----硬件要求
服务器 X 2
本地scis盘 sda 300G
挂载一块SAN共享盘,分成3个区,通过fdisk命令创建裸设备
├─OCR /dev/sdb1 2G
├─vote /dev/sdb2 2G
├─asm /dev/sdb3 1.5T (数据库oradata是放在这里的)
三块网卡
├─Public Network
├─Private Interconnect
├─Public Virtual IP (VIP) addresses(应该可以不要,如果有也只是dhcp,不要绑定,VIP必须和公共网络在一个子网中)
一下按照部署方案走。