什么是inittab
类似于oratab,用于RAC环境中crs服务的启动。负责启动的行如下:
实用命令:
crsctl enable has #开启Oracle High Availability service自动启动 |
什么是OHASD
ohasd是指Oracle High Avaliability Service Daemon。在集群层面,ohasd孵化三种服务。
cssdagent (孵化cssd)
orarootagent (孵化cssdMonitor,ctssd,crsd)
oraagent (孵化mdnsd,gpnpd,evmd,asm)
实用命令
crsctl enable has #开启Oracle High Availability service自动启动 |
OCR 和 OLR
OCR是Oracle Cluster Registry。它保存集群信息,例如节点成员、软件版本、voting disk位置、RAC数据库状态、监听、实例、服务等等。OCR放在ASM中。
只有可以访问OCR,ASM才可以启动,但是OCR只有在ASM启动后才可以访问。这种悖论情况,Oracle如何处理的?
答案是使用OLR,Oracle Local Registry。这是放置在本地文件系统的OCR文件的多路复用。
OLR保存了诸如CRS_HOME、GPnP、active version、localhost version、OCR最近一次备份(时间和位置)、节点名称等等的信息。
OCR&OLR的位置
#cat /etc/oracle/ocr.loc #OCR file Details
ocrconfig_loc=<+ASM_Location>
local_only=FALSE
#cat /etc/oracle/olr.loc#OLR file Details
olrconfig=<file_name_with_location.olr>
crs_home=<CRS_HOME_Location>
实用命令
注意,下面一些命令需要重启服务才能生效。
ocrconfig -showbackup # OCR备份位置 |
什么是voting Disk
节点加入集群、节点fails(也许是被驱逐)、如果配置了GNS,则需要分配VIP……
以上等等的情形,都需要用到voting disk。voting disk保存集群中的节点信息。当启动crs服务时,在OCR的帮助下,将在投票磁盘中投票(只标记出席者)。
voting disk只做两个工作
动态 - 心跳信息
静态 – 集群中节点信息
实用命令
dd if=Name_of_votingdisk of=Name_of_votingdisk_backup #备份voting disk |
什么是CRS
CRSD是Cluster Resource Service Daemon。它是一个进程,职责是监控、停止、启动以及failover各种资源。此过程维护OCR,并在即将进行任何故障转移时负责重新启动资源。
实用命令
crs_stat -t -v #检查crs资源 |
什么是CSSD
Cluster Synchronization Service Daemon 。负责集群节点间的通信。CSSD会监控所有节点的心跳信息。
示例:
一个两节点的集群。CSSD监控所有这俩节点是否可以彼此通信。如果一个节点down了,CSSD进程会将此信息报告给CRS,这样CRS就知道一个节点down了。
实用命令
crsctl stop css #停止css |
什么是CTSSD
Cluster Time Synchronization Service Datemon 。这个服务是默认以观察者模式运行。如果时间有差异,将不会做任何动作。如果要将此服务运行在active模式,需要将其他所有时间同步服务停止(例如NTP)。
以我的经验来说,建议将此服务默认为观察者模式,因为如果是active模式,当时间差异很大时,ctssd进程可能会终止,有时由于时间差异,crsd服务可能不会启动成功。待确认
实用命令
cluvfy comp clocksync -n all -verbose #检查所有节点间时间同步情况 |
什么是VIP
Vitrual IP address。Oracle使用VIP来进行数据库层的访问。当有应用终端连接进来时,使用VIP。
假设一个节点的物理IP down了,根据协议,将需要90秒的时间才能获取连接。这种情况下,VIP就排上用场了。
假设一个节点的VIP down了,那么连接将被route到active的节点上。
VIP必须和public IP在相同的网段。VIP用于RAC failover和RAC管理。
实用命令
srvctl start vip -n <node_name> -i <VIP_name> #启动VIP |
SCAN IP和Listener
SCAN就是Single Client Access Name。SCAN ip必须有相同的子网掩码。建议三个SCAN ip。Scan listener上的负载均衡使用least_recently_loaded算法实现。
SCAN IP的主要作用是,当集群发生改变时(例如添加删除节点),应用端连接配置无需变动。
实用命令
srvctl config scan #检索(retrieves) scan监听配置 |
什么是ologgerd
cluster logger service daemon,也叫做cluster logger service。这个logger service将数据写入到master node。并且选择其他的node作为standby。如果nodes之间有网络连接问题,并且无法连接到master node,那么其他的node将获取所有权。
实用命令
oclumnon manage -get master #找出主节点 |
什么是sysmon
收集本地节点的信息。每个节点都各自收集,并发送到master loggerd。这些信息包括cpu 、 memory usage、 OS level 、 disk、process、file system等等。
什么是EVMD
Event volume manager daemon。此进程处理事件信息。它发送和接收集群中所有其他节点之间的资源状态更改信息。和ONS组件协同工作。
实用命令
evmwatch -A -t "@timestamp @@" #查找evmd中产生的事件信息 |
什么是MDNSD
Multicast Domain name service 。
这个进程被gpndp用来定位集群中的profiles(locate profiles in the cluster);
也被GNS用来进行名称解析(name resolutions)。
mdsnd更新初始化目录中的pid文件(updates the pid file in init directory )。
什么是ONS
Oracle Notification Service 。ONS使得用户方便的发送SMS、email、声音讯息和fax信息。
ONS会发送数据库、实例的状态信息,负载均衡的信息,ONS同时会与其他节点的daemons进行通信,以便通知数据库状态信息。
This is started as part of CRS as part of nodeapps。
ONS作为node application运行,每个节点都有自己的ONS配置。
实用命令
srvctl status nodeapps #nodeapps的状态信息 |
什么是OPROCD
Oracle process monitor daemon。oprocd监控集群节点的系统状态。
简单来说,是指监控使用重新启动命令关闭服务器电源并打开服务器电源。OPROCD的主要变化是11gR2中的cssd代理。
实用命令
$CRS_HOME/oprocd stop #停止 |
什么是FAN
Fast application notification。cluster/instance/node的任何状态变动都会由事件管理器触发事件,并由ONS传播。这个事件称为FAN event。这个功能是从10g开始引进的,目的是实现实时报警。FAN使用ONS来进行提醒。
实用命令
onsctl ping #检查ons运行与否 |
什么是TAF
Transparent Application failover 。当rac中节点down了后,查询语句会failover到active节点上。但是TAF不支持insert、delete、update以及alter session等语句。临时对象以及pl/sql包会在failover时丢失。
在TAF中有两种failover方法:
basic failover:单节点连接。这种方式不会超载。终端用户会感受到延迟完成transaction。
preconnect failover:同时连接到主&备节点。这种方式failover会很快。同时会有超载现象,因为微了实现最小延迟切换,语句需要准备好完成transaction。
实用命令
srvctl add service -d <dbname> -s <name_for_service> -r <instance_name> -p <policy_specification>
|
什么是FCF
Fast connection Failover。是应用层的故障切换进程。这将自动订阅FAN事件,这将有助于立即响应数据库集群中的up和down事件。立即清除所有失败的应用程序,以便该应用程序立即收到失败消息。清理后,如果收到新连接,则在负载平衡的情况下它将到达活动节点。
什么是GCS(LMSn)
Global cache service。
GCS抓取数据块的信息,以及不同实例的访问权限。通过维护全局访问来进行维护。
当数据块从一个实例传输到另一个实例时,GCS发挥其作用。
GCS主要应用场景:
B节点有一个连接,访问了T1表的数据块。
现在A节点也需要访问T1表的数据块,不需要从数据文件夹中读取数据,可以将B节点实例的数据块传输到A节点这里来。
什么是GES(LMD)
Global equence service。包含了所有节点上library和dictionary caches的信息。GES管理transaction locks、table locks、library cache locks、dictionary cache locks、database mount lock。
什么是GRD
Global resource Directory。GES和GCS共同维护GRD。记录资源和队列的信息。
GRD是一个内部数据库,记录和存储数据块的当前状态。当一个块从本地cache传输到另一个实例的cache时,GRD会被更改。
GRD信息有:
Data block identifiers
location of most current version
modes of the data blocks (Null , Shared , Exclusive)
The roles of the data blocks (local or global ) held by eash instance
buffer caches on multiple nodes in the cluster
GRD保持在每个实例的内存中。每个实例管理这个directory的一部分。这种分布式特性是RAC容错的关键。
什么是GPNPD
grid plug and play daemon。
It is used to establish the correct global personality of a node.
GPNP profile位于$CRS_HOME/gpnp/<node_name>/profile/peer/profile.xml。
这个profile包含了集群名称、主机名、网络配置文件、ocr等等信息。
如果我们对voting disk做了任何改动,这个GPNP profile都会被更新。
实用命令
gpnptool ver #检查版本信息 |
为什么是Diskmon
当ocssd启动后,Disk monitor持续运行。并且它监视并执行Exadata存储服务器(此服务器根据Exadata称为单元)的I / O防护。自ocssd启动以来,此过程将一直运行,因为exadata单元可以随时添加到任何群集中。
实用命令
crsctl stat res ora.diskmon #检查diskmon状态 |