专业编程教程与实战项目分享平台

网站首页 > 技术文章 正文

ORACLE RAC基础知识之网格架构 oracle rac架构图

ins518 2024-10-12 21:03:44 技术文章 8 ℃ 0 评论

OCSSD:Oracle Cluster Synchronization Services Daemon 集群同步服务守护进程。

ORACLE 集群组件的目录位于:

$GRID_HOME/log/<hostname>/

ORACLE 网格架构的命令位于:

$GRID_HOME/bin/

执行ORACLE RAC集群和数据库的健康检查:

cd $GRID_HOME/bin/

./cluvfy comp healthcheck

查看数据库的状态:

su - oracle

sqlplus / as sysdba

select name from v$database;

svrctl status database -d $database_name;

查看数据库实例的状态:

srvctl status instance -d $database_name -i $instance_name

srvctl status instance -d $database_name -n <hostname>

查询数据库信息:

srvctl config database -d $database_name

查询监听器的配置信息:

srvctl config listener -l LISTENER

ORACLE查看节点之间的misscount配置:

crsctl get css misscount

ORACLE网络心跳的延时默认时间是30秒。

OCSSD是一个提供以及管理Cluster Synchronization Services服务的Linux 进程。一旦这个进程失败,将导致节点重启。CSS服务提供2种心跳机制:①:网络心跳②:磁盘心跳。两种心跳都有最大延时,网络心跳的延时叫MC(Misscount),磁盘心跳的最大延时叫IOT(I/O Timeout)。这两个参数都以秒为单位,缺省情况下MC(Misscount)<DiskTimeout。

crectl get css disktimeout

ORACLE RAC磁盘心跳的时间是200秒。

网络心跳通过私有网络检查节点的状态。如果私有网络硬件、软件导致集群节点间私有网络在一定时间内无法正常通信,由此导致脑裂。由于集群环境中的存储为共享存储,因此此时必须将故障节点从集群中隔离出来,以避免数据灾难。

集群各节点间内联网络延迟大于30秒,ORACLE就认为节点间出现了脑裂。ORACLE通过投票算法决定把集群中的哪个故障节点踢出集群。

如果集群中的投票票数相同,那么要去争取共享磁盘中的Quorum Device表决磁盘。最早到达表决磁盘的请求被最先满足,争取到表决磁盘的票数。最先获得Quorum Device表决磁盘的节点票数计为2票。

ORACLE集群每个节点每一秒钟会更新一次表决磁盘,共享的表决磁盘用来检测磁盘心跳。如果OCSSD进程更新表决磁盘的时间超过200秒,也就是超过Disktimeout设置的值,那么ORACLE会认为表决磁盘脱机,同时在Clusterware的告警日志中生成表决磁盘的脱机记录。如果当前节点的表决磁盘脱机的个数小于在线表决的个数,这个节点能够幸存。如果当前节点的表决磁盘脱机的个数大于在线表决的个数,那么Clusterware认为磁盘心跳出现问题,故障节点会被逐出集群,执行自动修复过程。

Oracle Cluster Synchronization Services 集群同步服务的misscoint网络心跳时间是30秒,磁盘超时Disktimeout是200秒。

ORACLE验证集群是否是flex集群:

crsctl get node role status -all

查看Oracle 集群中的节点角色:

crsctl get cluster mode status

列出Oracle集群中的所有节点及其角色:

crsctl get node role status -all

ORACLE RAC查看是否启用gns:

srvctl status gns

ORACLE集群件控制工具:CRSCTL Oracle Clusterware Control

查看ORACLE RAC节点的当前角色:

crsctl get node role config

查看flex集群某个特定节点的角色:

olsnodes -s -t -n

crsctl get node role status -n <hostname>

查看ORACLE RAC集群节点的详细信息:

crsctl status server <hostname> -f

检查集群是否启用了Oracle Flex ASM:

asmcmd showclustermode

使用srvctl status显示ASM 实例运行在哪些集群节点上:

srvctl status asm -detail

查看flex ASM配置详情:

srvctl config asm

查看asm客户端连接asm实例情况:

su - oracle

sqlplus / as sysdba

select instance_name,db_name,status from v$asm_client;

鼓励的话语:钱谁都能挣到,可是幸福不是谁都能给。夫妻在一起,艰苦的时候考验的是女人,富贵的时候考验的是男人!

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表