你可能不知道的关于Oracle Rac的事...
Oracle 11g Rac进程启动梳理
- RAC集群软件组件
- CRS
- CSS
- RAC集群启动原理
- 启动过程
- 进程展示
- 顺序分析
- RAC故障快速定位
- 写给读者
RAC集群软件组件
Oracle Rac集群软件有两大组件,分别为CRS和CSS组件。
CRS
CRS作用是管理集群内高可用操作的基本程序。
- CRS管理的任何事务都被称之为资源,数据库、实例、监听、VIP地址、应用进程等;
- CRS是根据存储于OCR中的资源配置信息来管理这些资源【当某一资源状态改变时,CRS进程生成一个事件】
CSS
CSS作用是管理集群节点的成员信息。
- 控制哪个节点为集群成员
- 节点加入或离开集群时通知集群成员来控制集群的配置信息
- 进程故障会导致集群重启
RAC集群启动原理
启动过程
- 操作系统守护进程 /sbin/init 调用集群软件 /etc/init.d/init.ohasd启动脚本。
- 集群软件启动脚本启动Oracle集群软件相应进程。
进程展示
RAC集群软件启动之后,分别有root用户和grid用户启动的后台进程。
# root用户启动的进程
[root@rac1 bin]# ps -ef | grep /u01/app/11.2.0/grid/bin | grep -v grep | grep -w root
root 23432 1 0 Nov27 ? 00:00:14 /u01/app/11.2.0/grid/bin/ohasd.bin reboot
root 23778 1 0 Nov27 ? 00:00:12 /u01/app/11.2.0/grid/bin/orarootagent.bin
root 23795 1 1 Nov27 ? 00:00:49 /u01/app/11.2.0/grid/bin/osysmond.bin
root 23822 1 0 Nov27 ? 00:00:02 /u01/app/11.2.0/grid/bin/cssdmonitor
root 23854 1 0 Nov27 ? 00:00:02 /u01/app/11.2.0/grid/bin/cssdagent
root 23988 1 1 Nov27 ? 00:01:02 /u01/app/11.2.0/grid/bin/ologgerd -M -d /u01/app/11.2.0/grid/crf/db/rac1
root 24375 1 0 Nov27 ? 00:00:08 /u01/app/11.2.0/grid/bin/octssd.bin reboot
root 24814 1 0 Nov27 ? 00:00:21 /u01/app/11.2.0/grid/bin/crsd.bin reboot
root 24973 1 0 Nov27 ? 00:00:12 /u01/app/11.2.0/grid/bin/orarootagent.bin# grid用户启动的进程
[root@rac1 bin]# ps -ef | grep /u01/app/11.2.0/grid/bin | grep -v grep | grep -v root
grid 23680 1 0 Nov27 ? 00:00:06 /u01/app/11.2.0/grid/bin/oraagent.bin
grid 23691 1 0 Nov27 ? 00:00:00 /u01/app/11.2.0/grid/bin/mdnsd.bin
grid 23713 1 0 Nov27 ? 00:00:01 /u01/app/11.2.0/grid/bin/gpnpd.bin
grid 23781 1 0 Nov27 ? 00:00:12 /u01/app/11.2.0/grid/bin/gipcd.bin
grid 23872 1 0 Nov27 ? 00:00:10 /u01/app/11.2.0/grid/bin/ocssd.bin
grid 24453 1 0 Nov27 ? 00:00:08 /u01/app/11.2.0/grid/bin/evmd.bin
grid 24922 24453 0 Nov27 ? 00:00:00 /u01/app/11.2.0/grid/bin/evmlogger.bin -o /u01/app/11.2.0/grid/evm/log/evmlogger.info -l /u01/app/11.2.0/grid/evm/log/evmlogger.log
grid 24984 1 0 Nov27 ? 00:00:05 /u01/app/11.2.0/grid/bin/oraagent.bin
grid 25142 1 0 Nov27 ? 00:00:00 /u01/app/11.2.0/grid/bin/scriptagent.bin
grid 25308 1 0 Nov27 ? 00:00:00 /u01/app/11.2.0/grid/bin/tnslsnr LISTENER_SCAN1 -inherit
grid 25360 1 0 Nov27 ? 00:00:00 /u01/app/11.2.0/grid/bin/tnslsnr LISTENER -inherit
顺序分析
观察以上两张图,我们可以得到如下信息:
从ohasd开始派生:
-> orarootagent: 负责管理所有root所拥有的ohasd资源的agent代理进程-> crsd: 负责管理集群资源的主要进程-> ctssd: 集群时间同步的服务进程-> diskmon: 磁盘监控进程-> acfs: asm集群文件系统程序-> cssdagent: 负责生成cssd的代理进程-> cssd: 集群同步服务进程-> oraagent: 负责管理所有oracle所拥有的属于crsd相关资源的代理进程-> asm resource: asm实例资源-> diskgroup: 用于管理、监控asm磁盘组使用的资源-> db resource: 用来监控、管理数据库和实例使用的资源-> scan listener: 监听器资源,在scan vip上进行监听-> listener: 节点监听器资源-> services: 用来监控和管理service使用的资源-> ons: oracle通知服务-> eons: 增强的oracle通知服务-> gsd进程: 向后兼容9i的资源-> gns(可选): 网格命名服务,该服务用于scan命名解析-> orarootagent: 负责管理所有root所拥有的属于crsd相关资源的代理进程-> network resource: 监控公共网络资源-> scan vip: scan vip资源-> node vips: 每个节点1个vipz资源-> acfs registery: 加载acfs资源-> gns vip(可选)-> oraagent: 负责管理所有oracle所拥有的ohasd资源的agent代理进程-> mdnsd: dns lookup时使用的进程-> evmd: 时间监控进程-> gipcd: 内联集成和内连接节点通信时使用的进程-> gpnpd: 即插即用主进程-> cssdmonitor: 与cssdagent共同负责监控cssd和节点健康-> cssmonitor: cssd进程监控进程
RAC故障快速定位
了解了RAC集群软件的启动顺序之后,我们定位问题的能力又上升了一大截啦!后续如果遇到集群上出现故障,那么我们便可以快速定位具体组件的日志,通过组件日志找到对应的问题,然后快速解决问题啦!
# 集群软件启动日志路径
[grid@rac1 ~]$ cd $ORACLE_HOME/log
[grid@rac1 log]$
[grid@rac1 log]$ ll
total 4
drwxr-xr-x 2 grid oinstall 6 Nov 22 00:14 crs
drwxrwx--T 5 grid asmadmin 71 Nov 23 00:36 diag
drwxr-xr-t 25 root oinstall 4096 Nov 22 23:55 rac1
[grid@rac1 log]$
# 进入指定实例日志目录下
[grid@rac1 log]$ cd rac1/
# 日志结构展示
[grid@rac1 rac1]$ tree
.
├── acfs
│ └── kernel
│ ├── acfs.log.0
│ └── file.order
├── acfslog
├── acfsrepl
├── acfsreplroot
├── acfssec
├── admin
├── agent
│ ├── crsd
│ │ ├── oraagent_grid
│ │ │ ├── oraagent_grid.log
│ │ │ ├── oraagent_gridOUT.log
│ │ │ └── oraagent_grid.pid
│ │ ├── oraagent_oracle
│ │ │ ├── oraagent_oracle.log
│ │ │ ├── oraagent_oracleOUT.log
│ │ │ └── oraagent_oracle.pid
│ │ ├── orarootagent_root
│ │ │ ├── orarootagent_root.log
│ │ │ ├── orarootagent_rootOUT.log
│ │ │ └── orarootagent_root.pid
│ │ └── scriptagent_grid
│ │ ├── scriptagent_grid.log
│ │ └── scriptagent_gridOUT.log
│ └── ohasd
│ ├── oraagent_grid
│ │ ├── oraagent_grid.log
│ │ ├── oraagent_gridOUT.log
│ │ └── oraagent_grid.pid
│ ├── oracssdagent_root
│ │ └── oracssdagent_root.log
│ ├── oracssdmonitor_root
│ │ └── oracssdmonitor_root.log
│ └── orarootagent_root
│ ├── orarootagent_root.log
│ ├── orarootagent_rootOUT.log
│ └── orarootagent_root.pid
├── alertrac1.log
├── client
│ ├── clsc_10.log
│ ├── clsc_1.log
│ ├── clsc1.log
│ ├── clsc_2.log
│ ├── clsc2.log
│ ├── clsc_3.log
│ ├── clsc3.log
│ ├── clsc_4.log
│ ├── clsc4.log
│ ├── clsc_5.log
│ ├── clsc_6.log
│ ├── clsc_7.log
│ ├── clsc_8.log
│ ├── clsc_9.log
│ ├── clscfg1.log
│ ├── clscfg.log
│ ├── clsc.log
│ ├── crsctl_grid.log
│ ├── crsctl_oracle.log
│ ├── crsctl_root.log
│ ├── crswrapexece.log
│ ├── css1.log
│ ├── css.log
│ ├── gpnptool_2736.log
│ ├── gpnptool_394.log
│ ├── gpnptool_400.log
│ ├── ocr_4187_7.log
│ ├── ocrcheck_9007.log
│ ├── ocrconfig_2096.log
│ ├── ocrconfig_29902.log
│ ├── ocrconfig_32279.log
│ ├── ocrconfig_4742.log
│ ├── oifcfg.log
│ └── olsnodes.log
├── crflogd
│ ├── crflogd.log
│ └── crflogdOUT.log
├── crfmond
│ ├── crfmond.log
│ └── crfmondOUT.log
├── crsd
│ ├── crsd.log
│ └── crsdOUT.log
├── cssd
│ ├── cssdOUT.log
│ └── ocssd.log
├── ctssd
│ ├── ctssdOUT.log
│ └── octssd.log
├── cvu
│ ├── cvulog
│ │ └── cvu20211122174808.log
│ └── cvutrc
│ ├── cvuhelper.log.0
│ └── cvutrace.log.0
├── diskmon
├── evmd
│ ├── evmd.log
│ └── evmdOUT.log
├── gipcd
│ ├── gipcd.l01
│ ├── gipcd.l02
│ ├── gipcd.l03
│ ├── gipcd.log
│ └── gipcdOUT.log
├── gnsd
├── gpnpd
│ ├── gpnpd.log
│ ├── gpnpdOUT.log
│ └── rac1.pid
├── mdnsd
│ ├── mdnsd.log
│ └── mdnsdOUT.log
├── ohasd
│ ├── ohasd.log
│ └── ohasdOUT.log
├── racg
│ ├── evtf.log
│ ├── racgeut
│ ├── racgevtf
│ └── racgmain
└── srvm
我们通过观察日志的结构,不难发现,日志存放的层级与集群启动的顺序是一一对应的,这对于我们快速排查问题提供了极大的便利!
写给读者
本文的目的是深入了解集群底层运行的过程,提高运维Oracle Rac集群的能力。
你可能不知道的关于Oracle Rac的事...相关推荐
- install npm 到某个文件下执行_你可能不知道的 npm 依赖管理那些事
点击上方蓝字关注我们 npm 是 Node.js 默认的.以 JavaScript 编写的包管理工具,如今,它已经成为世界上最大的包管理工具,是每个前端开发者必备的工具.不知你是否遇到过下面问题: 哎 ...
- 你可能不知道的Spring Boot那点事
当前微服务的概念被炒的非常的火热,而Spring Boot则被赋予了"为微服务而生"的称号,相信看这篇文章的你,对微服务或者Spring Boot都有所了解了,我在该篇中也不再赘述 ...
- 我的世界java版移除猪灵了吗_我的世界:猪灵拥有三种类型?关于猪灵,你可能不知道的7件事...
猪灵是1.16下界更新第二个快照版本20w07a加入的下界新生物,虽然上线时间已经有两个月之久,但对于大部分国内玩家来说却还是一个陌生的存在.为了让玩家更加的了解猪灵,迷恋整理了7件,你可能不知道的关 ...
- oracle磁盘iops,磁盘性能,你可能不知道的IOPS计算方法
每个I/O 请求到磁盘都需要若干时间.主要是因为磁盘的盘边必须旋转,机头必须寻道.磁盘的旋转常常被称为"rotational delay"(RD),机头的移动称为"dis ...
- 安装oracle后在cmd,在WINDOWS上安装ORACLE RAC的注意事项
在WINDOWS上安装ORACLE RAC的注意事项 1.检查防火墙和杀毒软件 如果不关掉防火墙,在安装CRS时,在"Oracle Clusterware Configuration Ass ...
- oracle rac理论知识
oracle数据库高可靠性高性能的特性是很多企业需要的,这些年一直给各大政府企业做oracle咨询与规划,实施安装以及维护,回头看看,自己已经忘记大部分oracle rac的整体具体架构理论知识,现在 ...
- 数据库周刊36丨2020年8月数据库排行;云厂商腾讯云增速第一;OceanBase集群安装;Oracle RAC调整网卡MTU值;不改代码解决sql性能问题;Mysql索引研究;TiDB电子书……
热门资讯 [1.2020年8月数据库排行:PolarDB.GoldenDB发力,云数据库和自主可控成主流] [摘要]2020年8月号的国产数据库流行度排行榜发布.本月的前9位排序依旧没有任何变化.达梦 ...
- 酷炫时钟_您不知道的11种酷炫形状
酷炫时钟 Whether it's in nature, architecture or the products we use, cool shapes are everywhere around ...
- oracle RAC环境 1521端口NAT映射后,端口能通,数据库报ORA-12541
在工作中,经常会遇到oracle 1521端口NAT映射后,端口能通,数据库报ORA-12541错误. 用tnsping 数据库显示正常. 联系对方说检查lisenter配置,数据库侦听是正常,内网是 ...
最新文章
- qq图片选择效果的处理
- 云服务器适合什么样的用户?
- BZOJ 1084: [SCOI2005]最大子矩阵
- c语言fgetpos的参数,C语言fgetpos()函数:获得当前文件的读写指针(转)
- Java的MD5加密和解密
- linux es数据库 head,elasticsearch安装es-sql插件
- DotNet中的集合对象(2): Hashtable
- 微信小程序生成海报功能
- msc用户无法登陆问题记录
- 你知道如何判定一个大整数为素数吗?——米勒拉宾素数判定算法
- Docker更改镜像源
- 东方式插花注重花材所表达的内容美
- CSS选择器大全包含nth-child和nth-of-type的区别
- 生活,寻找幸福的感觉
- 网络安全现状与未来蓝图||建立高效的网络安全体系
- 三剑客之Docker Swarm
- 详细解读petalinux的配置
- 删除文件右键及打开方式下的HBuiderX 已成功
- C语言程序设计(理论课)第八章 函数与宏定义
- Angular+Node实战之登陆注册
热门文章
- Spark大数据技术与应用期末总结大题
- 亚马逊买家号注册流程
- 计算机锁定不能强制选项无法关机,Win10无法关机只能按电源强制关机的解决方法...
- ERP中英文缩写汇总
- 计算机数学的外文翻译,计算机 数学 外文翻译 外文文献 英文文献 模糊随机森林.doc...
- ubuntu16.04 update 出现 aborted(core dumped)错误
- 【2】SCI易中期刊推荐——遥感图像领域(中科院2区)
- 如何打印菱形图案(C语言)
- 点到点轨迹规划——三次曲线,五次曲线,梯形曲线,S曲线
- 论语 灵公篇(笔记)