“insufficient user privileges”实为voting disk权限问题:grid用户未加入asmadmin组、设备属主非grid:asmadmin、udev规则失效或路径漂移,导致cssd读写voting disk失败;需用ls -l、dd测试及v$asm_disk验证,并通过crsctl start crs -excl -nocrs进入维护模式修复。
crsctl start crs 报 “insufficient user privileges” 但实际是 voting disk 权限问题
这个错误提示极具误导性。表面上看是权限不足,但真正卡在 cssd 进程启动阶段——它尝试读写 voting disk 时被操作系统拒绝,于是向上抛出泛化的权限错误,而非具体的 i/o 或设备访问失败。
根本原因不是用户没加 sudo,而是:
-
grid用户未加入asmadmin组(或对应平台的磁盘管理组,如dba、oper) - Voting Disk 所在裸设备或 ASM 磁盘路径(如
/dev/oracleasm/disks/VOTE1)的属主/权限不匹配,例如属主是root:root但cssd以grid身份运行 - udev 规则配置错误,导致设备每次重启后权限重置,或路径名漂移(比如从
sdb1变成sdc1)
验证方法很简单:
用 grid 用户执行 ls -l /dev/oracleasm/disks/VOTE1,确认属主是 grid:asmadmin;
再跑一次 lsmod | grep oracleasm 和 oracleasm listdisks,确保磁盘被识别且状态为 ENABLED;
最后用 su - grid -c "dd if=/dev/oracleasm/disks/VOTE1 of=/dev/null bs=4k count=1" 测试能否无报错读取——失败就坐实是权限或设备层问题。
Voting Disk 放在 ASM 磁盘组里,为什么还会报权限不足?
因为 ASM 磁盘组只是逻辑容器,底层仍依赖 OS 层设备权限。即使 +VOTE_DG 已创建并 MOUNTED,若组成它的物理磁盘(如 /dev/mapper/mpathv1)对 grid 不可读写,cssd 在初始化仲裁时仍会失败。
常见陷阱包括:
- 使用 multipath 设备但未在 udev 规则中固化权限,导致重启后
mpathv1权限回落为root:root 600 - ASM 磁盘组用
EXTERNAL REDUNDANCY创建,而 Voting Disk 强制要求 NORMAL 或 HIGH,否则crsctl replace votedisk表面成功,实际 CSS 元数据写入失败,后续启动仍卡住 -
diskstring配置遗漏了 Voting Disk 所在路径,导致 ASM 启动时压根没发现这些磁盘,v$asm_disk里看不到对应记录
检查点:
登录 sqlplus / as sysasm,查 SELECT path, header_status FROM v$asm_disk WHERE group_number = 0 —— 如果 Voting Disk 对应的磁盘显示 PROVISIONED 或空,说明 ASM 根本没认到它;
查 SELECT name, type FROM v$asm_diskgroup,确认 Voting Disk 所在 DG 的 type 是 NORMAL 或 HIGH,不是 EXTERN;
别只信 crsctl query css votedisk 输出,它可能缓存旧路径,要配合 cat /proc/partitions 和 blkid 确认设备真实存在且可访问。
OCR 完好但 Voting Disk 权限异常,能跳过检查直接启动吗?
不能硬跳,但可以进独占维护模式争取操作窗口:crsctl start crs -excl -nocrs。这个组合是唯一安全入口:
-
-excl让 CSS 跳过 Voting Disk 读取和 quorum 检查 -
-nocrs阻止 CRS 资源加载,避免因 Voting Disk 不可用触发节点驱逐
注意两个参数必须同时出现。只加 -excl 仍会尝试访问 Voting Disk;只加 -nocrs 则 ASM 实例起不来,无法修复底层磁盘组。
进模式后立刻做三件事:
用 sqlplus / as sysasm 手动 ALTER DISKGROUP VOTE_DG MOUNT,确认状态为 MOUNTED;
用 chown grid:asmadmin /dev/mapper/mpathv1 和 chmod 660 修正权限(需同步更新 udev 规则);
执行 crsctl replace votedisk +VOTE_DG 强制刷新 CSS 中的 Voting Disk 注册信息——这步会校验磁盘组冗余类型和 ASM 可写性,失败说明还没修到位。
最易被忽略的是:修复完成后,必须在每个节点上分别执行 crsctl stop crs -f → crsctl start crs,不能只在单节点操作就认为集群恢复。CSS 的仲裁状态是跨节点同步的,任一节点残留旧状态都会导致再次驱逐。











