Oracle ASM常用命令

本文介绍了Oracle ASM中磁盘组的创建、磁盘管理、查询等操作命令,包括查看磁盘组空间情况、磁盘状态、添加和删除磁盘等关键步骤。
set lines 150 pages 200
col path for a40
col HEADER_STATUS for a9
col disk_name for a12
col type for a16
col bytes for 999,999,999,999
col name for a52
col name2 for a15
col group_number heading 'Group|_NO' format 99
col file_number heading 'FILE|NO' format 9999
col redundancy format a6 noprint
col striped format a6 noprint
col FAILGROUP for a10
col disk_number heading 'Disk|_NO' format 9999
col MOUNT_STATUS heading 'Mount|_Status'
col FAILGROUP heading 'FAIL|_GROUP'
col TOTAL_MB heading 'Total|_MB' format 99,999,999

--------查看磁盘组,(空间情况)
select name name2,state,type,free_mb,total_mb,usable_file_mb from v$asm_diskgroup;

--------查看磁盘情况
select GROUP_NUMBER,free_mb,total_mb,FAILGROUP,disk_number,MOUNT_STATUS,mode_status,STATE,
HEADER_STATUS,name name2,PATH
from v$asm_disk order by 4,5;

select disk_number,free_mb,total_mb,FAILGROUP,MOUNT_STATUS,STATE,HEADER_STATUS,PATH
from v$asm_disk order by 4,8;

--------如果有别名,查看磁盘情况:
/etc/init.d/oracleasm listdisks

/etc/init.d/oracleasm querydisk -v -p -d OCR01
/etc/init.d/oracleasm querydisk -v -p -d VOT04

--------查看磁盘情况(kfod)
$ kfod disks=all

--------查看asm存储文件的层次图(树状)
select lpad(' ', 4*(level-1))||name name ,REFERENCE_INDEX,PARENT_INDEX,GROUP_NUMBER
from v$asm_alias
start with ALIAS_INDEX = 0
connect by  prior REFERENCE_INDEX=PARENT_INDEX ;

--------查看层次图-类型和大小
select a.GROUP_NUMBER,b.name,a.file_number,a.bytes,a.type ,a.modification_date
from v$asm_file a ,v$asm_alias b
where a.file_number=b.file_number
  and a.GROUP_NUMBER = b.GROUP_NUMBER
order by 1,5;

--------
select a.group_number, a.file_number, a.compound_index, a.incarnation,
a.block_size, a.blocks, a.bytes/(1024*1024) mbytes, a.space/(1024*1024) mspace,
a.type, a.redundancy, a.striped, a.creation_date, a.modification_date, b.name
from v$asm_file a, v$asm_alias b
where a.type != 'ARCHIVELOG'    --为了易读性
and a.group_number = b.group_number
and a.file_number = b.file_number
and a.incarnation = b.file_incarnation
order by a.type, a.file_number;

--------查看及修改asm重新平衡粒度
show parameter power

alter diskgroup datadg check all repair ;

ALTER DISKGROUP datadg REBALANCE POWER 11;

--------查看asm实例操作变化(只记录结构变化操作)
select * from v$asm_operation;


--------创建磁盘组
create diskgroup DATA2 external redundancy disk
    '/dev/vx/rdmp/Disk_0s2',
    '/dev/vx/rdmp/Disk_4s2',  
    '/dev/vx/rdmp/Disk_5s2'

create diskgroup DATA2 external redundancy disk
    '/dev/rdisk/ora_data_01';

--------为asm磁盘组添加failgroup
alter diskgroup datadg add failgroup failgp1 disk '/dev/vx/rdsk/asmdg1/asmvol19' ;

--------删除磁盘组的某个磁盘
alter diskgroup datadg drop disk  DATADG_0000  ;
alter diskgroup datadg drop disk  DATADG_0001  ;

--------修改asm实例搜索可用asm磁盘路径,不同路径用逗号隔开
ALTER SYSTEM SET
asm_diskstring=
'/dev/vx/rdsk/oradata122/*','/dev/vx/rdmp/emc*'
scope=both sid='+ASM1';

ALTER SYSTEM SET
asm_diskstring=
'/dev/vx/rdsk/oradata122/*','/dev/vx/rdmp/emc*'
scope=both sid='+ASM2';

--------创建表空间,空间指定ASM磁盘组
create tablespace data01 datafile '+DATA2' size 10200M;

echo SPFILE='/oracle/10g/dbs/spfileASM.ora' > /oracle/10g/dbs/init\+ASM1.ora
echo SPFILE='/oracle/10g/dbs/spfileASM.ora' > /oracle/10g/dbs/init\+ASM2.ora

chown oracle:dba /oracle/10g/dbs/*
<think>嗯,用户想了解Oracle ASM命令的使用指南、示例、参数说明以及故障排查。首先,我需要回忆一下Oracle ASM的基本命令,比如asmcmd工具的使用。ASMCMD是管理ASM实例的命令行工具,用户可能需要知道如何进入这个环境,以及常用的命令有哪些。 接下来,用户可能需要具体的示例,比如如何查看磁盘组状态、创建或删除磁盘组、管理文件等。需要确保每个命令的语法正确,并且参数说明清晰。比如,lsdg命令的参数和输出含义是什么,mkdg需要哪些参数,比如冗余级别、磁盘路径等。 然后是关于故障排查的部分。根据引用[2],RAC无法启动时应该先检查心跳网络和存储。所以ASM相关的故障可能涉及磁盘无法识别、权限问题或者磁盘组挂载失败。需要列举常见的错误场景和对应的解决步骤,比如检查磁盘路径、权限,查看日志文件等。 另外,用户提供的引用[1]中提到了ASM安装和配置的步骤,可能需要涉及到初始化参数设置,比如INSTANCE_TYPE和ASM_DISKSTRING,这些参数在配置ASM时很重要,应该包含在命令使用指南中。 还需要注意命令的权限问题,比如使用grid用户执行asmcmd,以及如何通过SQL*Plus连接到ASM实例进行更深入的管理。比如启动和关闭ASM实例的命令,可能需要用到srvctl或者sqlplus。 在故障排查方面,需要提到如何查看ASM警报日志,检查磁盘的状态是否为PROVISIONED,以及如何重新挂载磁盘组。比如使用MOUNT和DISMOUNT命令,或者使用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 # 触发重平衡 ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值