该参数也可以在增加磁盘时指定:
SQL> alter diskgroup ORADG add disk 'ORCL:VOL6' rebalance power 11;Diskgroup altered.
我们可以看一下,最初我的磁盘使用情况为:
SQL> select name,total_mb,free_mb from v$asm_disk;NAME TOTAL_MB FREE_MB
-------------------- ---------- ----------
2870 0
VOL1 19077 6571
VOL2 19077 6497
VOL3 19077 6558
VOL4 12228 4321
VOL6 104187 976226 rows selected.
经过的自动调整均衡之后,磁盘空间使用情况变为:
SQL> select name,total_mb,free_mb from v$asm_disk;NAME TOTAL_MB FREE_MB
-------------------- ---------- ----------
2870 0
VOL1 19077 13337
VOL2 19077 13381
VOL3 19077 13337
VOL4 12228 8548
VOL6 104187 729666 rows selected.
ASM在存储管理上实在是给我们带来了更多的便利之处。
----------------------------------------------------------------------------------------------------
ASM体系结构
1 ASM 作为Oracle推荐的首选方案,除了具有集群文件系统的功能,同时还集成了冗余,I/O分散等卷管理器的功能.可以通过两种方式使用ASM,
包括建立在裸设备上,如果安装ASMLIB,也可以建立在块设备上.
2 ASM Instance 与RDBMS 的交互
当ASM实例挂载一个磁盘组之后,ASM会把Disk Group Name, ASM Instance Name, Oracle Home Path等信息注册到CSS,这些信息会被用来构造Connect String.
当RDBMS启动过程中需要访问某个ASM File时, RDBMS会和CSS联系,从CSS中获取Connect String,然后发起一个到ASM实例的连接,这条ASM和RDBMS实例之间的初始连接叫作
Umbilicu(脐带),只要RDBMS打开ASM File,这个连接就会保持活动.直到所有ASM File都被RDBMS实例关闭之后,这个连接才会关闭.
3 SGA
ASM 的SGA和RDBMS没有区别, 也包括Buffer Cache, Shared Pool, Large Pool等部分,需要注意的是Shared Pool, 因为Extent Map也放在这部分内存中.
Extent Map: 存储RDBMS实例中的存储分配单元Extent与ASM实例中的分配单元AU的对应关系.
4 后台进程
ASM实例:
1) RBAL: reblancer进程,负责规划ASM磁盘组的Reblance活动
2) ABRn: 是RBAL进程的子进程,真正完成Reblance活动
RDBMS实例:
1) RBAL: 负责打开每个磁盘组的所有磁盘
2) ASMB: 这个进程作为ASM实例和数据库实例之间的信息通道.这个进程负责与ASM实例的通信,它先利用Diskgroup name从CSS获得管理该Diskgroup的ASM实例的连接串,然后建立到ASM的持久连接,两个实例通过这条连接定期交换信息,同时也是一种心跳机制.
3)O0nn 01-10:这组进程建立到ASM实例的连接,某些长时间操作比如创建数据文件,RDBMS会通过这些进程向ASM发送信息
5 文件
ASM实例的运行表面上看不需要任何文件,实际上ASM也需要许多"文件"用来保证正常运行,只是这些文件是Oracle内部维护的,对于DBA不可见,而且也不需要DBA的干预.
6 存在的问题
问题记录:
1) Oracle文档一再强调的在添加/删除DiskGroup, Disk,在ASM层面的管理操作时不影响应用系统的理解是, 在RAC层面, 对某一个节点上ASM操作,这个节点上的RDBMS必须Shutdown,ASM 实例必须Dismount. 但由于这是RAC,业务不会受到影响,还可以走另一个节点. 不是这样的.
ASM 与RAC 并没有必然的关联, Oracle一再强调的可以在线管理,是指DiskGroup组之间不会互相影响.
假定你想删除一个DiskGroup,只要这个DiskGroup上的文件在RDBMS不是 ACTIVE的就行.
2) 对ASM的理解,ASM其实就是LVM披上了Oracle的马甲,
Disk 对应PV, Diskgroup 对应VG,
3) ASM 实例的Spfile, 或pfile 在哪里呢?
$ORACLE_HOME/dbs/spfile+ASM.ora