- 论坛徽章:
- 0
|
col name for a20 col path for a40 set linesize 200 select name, path, mount_status, header_status, mode_status, state, redundancy, round((total_mb-free_mb)/total_mb*100,2) "used", round(free_mb/total_mb*100,2) "free", total_mb, free_mb from v$asm_disk where total_mb<>0
create diskgroup DATA external redundancy disk '/dev/rdsk/c3t19d5s4', '/dev/rdsk/c3t19d16s4', '/dev/rdsk/c3t19d17s4', '/dev/rdsk/c3t19d18s4';
create diskgroup DATA_NRML normal redundancy FAILGROUP flgrp1 disk '/dev/rdsk/c3t19d3s4','/dev/rdsk/c3t19d4s4','/dev/rdsk/c3t19d5s4', '/dev/rdsk/c3t19d6s4' FAILGROUP flgrp2 disk '/dev/rdsk/c4t20d3s4','/dev/rdsk/c4t20d4s4','/dev/rdsk/c4t20d5s4', '/dev/rdsk/c4t19ds4' FAILGROUP flgrp3 disk /dev/rdsk/c5t21d3s4','/dev/rdsk/c5t21d4s4','/dev/rdsk/c5t21d5s4', '/dev/rdsk/c5t21ds4' FAILGROUP flgrp4 disk /dev/rdsk/c6t22d3s4','/dev/rdsk/c6t22d4s4','/dev/rdsk/c6t22d5s4', '/dev/rdsk/c6t22ds4';
alter diskgroup DATA add disk '/dev/rdsk/c3t19d39s4' rebalance power 11; alter diskgroup ASM_DISKGROUP add disk '/dev/raw/raw6' name ASM_DISKGROUP_0003;
select * from v$asm_operation
processes=25+(10+最大数量并行数据文件创建)*RDMS连接ASM数量 = 25+(10+5)*1 =40
构建ASM基础结构的第一项任务是在ASM管理中发现和关联(添加)磁盘,最好是由存储管理员和系统管理 员协调工作来完成该步骤。存储管理员将标识存储阵列提供给主机的一组磁盘。术语“磁盘”可能有多种 含义。磁盘可以是物理主轴的一个分区、整个主轴或RAID组集(在存储阵列中定义);这取决于存储阵列 将逻辑单元号(Logical Unit Number,LUN)提供给操作系统(OS)的方式。在本章中,我们将提供给OS的 LUN或磁盘统一简称为磁盘。在Solaris系统中,磁盘一般具有如下的SCSI名称格式:CwTxDySz,其中C是 控制器号,T是目标,D是LUN/磁盘号,S是分区。注意,每个OS都有其独特的SCSI磁盘命名表示法。
ASM必须只使用字符设备作为磁盘,而不能使用块设备。根据Oracle 10.2版本的管理指南,用户可以使用 ASMLib访问块设备:“ASMLib是ASM的可选附件,它的目标是为ASM支持的内核提供发现和访问块设备的备 选接口”。在大多数Unix系统上,字符设备显示为/dev/rdsk,而在Linux上则显示为/dev/raw/raw,唯一 的例外情况是在ASM使用NAS文件系统文件作为磁盘时。
例如,Solaris系统上的最佳方法是在磁盘上创建分区,例如创建4个或6个分区,并且跳过磁盘中最初的 1MB空间。创建分区操作服务于多个目标。分区创建占位符以标识正在使用该磁盘,而未分区的磁盘可能 会无意中被误用或覆盖。跳过磁盘中的1MB空间是为了跳过OS标号/VTOC(内容的卷表),并且保存ASM条带 和存储阵列内部条带之间的对齐方式。不同的操作系统将有不同的OS标号需求;也就是说,一些操作系 统在使用之前可能需要OS标号,而其他操作系统则不需要。尽管过程可能有所不同,但是不同的操作系 统应用相同的基本原理。
一旦发现了磁盘,就可以创建封装一个或多个这些磁盘的磁盘组。磁盘组是ASM中最高级别的数据结构, 它类似于LVM的卷组。然而,典型的LVM卷组和ASM磁盘组之间存在一些区别。磁盘组中会隐式地创建ASM 文件系统层,该文件系统对于用户是透明的,只可以通过ASM、连接的数据库以及10.2版本中的ASM命令 行工具访问,并且内在地具有自动化文件级数据分条和镜像功能。在ASM磁盘组中创建的数据库文件将 其文件盘区(不要与数据库盘区混淆)平均地分布到磁盘组中的所有联机磁盘,从而提供均匀的I/O负载。
磁盘组的创建涉及对将要添加的磁盘进行确认,这些磁盘必须有如下的属性: 1.当前没有被另一个磁盘组使用。 2.必须没有预先存在的ASM头。 3.不能有Oracle文件头。
du 显示指定的ASM目录下ASM文件占用的所有磁盘空间 ls 列出ASM目录下的内容及其属性 lsct 列出当前ASM客户端的信息 lsdg 列出所有磁盘组及其属性 mkalias 为系统生成的文件名创建别名
ASM 如何处理磁盘故障 ASM 中的磁盘组可以分成两类:普通磁盘组和failure磁盘组,后者又与ASM的冗余方式有所关联。 普通磁盘组就是标准的存储单元,ASM可以向其可访问的磁盘组中读写数据,failure磁盘组是为 了提高数据的高可用性。ASM中的磁盘冗余策略非常简单,概要成三类:外部冗余、标准冗余和高 度冗余,其中前者与failure磁盘组无关,如果设置了后者,那么该磁盘组就必须拥有failure磁 盘组。听起来像在说failure磁盘组是普通磁盘组的子集,其实差不多可以这么理解,外部冗余的 话磁盘属于磁盘组,内部冗余的话,磁盘属于磁盘组的同时,还属于某个(并且只能是一个) failure磁盘组。
比如说对于标准冗余(Normal Redundancy),ASM要求该磁盘组至少要拥有两个failure磁盘组, 即提供双倍镜像保护,对于同一份数据(ASM中镜像单位不是磁盘,也不是块,而是一种AU的单位, 该单位大小默认是1M)将有主从两份镜像,并且ASM通过算法来自动确保主、从镜像不会存在于同 一份failure磁盘组,这样就保障了就算整个failure磁盘组都损坏,数据也不会丢失。至于高度 冗余(High Redundancy)就更安全了,它至少需要三个failure磁盘组,也就是一份AU有一主多从 的镜像,理论上将更加安全。如果磁盘发生损坏,那么损坏的磁盘默认自动offlice并被drop掉, 不过该磁盘所在的磁盘组仍将保持MOUNT状态,如果该盘有镜像的话,那么应用不会有影响,镜像 盘将自动实现接管--只要不是所有failure磁盘组都损坏掉,否则的话,该磁盘组将自动DISMOUNT。 举个例子吧,某标准冗余的failure组有6个盘(对应6个裸设备),假如说此时坏了一块盘,没关系, 操作继续,坏了那块会被自动dropped,剩下的5块盘仍然能够负担起正常的读写操作。
ASM_POWER_LIMIT : 指定磁盘rebalance的程度,有0-11个级别,默认值为1,指定的级别越高,则rebalance的操作就 会越快被完成(当然这也意味着这个时间段内将占用更多的资源),指定级别较低的话,虽然 rebalance操作会耗时更久,但对当前系统的IO及负载影响会更少,这中间的度需要DBA根据实际 情况衡量。另外,这个参数指定的只是一个默认值,在操作过程中,即可以随便动态修改,也可 以在语句级命令行时指定power,覆盖该默认值。 ASM_DISKSTRING : 用最简单的话说,就是设置ASM启动时检查的磁盘,该选项可以同时指定多个值,并且支持通配符 。比如说,只检查/dev/dsk/下的设备,可以设置该参数如下:/dev/dsk/*,默认情况下该参数为 空,为空的话,表示ASM将查找系统中所有ASM拥有读写权限的设备。 ASM_DISKGROUPS : 指定实例启动或alter diskgroup all mount语句时要加载的磁盘组,如果为空的话,那么实际 就仅启动到NOMOUNT状态了。如果是使用SPFILE的话,该参数一般不需要手动修改,ASM能够自动 更新该初始化参数中的值。
http://ajava.org/readbook/db/ora10yhytz/16124.html
|
|