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、集群等组件诊断信息,默认收集完整信息,支持指定组件筛选:
- $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)。
- 删除镜像:$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操作,仅可迁移至冗余度更高的磁盘组。
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)
操作场景命令语法执行权限注意事项单节点启动 CRScrsctl start crsroot正常启动,无需额外参数单节点停止 CRScrsctl stop crs / crsctl stop crs -froot-f 用于异常时强制停止所有节点启动集群资源crsctl start cluster -allroot11g 新增,含数据库实例、ASM、VIP 等所有资源所有节点停止集群资源crsctl stop cluster -allroot批量停止,无需逐节点操作检查集群运行状态crsctl check clustergrid/root输出 CRS、CSS、Event Manager 状态检查 CRS 整体状态crsctl check crsgrid/root含 Oracle High Availability Services 状态检查 ohasd 进程状态crsctl check hasgrid/root核心进程,需确保为 online 状态检查 ctss 进程状态crsctl check ctssgrid/rootNTP 时间同步时,显示 Observer mode 为正常禁用 CRS 自动启动crsctl disable crsroot维护后需重新启用,避免影响集群自动恢复启用 CRS 自动启动crsctl enable crsroot恢复默认自动启动配置查看集群资源状态crsctl stat res -tgrid/root树形展示所有资源状态,替代旧版 crs_stat -t查看集群网络配置oifcfg getifgrid显示网卡、网段、网络类型(public/private)设置集群网络接口oifcfg setif -global 网卡名/网段:类型grid类型可选 public(公网)/ cluster_interconnect(私网)收集 CRS 诊断信息diagcollection.pl --collect --crsgrid输出诊断文件至默认目录,用于故障排查2. OCR 管理
操作场景命令语法执行权限注意事项检查 OCR 完整性ocrcheckroot/grid验证物理与逻辑完整性,输出空间使用情况手工备份 OCRocrconfig -manualbackuproot备份文件为二进制,默认存储至 $GRID_HOME/cdata/集群名查看 OCR 备份信息ocrconfig -showbackuproot显示自动/手工备份的文件名、路径、时间查看 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 -localgrid/rootOLR 仅存储当前节点配置,需加 -local 参数3. Voting Disk 管理
操作场景命令语法执行权限注意事项查看 Voting Disk 信息crsctl query css votediskgrid显示状态、UUID、磁盘组路径迁移 Voting Diskcrsctl replace css votedisk +目标ASM磁盘组root仅支持 ASM 磁盘组间迁移,不可直接添加/删除4. ASM 维护
操作场景命令语法执行权限注意事项查看 ASM 实例状态srvctl status asmgrid显示所有节点 ASM 实例运行状态启动 ASM 实例srvctl start asmgrid批量启动所有节点 ASM 实例停止 ASM 实例srvctl stop asmgrid需确保无依赖资源(如数据库实例)运行登录 ASM 实例sqlplus '/as sysasm'gridASM 专属登录方式,替代 sysdba创建外部冗余磁盘组create diskgroup 组名 external redundancy disk '磁盘路径1','磁盘路径2';grid依赖 RAID 冗余,需指定正确的 ASM 磁盘路径(查询 v$asm_disk.path)挂载磁盘组(其他节点)alter diskgroup 组名 mount;grid创建后仅当前节点挂载,其他节点需手工执行卸载磁盘组alter diskgroup 组名 dismount; / dismount force;gridforce 用于强制卸载被占用的磁盘组添加磁盘至磁盘组alter diskgroup 组名 add disk '磁盘路径/*';grid支持通配符,添加后自动触发重平衡删除磁盘组drop diskgroup 组名 including contents;gridincluding contents 用于删除含数据的磁盘组手动触发重平衡alter diskgroup 组名 rebalance power 11 wait;gridpower 取值 0-11,wait 表示等待重平衡完成查看磁盘组状态select name,state from v$asm_diskgroup;gridASM 实例中执行,显示挂载状态(MOUNTED/DISEMOUNTED)5. 数据库维护
操作场景命令语法执行权限注意事项启动所有数据库实例srvctl start database -d 数据库名oracle批量启动,无需逐节点操作停止所有数据库实例srvctl stop database -d 数据库名 -o immediateoracle-o 后可跟 normal/transactional/abort,同 shutdown 选项启动单个实例srvctl start instance -d 数据库名 -n 实例名oracle仅启动指定节点的实例停止单个实例srvctl stop instance -d 数据库名 -n 实例名 -o immediateoracle精准停止单个实例,不影响其他节点修改数据库参数(所有实例)alter system set 参数名=值 scope=both sid='*';oraclescope=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 AUTOMATICoracle-P 指定 TAF 策略,-y 设为自动启动启动 RAC 服务srvctl start service -d 数据库名 -s 服务名oracle服务启动后,客户端可通过服务名连接停止 RAC 服务srvctl stop service -d 数据库名 -s 服务名oracle维护时需先停止服务,避免连接失败6. 告警日志与监听
操作场景命令语法执行权限注意事项查看监听状态lsnrctl statusoracle/grid监听默认端口 1521,可查看连接数、服务名启动监听lsnrctl startoracle/grid需在对应节点执行,或通过 srvctl 批量启动停止监听lsnrctl stoporacle/grid停止前确保无活跃连接,或使用 -force 强制停止集群告警日志路径$GRID_HOME/log/节点名/alert节点名.loggrid集群故障排查首选日志,含 CRS 核心操作记录ASM 告警日志路径$ORACLE_BASE/diag/asm/+ASM/实例名/trace/alert_实例名.loggrid实例名格式为 +ASM1、+ASM2,对应节点 1、2数据库告警日志路径$ORACLE_BASE/diag/rdbms/数据库名/实例名/trace/alert_实例名.logoracle数据库故障排查核心,记录参数修改、日志切换、错误信息监听日志路径$ORACLE_BASE/diag/tnslsnr/节点名/listener/alert/log.xmloracle/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 磁盘组间迁移,不可迁移至裸设备。
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |