爆肝!Oracle RAC 日常运维命令总结
1.1 集群维护(CRS)
CRS核心工具集位于$GRID_HOME/bin目录,Oracle推荐优先使用该目录工具($ORACLE_HOME中部分工具兼容但非首选),常用工具包括crsctl、crs_stat、diagcollection.pl、oifcfg等。
1.1.1 启停CRS
RAC默认配置CRS自动启动,手工启停需root用户执行,主要用于调试、OS维护或GI补丁操作。
- 单节点启停:
- 启动:
crsctl start crs - 停止:
crsctl stop crs(异常时加-f强制停止)
- 启动:
- 多节点批量启停(11g新增,支持所有集群资源):
- 启动所有节点:
crsctl start cluster -all - 停止所有节点:
crsctl stop cluster -all - 指定节点启停:
crsctl start/stop cluster -n 节点名1 节点名2
- 启动所有节点:
1.1.2 验证CRS状态
以下命令可检查集群及关键进程状态,grid或root用户均可执行:
- 检查集群运行状态:
$GRID_HOME/bin/crsctl check cluster - 检查CRS整体状态:
$GRID_HOME/bin/crsctl check crs - 检查ohasd进程状态:
$GRID_HOME/bin/crsctl check has - 检查ctssd进程状态:
$GRID_HOME/bin/crsctl check ctss- 注意:若采用NTP等第三方时间同步,ctss会显示“Observer mode”,属正常状态。
1.1.3 禁用/启用CRS自动启动
- 禁用自动启动:
$GRID_HOME/bin/crsctl disable crs - 启用自动启动:
$GRID_HOME/bin/crsctl enable crs
1.1.4 查看集群资源状态
11gR2新增功能,直观展示所有集群资源(数据库实例、ASM、VIP等)状态:
$GRID_HOME/bin/crsctl stat res -t
功能与旧版本crs_stat -t一致,输出更清晰。
1.1.5 集群网络配置(oifcfg)
用于管理集群网络接口,核心命令包括:
- 查看网络配置:
oifcfg getif - 删除网络接口:
oifcfg delif -global 网卡名/网段 - 设置网络接口:
oifcfg setif -global 网卡名/网段:网络类型(public/private) - 查看完整语法:
oifcfg -h
示例输出:
[grid@node1 ~]$ oifcfg getif
eth0 192.168.100.0 global public
eth1 10.10.17.0 global cluster_interconnect
1.1.6 集群诊断(diagcollection.pl)
一次性收集主机、OS、集群等组件诊断信息,默认收集完整信息,支持指定组件筛选:
- 仅收集CRS诊断信息:
$GRID_HOME/bin/diagcollection.pl --collect --crs
1.2 OCR管理
OCR存储集群数据库配置信息,核心操作包括备份、恢复、镜像维护及迁移,需root用户执行(部分查询支持grid用户)。
1.2.1 备份OCR
- 自动备份:默认每4小时备份1次,保留最近3份,每日/每周各保留1份备份。
- 手工备份:
$GRID_HOME/bin/ocrconfig -manualbackup - 查看备份信息:
$GRID_HOME/bin/ocrconfig -showbackup - 检查OCR完整性:
$GRID_HOME/bin/ocrcheck - 查看备份文件内容:先通过
ocrdump -backupfile 备份文件路径生成文本文件(默认名为OCRDUMPFILE),再查看该文件。
1.2.2 恢复OCR
当OCR损坏时,按以下步骤恢复:
- 所有节点停止CRS:
$GRID_HOME/bin/crsctl stop crs -f(异常时加-f) - 单个节点启动CRS至独占模式:
$GRID_HOME/bin/crsctl start crs -excl - 关闭crsd进程(若存在):
crsctl stop resource ora.crsd -init - 执行恢复:
$GRID_HOME/bin/ocrconfig -restore 备份文件路径 - 验证恢复结果:
$GRID_HOME/bin/ocrcheck - 关闭当前节点CRS:
$GRID_HOME/bin/crsctl stop crs -f - 正常启动所有节点CRS。
1.2.3 镜像维护(Primary/Mirror OCR)
OCR最多支持1个镜像(共2个磁盘:主OCR+镜像OCR),操作可在CRS运行时执行:
- 添加镜像:
$GRID_HOME/bin/ocrconfig -add +ASM磁盘组名- 注意:ASM磁盘组需满足4个条件:
- 冗余配置为External需≥300M、Normal≥600M、High≥900M;
- 所有节点均挂载该磁盘组;
- Compatible.asm参数≥11.2(可通过
alter diskgroup 磁盘组名 set ATTRIBUTE 'compatible.asm'='11.2';设置); - 所有节点GRID_HOME权限为6751(或
-rwsr-s—x)。
- 注意:ASM磁盘组需满足4个条件:
- 删除镜像:
$GRID_HOME/bin/ocrconfig -delete +ASM磁盘组名
1.2.4 迁移OCR
需先添加镜像,再替换主OCR路径,步骤如下:
- 添加镜像:
$GRID_HOME/bin/ocrconfig -add +镜像磁盘组名 - 迁移主OCR:
$GRID_HOME/bin/ocrconfig -replace +原主OCR磁盘组 -replacement +新主OCR磁盘组
1.2.5 OLR管理(11gR2新增)
OLR仅存储当前节点配置信息,管理命令在OCR命令基础上添加-local选项:
- 查看OLR状态:
$GRID_HOME/bin/ocrcheck -local - 备份/查看OLR备份:
ocrconfig -manualbackup -local、ocrconfig -showbackup -local
1.3 Voting Disk管理
11gR2后Voting Disk无需手工备份,变更后自动备份至OCR,核心操作通过crsctl命令执行。
- 查看Voting Disk信息:
$GRID_HOME/bin/crsctl query css votedisk - 迁移Voting Disk(仅支持ASM磁盘组间迁移):
$GRID_HOME/bin/crsctl replace css votedisk +目标ASM磁盘组名- 注意:Voting Disk在ASM上时,不支持
add/delete操作,仅可迁移至冗余度更高的磁盘组。
- 注意:Voting Disk在ASM上时,不支持
1.4 ASM维护
11gR2中ASM集成于GI软件,OCR和Voting Disk可存储于ASM,无需单独管理裸设备,核心操作包括实例管理、磁盘组维护等。
1.4.1 ASM实例管理
ASM实例默认随GI启动,核心参数与管理命令如下:
- 关键参数:
instance_type=ASM(必选,指定实例类型)instance_name=+ASM1(RAC环境命名规范,节点1为+ASM1,节点2为+ASM2)asm_power_limit=1(重平衡力度,0-11,默认1)asm_diskstring(磁盘搜索路径)asm_diskgroups(启动时自动挂载的磁盘组)
- 管理命令(srvctl工具):
- 查看状态:
srvctl status asm - 启动:
srvctl start asm - 停止:
srvctl stop asm - 查看语法:
srvctl 命令 -h
- 查看状态:
1.4.2 磁盘组维护
1. 创建磁盘组
切换至grid用户,登录ASM实例执行(支持3种冗余策略):
sqlplus '/as sysasm'
-- 外部冗余(依赖RAID)
create diskgroup 磁盘组名 external redundancy disk 'ASM磁盘路径1','ASM磁盘路径2';
-- 镜像冗余(Normal)
create diskgroup 磁盘组名 normal redundancy disk '路径1','路径2';
-- 三重冗余(High)
create diskgroup 磁盘组名 high redundancy disk '路径1','路径2','路径3';
- 其他节点挂载:
alter diskgroup 磁盘组名 mount; - 查看磁盘路径:查询
v$asm_disk.path字段。
2. 删除磁盘组
- 空磁盘组:
drop diskgroup 磁盘组名; - 含数据的磁盘组:
drop diskgroup 磁盘组名 including contents; - 验证删除:
select name from v$asm_diskgroup;
3. 挂载/卸载磁盘组
- 挂载:
alter diskgroup 磁盘组名 mount; - 卸载:
alter diskgroup 磁盘组名 dismount;(被使用时加force强制卸载) - 查看状态:
select name,STATE from v$asm_diskgroup;
4. 磁盘添加/删除
- 添加磁盘:
alter diskgroup 磁盘组名 add disk '磁盘路径/*'; - 删除磁盘:
alter diskgroup 磁盘组名 drop disk '磁盘名'; - 取消删除(未完成时):
alter diskgroup 磁盘组名 undrop disks;(加force删除后不可取消) - 查看磁盘状态:
select GROUP_NUMBER,DISK_NUMBER,MOUNT_STATUS,NAME,PATH from v$asm_disk;
5. 磁盘组重平衡
- 手动触发:
alter diskgroup 磁盘组名 rebalance power 11 wait;power:重平衡力度(0-11,不可超过asm_power_limit参数)wait:等待重平衡完成后返回(不加则立即返回,后台执行)
1.4.3 ASM工具
- asmca:图形化工具(11g新增),支持ASM实例创建、磁盘组管理等所有操作。
- asmcmd:命令行工具(11g增强),支持ls、du、cd等UNIX风格命令,可完成所有ASM管理操作,通过
help查看命令列表。
1.5 数据库维护
1.5.1 参数维护(共享SPFILE)
RAC默认使用共享SPFILE,各节点pfile($ORACLE_HOME/dbs/init${ORACLE_SID}.ora)指向该文件(如SPFILE='+ASM_DATA/racdb/spfileracdb.ora')。
- 参数格式:
实例名.参数名=值(*表示所有实例生效) - 修改命令:
alter system set 参数名=值 scope=[memory|spfile|both]
comment='备注' deferred sid=[实例名|*];
- 选项说明:
scope=memory:仅当前生效,重启丢失;scope=spfile:仅修改SPFILE,重启生效;scope=both:当前与重启后均生效;deferred:仅对新会话生效;sid=*:所有实例生效(默认)。
1.5.2 实例启停
1. srvctl工具(推荐,支持多实例)
- 启动数据库(所有实例):
srvctl start database -d 数据库名 - 停止数据库(所有实例):
srvctl stop database -d 数据库名 -o immediate(支持normal/transactional/abort) - 启停单个实例:
srvctl start/stop instance -d 数据库名 -n 实例名 -o immediate
2. sqlplus命令(仅当前实例)
- 启动:
sqlplus '/as sysdba' → startup - 停止:
sqlplus '/as sysdba' → shutdown [normal/immediate/abort]
1.5.3 UNDO表空间管理
RAC中每个实例需独立UNDO表空间:
- 查看当前UNDO表空间:
show parameter undo_tablespace; - 创建UNDO表空间:
create undo tablespace undo_实例名 datafile size 10m; - 切换UNDO表空间:
alter system set undo_tablespace='新UNDO表空间名';(仅当前实例生效,不可指定sid)
1.5.4 Redo Log管理
1. 在线日志(按实例分线程)
- 为当前实例添加日志组:
alter database add logfile group 组号 size 10m; - 为其他实例添加日志组:
alter database add logfile instance '实例名' group 组号 size 10m; - 删除日志组:
alter database drop logfile group 组号;(无需指定实例)
2. 归档日志
- 开启归档模式:关闭所有实例→启动单个实例至mount状态→
alter database archivelog;→启动所有实例。 - 日志切换:
- 当前实例:
alter system switch logfile; - 所有实例:
alter system archive log current; - 指定实例:
alter system archive log instance '实例名' current;
- 当前实例:
- 检查点操作:
- 所有实例:
alter system checkpoint;(等价于checkpoint global) - 当前实例:
alter system checkpoint local;
- 所有实例:
1.5.5 服务管理(11gR2推荐srvctl)
服务用于分组工作量,实现负载均衡,需oracle用户执行:
- 创建服务:
srvctl add service -d 数据库名 -s 服务名 -P BASIC -y AUTOMATIC -r 首选实例 -a 次选实例- 示例:
srvctl add service -d racdb -s ssfxdw -P BASIC -y AUTOMATIC -r racdb1 -a racdb2
- 示例:
- 启动服务:
srvctl start service -d 数据库名 -s 服务名 - 停止服务:
srvctl stop service -d 数据库名 -s 服务名
1.5.6 备份与恢复
1. 备份方式
- 冷备:关闭数据库后,备份数据文件、控制文件、归档日志、在线日志、参数文件。
- RMAN备份:支持全库备份、差异增量备份、累积增量备份。
2. 恢复方式
- 不完全恢复:基于时间点/日志序列的恢复。
- 完全恢复:恢复所有已提交数据。
3. 关键注意事项
- 实例恢复:需共享在线日志,正常实例利用异常实例日志恢复未写入数据块。
- 崩溃恢复:所有实例故障时,通过在线日志恢复。
- 介质恢复:需共享所有实例的归档日志。
4.5.7 监听管理
- 查看状态:
lsnrctl status - 启动:
lsnrctl start - 停止:
lsnrctl stop
1.6 告警日志查看
故障排查优先查看各层级告警日志,路径如下:
1. 集群软件日志
根目录:$GRID_HOME/log/节点名
- 核心日志:
alert节点名.log(集群告警日志,排查起点) - 进程日志:crsd/cssd/evmd目录下的同名日志(crsd.log、ocssd.log、evmd.log)
- 组件日志:racg目录(ONS、VIP等组件日志)、client目录(ocrcheck等工具执行日志)
2. ASM日志
路径:$ORACLE_BASE/diag/asm/+ASM/实例名/trace/alert_实例名.log
- 示例:
/oracle/app/oracle/diag/asm/+asm/+ASM1/trace/alert_+ASM1.log
3. 数据库日志
路径:$ORACLE_BASE/diag/rdbms/数据库名/实例名/trace/alert_实例名.log
- 示例:
/oracle/app/oracle/diag/rdbms/orcl/orcl1/trace/alert_orcl1.log
4. 监听日志
路径:$ORACLE_BASE/diag/tnslsnr/节点名/listener/alert/log.xml
- 也可通过
lsnrctl status查看“Listener Log File”字段获取路径。
1.7 Oracle 11g RAC 维护命令速查
1. 集群维护(CRS)
| 操作场景 | 命令语法 | 执行权限 | 注意事项 |
|---|---|---|---|
| 单节点启动 CRS | crsctl start crs |
root | 正常启动,无需额外参数 |
| 单节点停止 CRS | crsctl stop crs / crsctl stop crs -f |
root | -f 用于异常时强制停止 |
| 所有节点启动集群资源 | crsctl start cluster -all |
root | 11g 新增,含数据库实例、ASM、VIP 等所有资源 |
| 所有节点停止集群资源 | crsctl stop cluster -all |
root | 批量停止,无需逐节点操作 |
| 检查集群运行状态 | crsctl check cluster |
grid/root | 输出 CRS、CSS、Event Manager 状态 |
| 检查 CRS 整体状态 | crsctl check crs |
grid/root | 含 Oracle High Availability Services 状态 |
| 检查 ohasd 进程状态 | crsctl check has |
grid/root | 核心进程,需确保为 online 状态 |
| 检查 ctss 进程状态 | crsctl check ctss |
grid/root | NTP 时间同步时,显示 Observer mode 为正常 |
| 禁用 CRS 自动启动 | crsctl disable crs |
root | 维护后需重新启用,避免影响集群自动恢复 |
| 启用 CRS 自动启动 | crsctl enable crs |
root | 恢复默认自动启动配置 |
| 查看集群资源状态 | crsctl stat res -t |
grid/root | 树形展示所有资源状态,替代旧版 crs_stat -t |
| 查看集群网络配置 | oifcfg getif |
grid | 显示网卡、网段、网络类型(public/private) |
| 设置集群网络接口 | oifcfg setif -global 网卡名/网段:类型 |
grid | 类型可选 public(公网)/ cluster_interconnect(私网) |
| 收集 CRS 诊断信息 | diagcollection.pl --collect --crs |
grid | 输出诊断文件至默认目录,用于故障排查 |
2. OCR 管理
| 操作场景 | 命令语法 | 执行权限 | 注意事项 |
|---|---|---|---|
| 检查 OCR 完整性 | ocrcheck |
root/grid | 验证物理与逻辑完整性,输出空间使用情况 |
| 手工备份 OCR | ocrconfig -manualbackup |
root | 备份文件为二进制,默认存储至 $GRID_HOME/cdata/集群名 |
| 查看 OCR 备份信息 | ocrconfig -showbackup |
root | 显示自动/手工备份的文件名、路径、时间 |
| 查看 OCR 备份内容 | ocrdump -backupfile 备份文件路径 |
root | 生成 OCRDUMPFILE 文本文件,需在命令目录执行 |
| 恢复 OCR(独占模式) | ocrconfig -restore 备份文件路径 |
root | 需先启动 CRS 至独占模式:crsctl start crs -excl |
| 添加 OCR 镜像 | ocrconfig -add +ASM磁盘组名 |
root | 磁盘组需满足冗余空间要求(External≥300M) |
| 删除 OCR 镜像 | ocrconfig -delete +ASM磁盘组名 |
root | 仅当存在镜像时可执行,不可删除最后一个 OCR 磁盘 |
| 迁移 OCR 路径 | ocrconfig -replace 原磁盘组 -replacement 新磁盘组 |
root | 需先添加镜像,再替换主 OCR |
| 查看 OLR 状态 | ocrcheck -local |
grid/root | OLR 仅存储当前节点配置,需加 -local 参数 |
3. Voting Disk 管理
| 操作场景 | 命令语法 | 执行权限 | 注意事项 |
|---|---|---|---|
| 查看 Voting Disk 信息 | crsctl query css votedisk |
grid | 显示状态、UUID、磁盘组路径 |
| 迁移 Voting Disk | crsctl replace css votedisk +目标ASM磁盘组 |
root | 仅支持 ASM 磁盘组间迁移,不可直接添加/删除 |
4. ASM 维护
| 操作场景 | 命令语法 | 执行权限 | 注意事项 |
|---|---|---|---|
| 查看 ASM 实例状态 | srvctl status asm |
grid | 显示所有节点 ASM 实例运行状态 |
| 启动 ASM 实例 | srvctl start asm |
grid | 批量启动所有节点 ASM 实例 |
| 停止 ASM 实例 | srvctl stop asm |
grid | 需确保无依赖资源(如数据库实例)运行 |
| 登录 ASM 实例 | sqlplus '/as sysasm' |
grid | ASM 专属登录方式,替代 sysdba |
| 创建外部冗余磁盘组 | create diskgroup 组名 external redundancy disk '磁盘路径1','磁盘路径2'; |
grid | 依赖 RAID 冗余,需指定正确的 ASM 磁盘路径(查询 v$asm_disk.path) |
| 挂载磁盘组(其他节点) | alter diskgroup 组名 mount; |
grid | 创建后仅当前节点挂载,其他节点需手工执行 |
| 卸载磁盘组 | alter diskgroup 组名 dismount; / dismount force; |
grid | force 用于强制卸载被占用的磁盘组 |
| 添加磁盘至磁盘组 | alter diskgroup 组名 add disk '磁盘路径/*'; |
grid | 支持通配符,添加后自动触发重平衡 |
| 删除磁盘组 | drop diskgroup 组名 including contents; |
grid | including contents 用于删除含数据的磁盘组 |
| 手动触发重平衡 | alter diskgroup 组名 rebalance power 11 wait; |
grid | power 取值 0-11,wait 表示等待重平衡完成 |
| 查看磁盘组状态 | select name,state from v$asm_diskgroup; |
grid | ASM 实例中执行,显示挂载状态(MOUNTED/DISEMOUNTED) |
5. 数据库维护
| 操作场景 | 命令语法 | 执行权限 | 注意事项 |
|---|---|---|---|
| 启动所有数据库实例 | srvctl start database -d 数据库名 |
oracle | 批量启动,无需逐节点操作 |
| 停止所有数据库实例 | srvctl stop database -d 数据库名 -o immediate |
oracle | -o 后可跟 normal/transactional/abort,同 shutdown 选项 |
| 启动单个实例 | srvctl start instance -d 数据库名 -n 实例名 |
oracle | 仅启动指定节点的实例 |
| 停止单个实例 | srvctl stop instance -d 数据库名 -n 实例名 -o immediate |
oracle | 精准停止单个实例,不影响其他节点 |
| 修改数据库参数(所有实例) | alter system set 参数名=值 scope=both sid='*'; |
oracle | scope=both 表示当前与重启后均生效 |
| 创建 UNDO 表空间 | create undo tablespace 表空间名 datafile size 10m; |
oracle | 每个实例需独立 UNDO 表空间,命名建议含实例标识 |
| 切换 UNDO 表空间 | alter system set undo_tablespace='表空间名'; |
oracle | 仅当前实例生效,不可指定 sid |
| 添加在线日志组 | alter database add logfile group 组号 size 10m; |
oracle | 为当前实例添加,其他实例需指定 instance '实例名' |
| 开启归档模式 | alter database archivelog; |
oracle | 需先关闭所有实例,启动单个实例至 mount 状态执行 |
| 所有实例日志切换 | alter system archive log current; |
oracle | 替代 switch logfile,触发所有实例日志切换 |
| 创建 RAC 服务 | srvctl add service -d 数据库名 -s 服务名 -r 首选实例 -a 次选实例 -P BASIC -y AUTOMATIC |
oracle | -P 指定 TAF 策略,-y 设为自动启动 |
| 启动 RAC 服务 | srvctl start service -d 数据库名 -s 服务名 |
oracle | 服务启动后,客户端可通过服务名连接 |
| 停止 RAC 服务 | srvctl stop service -d 数据库名 -s 服务名 |
oracle | 维护时需先停止服务,避免连接失败 |
6. 告警日志与监听
| 操作场景 | 命令语法 | 执行权限 | 注意事项 |
|---|---|---|---|
| 查看监听状态 | lsnrctl status |
oracle/grid | 监听默认端口 1521,可查看连接数、服务名 |
| 启动监听 | lsnrctl start |
oracle/grid | 需在对应节点执行,或通过 srvctl 批量启动 |
| 停止监听 | lsnrctl stop |
oracle/grid | 停止前确保无活跃连接,或使用 -force 强制停止 |
| 集群告警日志路径 | $GRID_HOME/log/节点名/alert节点名.log |
grid | 集群故障排查首选日志,含 CRS 核心操作记录 |
| ASM 告警日志路径 | $ORACLE_BASE/diag/asm/+ASM/实例名/trace/alert_实例名.log |
grid | 实例名格式为 +ASM1、+ASM2,对应节点 1、2 |
| 数据库告警日志路径 | $ORACLE_BASE/diag/rdbms/数据库名/实例名/trace/alert_实例名.log |
oracle | 数据库故障排查核心,记录参数修改、日志切换、错误信息 |
| 监听日志路径 | $ORACLE_BASE/diag/tnslsnr/节点名/listener/alert/log.xml |
oracle/grid | 也可通过 lsnrctl status 查看日志路径 |
7. 常见问题备注
- 执行命令时若提示“命令未找到”,需先切换至对应用户(如 grid/oracle),或指定完整路径(
$GRID_HOME/bin/命令/$ORACLE_HOME/bin/命令)。 - ASM 磁盘组创建时,磁盘路径需通过
select path from v$asm_disk;确认,避免路径错误导致创建失败。 - OCR 恢复时,需先关闭所有节点 CRS,仅在单个节点启动至独占模式,恢复后需重启所有节点 CRS。
- 11g R2 中,dbca 不再支持创建 ASM 磁盘组和 RAC 服务,需通过 asmca 和 srvctl 操作。
- Voting Disk 迁移仅支持 ASM 磁盘组间迁移,不可迁移至裸设备。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/961817.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!