ORA-15031: disk specification '/dev/oracleasm/disks/*' matches no disks

当尝试使用SQLPLUS / as sysasm创建ASM磁盘组时,遇到ORA-15031错误,提示'/dev/oracleasm/disks/*'未匹配任何磁盘。解决方法包括查看并设置asm_diskstring参数,然后重启CRS,最终成功创建磁盘组。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

执行asmca创建磁盘组没有问题,但以sqlplus / as sysasm登陆创建却出现异常

SQL>create diskgroup DATA external redundancy disk '/dev/oracleasm/disks/*'

*
ERROR at line 1:
ORA-15018: diskgroup cannot be created

ORA-15031: disk specification '/dev/oracleasm/disks/*' matches no disks

解决方法

SQL> show parameter asm_diskstring;


NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
asm_diskstring                       string

Oracle 错误 `ORA-15031` 表示在执行磁盘组操作时,指定的磁盘路径没有匹配到任何可用的 ASM 磁盘。这种情况通常发生在使用 `ALTER DISKGROUP ... ADD DISK` 命令添加磁盘时,ASM 无法识别或找到指定的磁盘设备。 ### 错误原因 1. **磁盘路径不正确**:指定的磁盘路径 `/dev/oracleasm/disks/CRS_DISK05` 或 `/dev/asmdisk/ocr01` 可能不存在或拼写错误。 2. **ASM 磁盘未被正确发现**:ASM 实例的 `asm_diskstring` 参数没有正确配置,导致 ASM 无法扫描和发现指定路径下的磁盘设备。 3. **udev 规则配置问题**:在 Linux 系统中,如果 `udev` 规则没有正确设置,可能导致磁盘设备名称不一致或无法被 ASM 正确识别。 4. **磁盘未格式化为 ASM 兼容格式**:磁盘可能没有通过 `oracleasm` 或 `ASMLib` 工具进行初始化,导致 ASM 无法将其识别为可用磁盘。 5. **权限问题**:执行操作的用户可能没有访问该磁盘设备的权限。 ### 解决方法 1. **验证磁盘路径是否存在**: 使用 `ls` 命令检查指定的磁盘路径是否存在: ```bash ls -l /dev/oracleasm/disks/CRS_DISK05 ``` 如果路径不存在,说明磁盘未正确配置或命名错误。 2. **检查 `asm_diskstring` 参数**: 登录到 ASM 实例并查询当前的 `asm_diskstring` 设置: ```sql show parameter asm_diskstring; ``` 如果磁盘路径不在 `asm_diskstring` 的搜索范围内,可以动态修改该参数以包含正确的路径: ```sql alter system set asm_diskstring = '/dev/oracleasm/disks/*'; ``` 3. **确认磁盘已被 ASM 发现**: 查询 `v$asm_disk` 视图以确认 ASM 是否已经发现了目标磁盘: ```sql select path from v$asm_disk; ``` 如果未列出目标磁盘,则需要检查 `asm_diskstring` 配置,并确保磁盘已正确初始化。 4. **检查 udev 规则**: 确保 `udev` 规则文件(如 `/etc/udev/rules.d/99-oracle-asmdevices.rules`)正确配置了磁盘绑定规则,确保磁盘设备名称保持一致。 5. **使用 `oracleasm` 初始化磁盘**: 如果磁盘尚未初始化,可以使用以下命令进行初始化: ```bash oracleasm createdisk CRS_DISK05 /dev/sdX ``` 替换 `/dev/sdX` 为实际的物理磁盘设备名。 6. **检查磁盘权限**: 确保 `grid` 用户和 `asmadmin` 组对磁盘具有读写权限。可以通过以下命令检查: ```bash ls -l /dev/oracleasm/disks/ ``` 如果权限不足,可以使用 `chown` 和 `chmod` 修改权限。 7. **重启 ASM 实例**: 在完成上述配置更改后,建议重启 ASM 实例以确保所有更改生效: ```bash srvctl stop asm srvctl start asm ``` ### 示例代码:修改 `asm_diskstring` 并添加磁盘 ```sql -- 查看当前的 asm_diskstring 设置 show parameter asm_diskstring; -- 动态修改 asm_diskstring 以包含新的磁盘路径 alter system set asm_diskstring='/dev/oracleasm/disks/*' scope=both; -- 添加磁盘到磁盘组 DATA alter diskgroup DATA add disk '/dev/oracleasm/disks/CRS_DISK05' rebalance power 5; ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值