什么是inittab

类似于oratab,用于RAC环境中crs服务的启动。负责启动的行如下:
实用命令:

crsctl enable has #开启Oracle High Availability service自动启动
crsctl disable 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自动启动
crsctl disable has #关闭Oracle High Availability service自动启动
crsctl config has#检查配置信息
cat /etc/oracle/scls_scr/<node_name>/root/ohasdstr#检查是否启用
cat /etc/oracle/scls_scr/<node_name>/root/ohasdrun#检查如果node失败是否重启

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备份位置
ocrconfig -export <File_name_with_full_location.ocr> #备份OCR
ocrconfig -restore <File_name_with_full_location.ocr> #恢复OCR
ocrconfig -import <File_name_with_full_location.dmp> #导入OCR元数据
ocrcheck -details #显示OCR详细信息
ocrcheck -local #显示OLR详细信息
ocrdump -local <File_name_with_full_location.olr> #dump OLR
ocrdump <File_name_with_full_location.ocr> #dump 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
crsctl query css votedisk #检查voting disk详情
crsctl add css votedisk path_to_voting_disk #添加voting disk
crsctl add css votedisk -force #集群down的情况下添加voting disk
crsctl delete css votedisk <Filename_with_password_with_filename> # 删除voting disk
crsctl delete css votedisk -force # 集群down的情况下删除voting disk
crsctl replace votedisk <+ASM_disk_group> # 替换voting disk

什么是CRS

CRSD是Cluster Resource Service Daemon。它是一个进程,职责是监控、停止、启动以及failover各种资源。此过程维护OCR,并在即将进行任何故障转移时负责重新启动资源。
实用命令

crs_stat -t -v #检查crs资源
crsctl status res -t #检查crs资源,更详细,最好使用该命令
crsctl enable crs #启用重启后自动重启
crsctl disable crs #金庸重启后自动重启
crsctl check crs #检查crs服务
crsctl stop crs #停止当前节点的crs服务
crsctl stop crs -f #强制停止crs服务
crsctl start crs #启动当前节点crs服务
crsctl start crs -excl #当丢失votingdisk时,以exlusive模式启动crs。
crsctl stop cluster -all #关闭集群节点上所有的crs服务
crsctl start cluster -all #启动集群节点上所有的crs服务
olsnodes #得到集群的节点信息
oclumon manage -get master #得到主节点信息
cat $CRS_HOME/crs/init/<node_name>.pid #查看crs进程的PID

什么是CSSD

Cluster Synchronization Service Daemon 。负责集群节点间的通信。CSSD会监控所有节点的心跳信息。
示例:
一个两节点的集群。CSSD监控所有这俩节点是否可以彼此通信。如果一个节点down了,CSSD进程会将此信息报告给CRS,这样CRS就知道一个节点down了。
实用命令

crsctl stop css #停止css
crsctl disable css #禁用重启后自动启动css

什么是CTSSD

Cluster Time Synchronization Service Datemon 。这个服务是默认以观察者模式运行。如果时间有差异,将不会做任何动作。如果要将此服务运行在active模式,需要将其他所有时间同步服务停止(例如NTP)。
以我的经验来说,建议将此服务默认为观察者模式,因为如果是active模式,当时间差异很大时,ctssd进程可能会终止,有时由于时间差异,crsd服务可能不会启动成功。待确认
实用命令

cluvfy comp clocksync -n all -verbose #检查所有节点间时间同步情况
crsctl check ctss #检查服务状态以及timeoffset(ms)

什么是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
srvctl stop vip -n <node_name> -i <VIP_name> #停止VIP
srvctl enable vip -i vip_name #启用VIP
srvctl disable vip -i vip_name #禁用VIP
srvctl status nodeapps -n <node_name> #nodeapps的状态
srvctl status vip -n <node_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监听配置
srvctl config scan_listener #列出scan监听,包括端口
srvctl add scan -n <node_name> #添加一个scan监听
srvctl add scan_listener -p <Desired_port_number> #添加指定端口的scan监听
SQL> show parameter remote_lisenter ; #查找scan监听列表
srvctl stop scan #停止所有scan监听
srvctl stop scan_listener #停止一个或多个services ?
srvctl start scan #启动scan vip
srvctl start scan_listener #启动scan监听
srvctl status scan #确认scan VIP的状态
srvctl status scan_listener #确认san监听的状态
srvctl modify scan_listener #修改scan监听
srvctl relocate scan_listener -i <Ordinal_Number> -n <node_name> #在另外节点上relocate scan监听

什么是ologgerd

cluster logger service daemon,也叫做cluster logger service。这个logger service将数据写入到master node。并且选择其他的node作为standby。如果nodes之间有网络连接问题,并且无法连接到master node,那么其他的node将获取所有权。
实用命令

oclumnon manage -get master #找出主节点
oclumon mange -get reppath #找出repository logs的路径
oclumon manage -get repsize #获得repository的大小限制
oclumon showobjects #查找当前连接到loggerd的对象
oclumon dumpnodeview #给出详细的信息,包含
system,topconsumers,processes,devices,nics,filesystem status,protocol errors
oclumon dumpnodeview -n <ndoe1 node2> -last "HH:MM:SS" #根据条件查阅信息
oclumon dumpnodeview allnodes -last "HH:MM:SS" #查询所有nodes的信息

什么是sysmon

收集本地节点的信息。每个节点都各自收集,并发送到master loggerd。这些信息包括cpu 、 memory usage、 OS level 、 disk、process、file system等等。

什么是EVMD

Event volume manager daemon。此进程处理事件信息。它发送和接收集群中所有其他节点之间的资源状态更改信息。和ONS组件协同工作。
实用命令

evmwatch -A -t "@timestamp @@" #查找evmd中产生的事件信息
evmpost -u "<message here>" -h <node_name> #展示指定node的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的状态信息
cat $ORACLE_HOME/opmn/conf/ons.config #ons配置
$ORACLE_HOME/opmn/logs #ONS的日志位置

什么是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运行与否
osctl debug #得到ons详细信息
onsctl start #启动
onsctl stop #停止


什么是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>

  1. policy_specification : none , basic ,preconnect .
    SQL>SELECT machine, failover_type, failover_method, failed_over, COUNT(star) FROM gv$session GROUP BY machine, failover_type, failover_method, failed_over;
  2. 检查TAF状态

什么是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 #检查版本信息
gpnptool lfind #获得本地gpnpd server,检查是否运行
gpnptool get #读取profile
gpnptool check -p=$CRS_HOME/gpnp/<node_name>/profile/peer/profile.xml #检查配置是否有效


为什么是Diskmon

当ocssd启动后,Disk monitor持续运行。并且它监视并执行Exadata存储服务器(此服务器根据Exadata称为单元)的I / O防护。自ocssd启动以来,此过程将一直运行,因为exadata单元可以随时添加到任何群集中。
实用命令

crsctl stat res ora.diskmon #检查diskmon状态

  • No labels