Oracle RAC 日常管理+排错命令大全

Oracle RAC 日常管理+排错命令大全

区分两类命令:

  1. GI集群层:grid 用户,crsctl / srvctl / oifcfg / olsnodes
  2. 数据库层 :oracle 用户,sqlplus(gv$视图)、asmcmd
    日志位置先记牢:
  • GI日志:$GI_HOME/log/$(hostname)/
  • ASM日志:$ORACLE_BASE/diag/asm/+asm/+ASM*/trace/
  • DB告警日志:$ORACLE_BASE/diag/rdbms/<dbname>/<inst>/trace/alert_*.log

一、集群整体状态(grid用户)

复制代码
# 查看全部集群资源,最常用,快速看哪些OFFLINE
crsctl status resource -t

# 查看所有节点
olsnodes
olsnodes -n      # 显示节点编号
olsnodes -i      # 显示VIP

# 检查本地CRS堆栈
crsctl check crs
# 检查全部节点CRS堆栈
crsctl check cluster -all

# 查看网卡集群注册信息(私网/公网)
oifcfg getif

二、srvctl:管理数据库、实例、ASM、VIP、SCAN、监听

复制代码
# RAC数据库配置/状态
srvctl config database -d DBRAC
srvctl status database -d DBRAC

# 单个实例启停状态
srvctl status instance -d DBRAC -i DBRAC1
srvctl start instance -d DBRAC -i DBRAC1
srvctl stop instance -d DBRAC -i DBRAC1

# 启停整个RAC库(全部实例)
srvctl stop database -d DBRAC
srvctl start database -d DBRAC

# ASM状态
srvctl status asm
srvctl config asm

# SCAN
srvctl status scan
srvctl config scan

# VIP
srvctl status vip -n node1

# 监听
srvctl status listener
srvctl config listener

# 数据库服务service(业务连接用)
srvctl status service -d DBRAC
srvctl start service -d DBRAC -s app_srv
srvctl stop service -d DBRAC -s app_srv

三、ASM运维(grid用户 asmcmd)

复制代码
asmcmd lsdg               # 查看磁盘组状态、剩余空间
asmcmd lsdsk              # 查看asm磁盘设备
asmcmd ls +DATA           # 浏览磁盘组文件
asmcmd lsof               # 查看asm打开文件

# 监控rebalance重平衡进度(加盘后)
sqlplus / as sysasm
select inst_id,operation,state,power,sofar,est_minutes from gv$asm_operation;

四、SQLplus RAC排错核心视图 gv$(全集群视图,oracle用户 sqlplus / as sysdba)

gv$ = 全部节点;v$ = 仅当前登录实例

复制代码
-- 查看所有RAC实例状态
select inst_id,instance_name,host_name,status,thread#,undo_tablespace from gv$instance;

-- 查看集群所有会话,找阻塞、活跃会话
select inst_id,sid,serial#,username,status,event from gv$session where status='ACTIVE';

-- RAC杀其他节点会话,必须带@inst_id
alter system kill session 'sid,serial#,@inst_id';

-- GC等待!RAC性能头号指标,缓存融合等待
select inst_id,event,count(*) from gv$system_event where event like 'gc%' group by inst_id,event order by count(*) desc;

-- 查看redo线程,每个实例对应一个thread#
select inst_id,thread#,status,group# from gv$thread;

-- 归档日志状态,各实例归档情况
select inst_id,thread#,sequence#,first_time,status from gv$archived_log order by thread#,sequence# desc;

-- 锁等待、阻塞会话
select inst_id,sid,serial#,blocking_session,event from gv$session where blocking_session is not null;

-- 数据文件、表空间全集群
select inst_id,file#,name,status from gv$datafile;

-- SGA PGA 参数各实例
select inst_id,name,value from gv$parameter where name in ('sga_target','pga_aggregate_target');

-- 回滚段undo状态
select inst_id,undo_tablespace,status from gv$undo_stat;

五、RAC故障排查常用工具

复制代码
# 实时监控数据库
oratop -i 3

# AWR报告
# RAC全局AWR(多实例汇总)
@?/rdbms/admin/awrgdrpt.sql
# 单实例AWR
@?/rdbms/admin/awrrpt.sql

# ADDM
@?/rdbms/admin/addmrpt.sql

六、常见故障快速排查命令

1)资源异常,有OFFLINE资源

复制代码
crsctl stat res -t | grep OFFLINE

看是DB实例、ASM、VIP、SCAN、监听哪一个异常。

2)实例启动失败

  1. 看数据库alert日志

  2. 检查ASM磁盘组是否挂载 asmcmd lsdg

  3. 检查spfile是否在ASM上

    show parameter spfile;

3)节点驱逐、节点重启(RAC最头疼故障)

节点evict驱逐:私网心跳、投票盘、IO超时导致节点被集群踢出

复制代码
# GI告警日志查看evict、CSS心跳报错
tail -300 $GI_HOME/log/$(hostname)/alert*.log

# 查看CSS投票盘信息
crsctl query css votedisk

排查方向:私网网卡、网络抖动、磁盘IO慢、OCR/Voting磁盘访问超时。

4)OCR投票盘检查

复制代码
ocrcheck
crsctl query css votedisk

5)日志快速抓取

复制代码
# GI日志过滤ERROR
grep -i error $GI_HOME/log/$(hostname)/alert*.log

七、RAC高频报错快速定位

  1. ORA‑29701:实例无法连接CSS集群,GI异常,检查CRS、CSSD进程
  2. GC Buffer Busy:RAC多节点热块冲突,业务调优
  3. 节点Evict驱逐:优先看GI alert日志,检查私网、voting磁盘IO
  4. 实例mount失败:检查ASM磁盘组是否MOUNT,spfile是否可访问

八、巡检简易检查清单(命令组合)

复制代码
crsctl stat res -t
olsnodes
srvctl status database -d DBRAC
asmcmd lsdg
sqlplus / as sysdba <<EOF
select inst_id,instance_name,status from gv\$instance;
select inst_id,thread#,status from gv\$thread;
EOF

重要提醒:

  • 操作集群尽量优先使用srvctl,不要直接sqlplus启停RAC实例,防止CRS资源状态不一致。
  • 不要直接操作系统层面kill GI相关进程,优先crsctl/srvctl。
相关推荐
CoderYanger5 小时前
Java EE 进阶:8.MyBatis 操作数据库(入门)(第二弹)
java·数据库·spring boot·spring·面试·java-ee·mybatis
wafrdggh8 小时前
2026电商快递批量查询怎么用?固乔助手模板设置评测
大数据·数据库·小程序
一个天蝎座 白勺 程序猿9 小时前
KingbaseES数据库归档重做日志文件管理:从配置到运维的实战指南
运维·数据库·oracle·kingbasees·金仓数据库
龙腾AI白云12 小时前
仿真到现实(Sim-to-Real)迁移:跨越仿真与现实鸿沟
数据库·机器学习·plotly·知识图谱·tornado
freejackman14 小时前
【实战二】字段级血缘追踪:拆解 AST 迷局,精准穿透函数链与子查询
大数据·数据库·sql
.痞老板.15 小时前
mysql初阶--增删改查操作
数据库·mysql
lambo mercy21 小时前
AI智能租房助手
数据库
浮生若城1 天前
MySQL:库与表的操作
数据库·mysql
薛定谔的悦1 天前
光储充一体机从主控到执行单元的双层架构
数据库·mongodb·架构
数字新视界1 天前
动环监控信创适配在智能机房管理中的应用价值与未来展望
大数据·服务器·数据库·动环监控系统·动力与环境监控系统