Oracle 10g 使用dbca创建asm实例,11g使用grid软件创建实例。
查看asm实例参数文件内容:
ASM_POWER_LIMIT
这个参数 ASM_POWER_LIMIT 参数控制 ASM 后台进程 ARBx 的数量。
ARBx 进程用来进行 ASM 磁盘数据重新分布打散。ASM_POWER_LIMIT 取值 从 0 到 11
(据说从 10gR2 开始可以设置为 0,设置为0是为不做reblance,默认是1,数值越大速度越快,对性能要求更高,主机繁忙的时候需要特别注意 ). 当新添加磁盘或者删除磁盘后,ASM 会启动 ARBx 进行 IO 分散操作,这是个非常消耗资源的动作,所以一定要选择系统空闲的时候进行。
INSTANCE_TYPE:ASM实例要求此参数为ASM,隐含着将DB_UNIQUE_NAME设置为+ASM.
ASM_DISKSTRING:指定在磁盘发现过程应当查找的位置,默认值是NULL。
ASM_DISKGROUPS:指定在实例启动时要自动装载的磁盘组的名称,默认值是NULL。
V$ASM_CLIENT:这个视图显示了所连接ASM实例的实例信息。
V$ASM_DISKGROUP:这个视图列出了在ASM中创建的磁盘组,还有元数据信息,如磁盘组的空闲空间、分配单元大小和状态。
V$ASM_FILE:这个视图列出了在V$ASM_DISKGROUP视图所列磁盘组中创建的文件。
V$ASM_ALIAS:这个视图列出了在V$ASM_FILE视图中所列ASM文件的用户友好名称。这个视图对于识别ASM文件的确切名称非常有用,因为V$ASM_FILE视图仅列出了文件号。
V$ASM_DISK_IOSTAT:这个视图列出了V$ASM_DISKGROUP视图中所列每个磁盘的磁盘I/O性能统计信息。
V$ASM_ACFSVOLUMES:这个视图列出了ASM动态卷的元数据信息。
V$ASM_OPERATION:这个视图显示了当前操作,例如在V$ASM_DISKGROUP视图中所列磁盘组上发生的任何再均衡操作。这个视图对于监控ASM中的再均衡操作非常有用。
RBAL :这是一个再均衡后台进程。它负责再均衡操作,还协调ASM磁盘恢复进程。
GMON :这是“组监控器”后台进程。它在管理磁盘组时将磁盘组标记为“脱机”,甚至会删除这个磁盘组。
ARBn :尽管RBAL负责协调磁盘组的再均衡,但实际上是由ARBn来执行再均衡协调的。
VMB :这是一个“卷成员资格”后台进程,它与ASM实例一同负责集群成员资格。在创建ASM动态卷时,ASM实例会启动这个后台进程。
VDBG :这是“卷驱动程序”后台进程。它与动态卷驱动程序一同提供卷盘区的锁定和解锁。这是一个非常重要的进程,如果被意外终止,那么它会关闭ASM实例。
VBGn:这是“卷后台”进程。ASM实例中的VBG与操作系统卷驱动程序通信。它负责ASM与操作系统之间的消息发送。
XDMG :这是一个Exadata自动管理器。XDMG监控所有配置的Exadate单元,以了解状态变化,例如更换了一个坏磁盘等。它的主要任务是监控不可访问的磁盘和单元,当它们再次可供访问时,启动ASM ONLINE操作。
管理ASM
说明:
failgroup (故障组)的个数的限制:
HIGH ---------- failgroup >= 3
NORMAL ---------- failgroup >= 2
EXTERNAL -------- failgroup == 0 (不能指定故障组)
查询磁盘组的故障组分配:
SQL> SELECT G.NAME,D.disk_number,D.STATE,D.redundancy,D.NAME,D.PATH,D.FAILGROUP,D.FAILGROUP_TYPE FROM V$asm_diskgroup g,v$asm_disk d where g.group_number=d.group_number;
查看磁盘组,(空间情况)
select name name2,state,type,free_mb,total_mb,usable_file_mb from v$asm_diskgroup;
查看磁盘情况
select GROUP_NUMBER,free_mb,total_mb,disk_number,MOUNT_STATUS,mode_status,STATE,
HEADER_STATUS,name name2,PATH from v$asm_disk order by 4,5;
创建磁盘组
获取磁盘列表(磁盘状态:CANDIDATE-该磁盘从来没有分配给任何ASM磁盘组;MEMBER-该磁盘分配给ASM磁盘组;PROVISIONED-正在使用ASMLib,并且该磁盘尚未分配给磁盘组。
提到的ASM自动平衡的特性,上述语句返回后并不代表磁盘已经被删除,此时后台可能由于正忙碌地执行着IO重平衡的工作,因此如果在这个当口,DBA忽然意识到操作失误,其实磁盘并不需要被删除,那也可以马上通过alter diskgroup dgname undrop disks语句来取消删除的操作,例如:
SQL> alter diskgroup asmdisk2 drop disk asmdisk2;
SQL> alter diskgroup asmdisk2 undrop disks;
Diskgroup altered.
只要删除操作还没有真正完成,任何就会被取消,否则的话