Linux 下 ORACLE 10gRAC安装手册
1.Oracle Clusterware简介
Oracle Clusterware的两个集群组件:
2voting disk(表决磁盘):用于记录集群节点的信息。如果使用的是OCFS文件系统,它是以一个文件的方式存在。RAC用它来确定哪些实例是集群实例。当网络发生故障时,用它存储的信息进行健康检查(检查服务器是否可用)和仲裁,表决磁盘必须存放在共享磁盘上。
2Oracle Cluster Registry(OCR,集群注册):用于记录集群配置信息,也必须存放在共享磁盘上。
2.Oracle Clusterware后台进程
CRS主要由三部分组成,三部分都作为守护进程出现
2CRSD(集群资源服务):资源可用性维护的主要引擎.它用来执行高可用性恢复及管理操作,诸如维护OCR及管理应用资源,它保存着集群的信息状态和OCR的配置,此进程以root权限运行。
2EVMD(事件管理服务):事件管理守护进程.此进程还负责启动racgevt进程以管理FAN服务器端调用,此进程以root权限运行。
2OCSSD(集群同步服务):集群同步服务进程.管理集群节点的成员资格,它以fatal方式启动,因此进程发生故障将导致集群重启,以防止数据坏死.同时,CSS还维护集群内的基本锁功能,以及负责监控voting disk的脑裂故障。它以Oracle权限运行。
2OPRCD节点检测监控:集群中的进程监视程序,仅当平台上的CRS不使用厂商群件时候才出现,且无论运行了多少实例,每个节点只会存在一组后台进程.
由于要维护多个实例同时访问资源所必需的锁定,因此,同single instance相比,RAC下增加了额外的一些进程。专门针对RAC的进程有如下几种:
1)LMS(Global Cache Service) 全局缓存服务进程
LMS负责为缓存融合请求在实例间传递块。当一致性请求的时候,LMS首先回滚块,创建块的读一致性映像(CR),然后将该一致性版本通过高速互联传递到处理此请求的远程实例中的前台进程上,LMS进程保证了在同一时刻只允许一个实例去更新数据块。
LMS进程的数量由初始化参数GCS_SERVER_PROCESSES控制。Oracle最大支持36个LMS进程(0�C9 and a�Cz),该初始化参数默认值为2。
2)LMD (Global Enqueue Service Daemon) 全局队列服务守护进程
LMD负责管理全局队列和全局资源访问,并更新相应队列的状态,此外还负责远程节点资源的请求与死锁的检测。LMD与LMS进程互交工作,共同维护GRD。
3)LMON (Global Enqueue Service Monitor) 全局队列服务监控器进程
LMON是全局队列服务的监控器,他负责检查集群内实例的死亡情况并发起重新配置,当实例加入或者离开集群的时候,它负责重新配置锁和资源。
4) LCK(Lock process) 锁进程
LCK管理那些不是缓存融合的请求,例如library cahe, row cache.由于LMS进程提供了主要的锁管理功能,因此每个节点实例上只有一个LCK进程。
5)DIAG (The Diagnostic Daemon)诊断守护进程
DIAG负责监控实例的健康状况并捕获进程失败的信息,并将失败信息写入用于失败分析,该进程自动启动且不需要人为调整,若失败则自动重新启动。
Oracle 10G RAC下,有3个重要的IP. ① Public IP ② Private IP ③ Vitual IP
Public IP为数据库所在主机的公共网络IP,PrivateIP被用来私有高速互联,而Oracle较前版本,增加了一个虚拟IP,用来节点发生故障时候更快的故障转移,oracle利用每个节点的lisnter侦听VIP,一旦发生故障,VIP将进行实际的故障切换,从而在其他的可用的节点上保持联机,从而降低客户应用程序意识到节点故障所需要的时间。
VIP与Public IP必须在同一个网段内。
1)Oracle RAC组件
在一个应用环境当中,所有的服务器使用和管理同一个数据库,目的是为了分散每一台服务器的工作量,硬件上至少需要两台以上的服务器,而且还需要一个共享存储设备。同时还需要两类软件,一个是集群软件,另外一个就是Oracle数据库中的RAC组件。同时所有服务器上的OS都应该是同一类OS,根据负载均衡的配置策略,当一个客户端发送请求到某一台服务的listener后,这台服务器根据我们的负载均衡策略,会把请求发送给本机的RAC组件处理也可能会发送给另外一台服务器的RAC组件处理,处理完请求后,RAC会通过集群软件来访问我们的共享存储设备。如下图所示:
结构图中共享存储设备类型说明:
RAW:裸设备;
OCFS:ORACLE集群文件系统
NAS:网络区域存储
ASM:自动存储管理
逻辑结构上看,每一个参加集群的节点有一个独立的instance(数据库实例),这些instance访问同一个数据库。节点之间通过集群软件的通讯层(communication layer)来进行通讯。同时为了减少IO的消耗,存在了一个全局缓存服务,因此每一个数据库的instance,都保留了一份相同的数据库cache。
RAC中的特点是:
2每一个节点的instance都有自己的SGA
2每一个节点的instance都有自己的backgroundprocess
2每一个节点的instance都有自己的redologs
2每一个节点的instance都有自己的undo表空间
2所有节点都共享一份datafiles和controlfiles
2)缓存融合技术(cache fusion)的运用原理及作用
缓存融合技术在RAC中的作用
2保证缓存的一致性
2减少共享磁盘IO的消耗
因此在RAC环境中多个节点保留了同一份的DB CACHE
缓存融合(Cache fusion)工作原理
2其中一个节点会从共享数据库中读取一个block到db cache中。
2这个节点会在所有的节点进行交叉db block copy。
2当任何一个节点缓存被修改的时候,就会在节点之间进行缓存修改。
2为了达到存储的一致最终修改的结果也会写到磁盘上。
存储文件系统要求及存储位置要求表
类别 |
支持存储类型 |
存储位置 |
Clusterware软件 |
OCFS2,普通文件系统,NFS |
共享或本地磁盘 |
Vote disking、OCR |
OCFS2,raw device,NFS |
共享磁盘 |
数据库软件 |
OCFS2,普通文件系统,NFS |
共享或本地磁盘 |
数据文件 |
OCFS2,raw device,ASM,NFS |
共享磁盘 |
备份恢复文件 |
OCFS2,普通文件系统,ASM,NFS |
共享或本地磁盘 |
闪回日志文件 |
OCFS2,ASM |
共享磁盘 |
归档日志文件 |
OCFS2,普通文件系统,ASM,NFS |
共享或本地磁盘 |
总结:
1、无论是集群系统软件文件、还是集群系统的VOTING以及OCR数据文件、还是数据库软件文件、数据库数据文件以及用于数据库恢复的恢复文件都可以使用网络文件系统NFS来存储。(建议:使用NFS系统作为RAC的存储系统时,最好有NAS系统)
2、数据库软件文件可以采用共享或存储在本地文件系统,如果采用的是本地磁盘来存储的话,那么每个独立的节点都有一个独立的ORACLE_HOME,如果采用共享磁盘来存储的话,则采用的必须是OCFS2文件系统来保存,所有的节点共享一个oracle_home。
3、其它的数据文件包括voting、ocr、db-data、recovery-data都必须保存到共享磁盘。可以全部选用OCFS2文件系统作为它们的存储系统。
系统及存储规划
服务器主机名 |
jason1 |
jason2 |
公共IP地址(eth0) |
192.168.12.241 |
192.168.12.242 |
虚拟IP地址(eth0) |
192.168.12.243 |
192.168.12.244 |
私有IP地址(eth1) |
10.10.10.241 |
10.10.10.242 |
Oracle rac sid |
JASON1 |
JASON2 |
集群实例名称 |
JASON |
|
OCR(oracle集群注册表) |
/dev/raw/raw1 |
/dev/sdb1 150M |
/dev/raw/raw2 |
/dev/sdc1 150M |
|
表决磁盘(voting disk) |
/dev/raw/raw3 |
/dev/sdd1 200M |
/dev/raw/raw4 |
/dev/sde1 200M |
|
/dev/raw/raw5 |
/dev/sdf1 200M |
|
ASM |
/dev/raw/raw6 |
/dev/sdg1 10G |
/dev/raw/raw7 |
/dev/sdh1 10G |
|
/dev/raw/raw8 |
/dev/sdi1 10G |
|
操作系统 |
Red Hat Enterprise Linux 5.6_x86_64 |
|
数据库 |
Oracle Database 10g Enterprise Edition Release 10.2.0.5.0 (64位) |
备注:以上理论部分整理自网络