ASM磁盘的offline和online

本文介绍了如何通过修改ASM磁盘组属性解决因版本不兼容导致的操作失败问题,并演示了磁盘离线与在线操作的过程。

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

SQL> select group_number,name ,failgroup from v$asm_disk order by group_number ;

GROUP_NUMBER NAME                                     FAILGROUP
------------ ---------------------------------------- ------------------------------
           1 ARCH_0001                                ARCH_0001
           1 ARCH_0000                                ARCH_0000
           2 DATA_0001                                DATA_0001
           2 DATA_0000                                DATA_0000
           3 SYS_0000                                 SYS_0000

offline disk时报如下错误

SQL> alter diskgroup ARCH  offline disk ARCH_0001 ;
alter diskgroup ARCH  offline disk ARCH_0001
*
ERROR at line 1:
ORA-15032: not all alterations performed
ORA-15283: ASM operation requires compatible.rdbms of 11.1.0.0.0 or higher


查看diskgroup attribute:

SQL> select * from v$asm_attribute where name like 'compatible%' ;

NAME                                     VALUE      GROUP_NUMBER ATTRIBUTE_INDEX ATTRIBUTE_INCARNATION READ_ON SYSTEM_CRE
---------------------------------------- ---------- ------------ --------------- --------------------- ------- ----------
compatible.asm                           11.2.0.0.0            1              20                     1 N       Y
compatible.rdbms                         10.1.0.0.0            1              21                     1 N       Y
compatible.asm                           11.2.0.0.0            2              20                     1 N       Y
compatible.rdbms                         10.1.0.0.0            2              21                     1 N       Y
compatible.asm                           11.2.0.0.0            3              20                     1 N       Y
compatible.rdbms                         10.1.0.0.0            3              21                     1 N       Y

:


查看disk状态:

SQL> select group_number,name ,failgroup from v$asm_disk order by group_number ;

GROUP_NUMBER NAME                                     FAILGROUP
------------ ---------------------------------------- ------------------------------
           1 ARCH_0001                                ARCH_0001
           1 ARCH_0000                                ARCH_0000
           2 DATA_0001                                DATA_0001
           2 DATA_0000                                DATA_0000
           3 SYS_0000                                 SYS_0000


           
修改diskgroup的attribute

su - grid

sqlplus / as sysasm

SQL>  alter diskgroup ARCH set attribute 'compatible.rdbms'='11.2.0.0.0';
Diskgroup altered.

SQL>  alter diskgroup DATA set attribute 'compatible.rdbms'='11.2.0.0.0';
Diskgroup altered.

SQL>  alter diskgroup SYS  set attribute 'compatible.rdbms'='11.2.0.0.0';
Diskgroup altered.

SQL> select * from v$asm_attribute where name like 'compatible%' ;
NAME                                     VALUE      GROUP_NUMBER ATTRIBUTE_INDEX ATTRIBUTE_INCARNATION READ_ON SYSTEM_CRE
---------------------------------------- ---------- ------------ --------------- --------------------- ------- ----------
compatible.asm                           11.2.0.0.0            1              20                     1 N       Y
compatible.rdbms                         11.2.0.0.0            1              21                     1 N       Y
compatible.asm                           11.2.0.0.0            2              20                     1 N       Y
compatible.rdbms                         11.2.0.0.0            2              21                     1 N       Y
compatible.asm                           11.2.0.0.0            3              20                     1 N       Y
compatible.rdbms                         11.2.0.0.0            3              21                     1 N       Y
Diskgroup altered.
SQL> select group_number ,MOUNT_STATUS ,HEADER_STATUS ,MODE_STATUS ,state,REDUNDANCY ,NAME ,FAILGROUP ,path from v$asm_disk ;

GROUP_NUMBER MOUNT_S HEADER_STATU MODE_ST STATE    REDUNDA NAME                                     FAILGROUP                      PATH
------------ ------- ------------ ------- -------- ------- ---------------------------------------- ------------------------------ --------------------
           1 CACHED  MEMBER       ONLINE  NORMAL   UNKNOWN ARCH_0001                                ARCH_0001                      /dev/asm-diskg
           3 CACHED  MEMBER       ONLINE  NORMAL   UNKNOWN SYS_0000                                 SYS_0000                       /dev/asm-diskb
           2 CACHED  MEMBER       ONLINE  NORMAL   UNKNOWN DATA_0001                                DATA_0001                      /dev/asm-diskd
           2 CACHED  MEMBER       ONLINE  NORMAL   UNKNOWN DATA_0000                                DATA_0000                      /dev/asm-diskc
           1 CACHED  MEMBER       ONLINE  NORMAL   UNKNOWN ARCH_0000                                ARCH_0000                      /dev/asm-diske

ffline磁盘:

SQL> alter diskgroup ARCH  offline disk ARCH_0001 ;
Diskgroup altered.

SQL>  select group_number ,MOUNT_STATUS ,HEADER_STATUS ,MODE_STATUS ,state,REDUNDANCY ,NAME ,FAILGROUP ,path from v$asm_disk ;

GROUP_NUMBER MOUNT_S HEADER_STATU MODE_ST STATE    REDUNDA NAME                                     FAILGROUP                      PATH
------------ ------- ------------ ------- -------- ------- ---------------------------------------- ------------------------------ --------------------
           0 CLOSED  MEMBER       ONLINE  NORMAL   UNKNOWN                                                                         /dev/asm-diskg
           1 MISSING UNKNOWN      OFFLINE NORMAL   UNKNOWN ARCH_0001                                ARCH_0001
           3 CACHED  MEMBER       ONLINE  NORMAL   UNKNOWN SYS_0000                                 SYS_0000                       /dev/asm-diskb
           2 CACHED  MEMBER       ONLINE  NORMAL   UNKNOWN DATA_0001                                DATA_0001                      /dev/asm-diskd
           2 CACHED  MEMBER       ONLINE  NORMAL   UNKNOWN DATA_0000                                DATA_0000                      /dev/asm-diskc
           1 CACHED  MEMBER       ONLINE  NORMAL   UNKNOWN ARCH_0000                                ARCH_0000                      /dev/asm-diske


           

online磁盘:

SQL> alter diskgroup ARCH online disk ARCH_0001 ;

Diskgroup altered.

SQL> select group_number ,MOUNT_STATUS ,HEADER_STATUS ,MODE_STATUS ,state,REDUNDANCY ,NAME ,FAILGROUP ,path from v$asm_disk ;

GROUP_NUMBER MOUNT_S HEADER_STATU MODE_ST STATE    REDUNDA NAME                                     FAILGROUP                      PATH
------------ ------- ------------ ------- -------- ------- ---------------------------------------- ------------------------------ --------------------
           1 CACHED  MEMBER       SYNCING NORMAL   UNKNOWN ARCH_0001                                ARCH_0001                      /dev/asm-diskg
           3 CACHED  MEMBER       ONLINE  NORMAL   UNKNOWN SYS_0000                                 SYS_0000                       /dev/asm-diskb
           2 CACHED  MEMBER       ONLINE  NORMAL   UNKNOWN DATA_0001                                DATA_0001                      /dev/asm-diskd
           2 CACHED  MEMBER       ONLINE  NORMAL   UNKNOWN DATA_0000                                DATA_0000                      /dev/asm-diskc
           1 CACHED  MEMBER       ONLINE  NORMAL   UNKNOWN ARCH_0000                                ARCH_0000                      /dev/asm-diske

SQL> select group_number ,MOUNT_STATUS ,HEADER_STATUS ,MODE_STATUS ,state,REDUNDANCY ,NAME ,FAILGROUP ,path from v$asm_disk ;
GROUP_NUMBER MOUNT_S HEADER_STATU MODE_ST STATE    REDUNDA NAME                                     FAILGROUP                      PATH
------------ ------- ------------ ------- -------- ------- ---------------------------------------- ------------------------------ --------------------
           1 CACHED  MEMBER       ONLINE  NORMAL   UNKNOWN ARCH_0001                                ARCH_0001                      /dev/asm-diskg
           3 CACHED  MEMBER       ONLINE  NORMAL   UNKNOWN SYS_0000                                 SYS_0000                       /dev/asm-diskb
           2 CACHED  MEMBER       ONLINE  NORMAL   UNKNOWN DATA_0001                                DATA_0001                      /dev/asm-diskd
           2 CACHED  MEMBER       ONLINE  NORMAL   UNKNOWN DATA_0000                                DATA_0000                      /dev/asm-diskc
           1 CACHED  MEMBER       ONLINE  NORMAL   UNKNOWN ARCH_0000                                ARCH_0000                      /dev/asm-diske

<think>嗯,用户想了解Oracle ASM命令的使用指南、示例、参数说明以及故障排查。首先,我需要回忆一下Oracle ASM的基本命令,比如asmcmd工具的使用。ASMCMD是管理ASM实例的命令行工具,用户可能需要知道如何进入这个环境,以及常用的命令有哪些。 接下来,用户可能需要具体的示例,比如如何查看磁盘组状态、创建或删除磁盘组、管理文件等。需要确保每个命令的语法正确,并且参数说明清晰。比如,lsdg命令的参数输出含义是什么,mkdg需要哪些参数,比如冗余级别、磁盘路径等。 然后是关于故障排查的部分。根据引用[2],RAC无法启动时应该先检查心跳网络存储。所以ASM相关的故障可能涉及磁盘无法识别、权限问题或者磁盘组挂载失败。需要列举常见的错误场景对应的解决步骤,比如检查磁盘路径、权限,查看日志文件等。 另外,用户提供的引用[1]中提到了ASM安装配置的步骤,可能需要涉及到初始化参数设置,比如INSTANCE_TYPEASM_DISKSTRING,这些参数在配置ASM时很重要,应该包含在命令使用指南中。 还需要注意命令的权限问题,比如使用grid用户执行asmcmd,以及如何通过SQL*Plus连接到ASM实例进行更深入的管理。比如启动关闭ASM实例的命令,可能需要用到srvctl或者sqlplus。 在故障排查方面,需要提到如何查看ASM警报日志,检查磁盘的状态是否为PROVISIONED,以及如何重新挂载磁盘组。比如使用MOUNTDISMOUNT命令,或者使用KFED工具修复损坏的磁盘头。 最后,用户可能还关心如何监控ASM的性能状态,比如使用lsdg查看剩余空间,检查磁盘的可用性等。这部分可以结合示例说明,帮助用户更好地理解命令的输出结果。 总结一下,回答需要结构清晰,分命令概述、常用命令示例、参数说明、故障排查步骤几个部分,同时引用提供的资料中的相关要点,比如安装配置步骤故障处理建议。确保覆盖用户需求的所有方面,并且给出实用的示例解决方案。</think>### Oracle ASM命令使用指南及故障排查 #### 一、ASM命令概述 Oracle ASM通过命令行工具`asmcmd`SQL*Plus实现管理。`asmcmd`提供类似Linux文件系统的操作接口,适用于日常维护[^1]。 #### 二、常用ASM命令及示例 1. **进入ASMCMD环境** ```bash su - grid asmcmd ``` 2. **查看磁盘组状态** ```bash asmcmd lsdg ``` **输出示例**: ``` State Type Rebal Sector Block AU Total_MB Free_MB Req_mir_free_MB Usable_file_MB Offline_disks Name MOUNTED EXTERN N 512 4096 4194304 512000 400000 0 400000 0 DATA/ ``` 3. **创建磁盘组** ```bash asmcmd mkdg /path/to/asm_disk_group_config.xml ``` **XML配置示例**: ```xml <dg name="DATA" redundancy="EXTERNAL"> <dsk string="/dev/oracleasm/disks/ASM_DISK1"/> </dg> ``` 4. **管理文件** ```bash asmcmd ls +DATA/ORCL/DATAFILE # 列出文件 asmcmd rm +DATA/ORCL/DATAFILE/users.dbf # 删除文件 ``` 5. **磁盘操作** ```bash asmcmd chdg -r HIGH DATA # 修改冗余级别 asmcmd volcreate -G DATA -s 100G VOL1 # 创建ASM卷 ``` #### 三、关键参数说明 1. **ASM_DISKSTRING** - 作用:定义ASM扫描磁盘的路径模式 - 设置示例: ```sql ALTER SYSTEM SET asm_diskstring='/dev/oracleasm/disks/*'; ``` 2. **INSTANCE_TYPE** - 固定值:`ASM`(ASM实例)或`RDBMS`(数据库实例) 3. **ASM_POWER_LIMIT** - 范围:1-11,控制磁盘重平衡速度 #### 四、故障排查指南 1. **磁盘无法识别** ```bash asmcmd lsdsk --candidate # 查看候选磁盘 asmcmd chkdsk /dev/sdb1 # 检查磁盘状态 ``` **常见原因**:磁盘权限错误(需属组`asmdba`)、路径未包含在`ASM_DISKSTRING`中 2. **磁盘组无法MOUNT** ```bash asmcmd mount DATA # 尝试手动挂载 tail -f $ORACLE_BASE/diag/asm/+asm/trace/alert_+ASM.log # 查看ASM警报日志 ``` **解决方案**:检查`/etc/init.d/oracleasm listdisks`是否包含目标磁盘[^2] 3. **文件系统损坏** ```bash kfed repair /dev/sdb1 # 修复ASM磁盘asmcmd chkdsk +DATA # 检查元数据完整性 ``` 4. **性能问题** ```sql SELECT group_number, name, total_mb, free_mb FROM v$asm_diskgroup; ``` **关键指标**:`Free_MB`小于20%需扩容,`Offline_disks`大于0需检查存储 #### 五、典型场景示例 **场景1:添加新磁盘** ```bash oracleasm createdisk DISK3 /dev/sdc1 # 创建ASM磁盘 asmcmd volcreate -G DATA -s 50G LOG_VOL # 创建日志卷 ``` **场景2:替换故障磁盘** ```bash asmcmd offline -G DATA DISK2 # 标记故障磁盘 asmcmd online -G DATA DISK2 # 恢复后重新上线 asmcmd rebal -G DATA # 触发重平衡 ```
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值