ocr磁盘损坏后须用自动或手动备份恢复,先停crs再ocrconfig -restore;voting disk丢失需确保剩余数量≥⌊n/2⌋+1,迁移用crsctl replace votedisk;ocr/voting迁移至新asm磁盘组须先add后delete,全程在线但需验证路径。
ocr磁盘损坏后怎么紧急恢复?
OCR(Oracle Cluster Registry)是RAC集群的“大脑”,记录节点成员、资源配置、网络信息等关键元数据。一旦损坏,crsctl start crs会失败,甚至整个集群无法启动。
- 必须依赖定期自动备份(默认每4小时一次,保存在
+GRID:/OCRBACKUP/下),手动备份用ocrconfig -manualbackup,不要等出事才想起备份 - 恢复前先确认当前OCR状态:
ocrcheck -config看配置路径,ocrconfig -showbackup列出可用备份 - 从ASM磁盘组恢复:先停所有节点CRS(
crsctl stop crs -f),再在仅一个节点上执行ocrconfig -restore +GRID:/OCRBACKUP/backup00.ocr - 若备份也丢失,只能用
ocrconfig -import导入离线导出文件(需提前用ocrconfig -export生成),但无法恢复动态运行时状态(如VIP、SCAN Listener当前绑定)
Voting Disk丢失或不可访问怎么办?
Voting Disk决定节点能否“投票”留在集群中,单点故障可能触发脑裂(split-brain)。它不依赖OCR,但必须与OCR保持同步更新。
- 不要直接删除或格式化
crsctl query css votedisk显示的设备;误操作会导致节点立即驱逐 - 如果某块voting disk所在LUN掉线,CSS会自动降级为“redundancy loss”,但需尽快修复——只要剩余投票盘数量 ≥ ⌊N/2⌋+1(N为总数),集群仍可运行
- 迁移前务必确认新存储支持ASM的
EXTERNAL、NORMAL或HIGH冗余模式;voting disk必须放在NORMAL或HIGH冗余磁盘组中(不能放EXTERNAL) - 替换命令是
crsctl replace votedisk +NEW_DG,执行后会自动同步所有节点,无需重启CRS
如何把OCR和Voting Disk一起迁移到新ASM磁盘组?
迁移不是“复制粘贴”,而是通过Oracle原生命令触发元数据重定向,旧位置内容会被自动清理。
- 新磁盘组必须已创建且处于MOUNTED状态:
sqlplus / as sysasm中执行ALTER DISKGROUP NEW_DG MOUNT; - OCR迁移分两步:先
ocrconfig -add +NEW_DG添加新位置,再ocrconfig -delete +OLD_DG删旧位置;顺序不能反,否则OCR变单点 - Voting Disk迁移更简单:直接
crsctl replace votedisk +NEW_DG,系统自动完成三步(添加→同步→删除) - 迁移全程集群可在线运行,但建议避开业务高峰;完成后验证:
ocrcheck和crsctl query css votedisk输出应只显示新DG路径
迁移到高可用存储要注意哪些ASM底层细节?
高可用不等于“插上就能用”,ASM层面的配置错误会让OCR/Voting盘反而成为单点。
- 磁盘组冗余级别必须匹配物理存储能力:如果后端是双活存储(如IBM DS8000 HyperSwap),选
NORMAL即可;若用三副本分布式存储(如OCI Exadata Cloud@Customer),可选HIGH - 所有OCR/Voting磁盘必须位于同一磁盘组内——跨DG部署不被支持,
ocrconfig -add会报错ORA-15032: not all alterations performed - ASM磁盘路径别名(alias)不能用于OCR/Voting配置,必须用ASM fully qualified name(如
+GRID),否则crsctl无法解析 - 迁移后检查
asmcmd lsdg中USABLE_FILE_MB是否充足,OCR文件本身不大(通常
OCR和Voting盘的“高可用”最终取决于ASM磁盘组的物理分布。哪怕用了多路径和双活存储,如果所有磁盘LUN都映射到同一台光纤交换机或存储控制器,故障时照样全挂。真实环境里,得盯着lsblk、multipath -ll和存储侧zone配置,而不是只信crsctl status res -t显示的“ONLINE”。











