云和恩墨大讲堂- ASM详解.pdf
文本预览下载声明
ASM 自动存储管理技术经历多个年头,目前已经广泛使用于各个领域的数据库存储解决方案。
谈到ASM 相信大家可能会参杂着熟悉而陌生的感觉,熟悉在于目前大家使用的11g rac 中基本都是使用ASM ,陌生在于大家
平时可能只是基本的使用,对asm 了解并不全面,例如:数据库实例是怎么和asm 交互和分工的、ASM 存在哪些特性、数据库
各种文件是怎样放于asm 存储中、它的元数据怎么存放等等。
开始
接下来我带大家重新全面认识ASM :
Oracle10g 之前,存储设备的使用情况 (在UNIX 或者LINUX 环境中)如下 :
操作系统上安装逻辑卷管理器(LVM);
通过LVM 将多个磁盘做成卷组 ;
在卷组上划分逻辑卷(logical volume);
在逻辑卷上创建文件系统 ;
Rac 环境下需要第三方共享集群软件。
1、Oracle10g 之后引入的专用文件系统ASM ,为数据库文件的管理提供了很好的支持;
2、DBA 能够完全在 Oracle 框架内执行许多任务。利用 ASM 来将一组磁盘转换成一个高可伸缩的和高性能的文件系统/卷
管理器 ;
3 、磁盘组提供了直接作为原始设备来访问这个空间,并仍提供文件系统的便利性和灵活性的好处。
RAC 环境下的asm 结构 :
ASM 的出现是为RDBMS 管理文件存储
1、ASM 中的适合存放文件类型包括:数据文件datafile 、控制文件controlfile 、重做日志redolog、归档日志archivelog 、闪回
日志flashback log 、spfile 、RMAN 备份以及block tracking file、datapump 文件
2、注意ASM 不会替代RDBMS 去实施IO 读写,很多对这一点存在误解,认为RDBMS 发送IO request 给ASM ,ASM 去做真正
的IO 操作,这是错误的。
3 、ASM 只负责将存储空间地址返回给RDBMS,真正的IO 还是由RDBMS 进程去完成,和不用ASM 的裸设备一样
4 、因此ASM 不是IO 的中间层,也就不存在因为ASM 而出现所谓的IO 瓶颈
ASM 实例
ASM instance 的主要任务之一就是管理ASM metadata 元数据。ASM Instance 在10.2 中使用与RDBMS 一样的2 进制软件,到
11.2 中分开独立实例,它类似于ORACLE RDBMS INSTANCE 有其SGA 和大多数主要后台进程。
ASM 实例 中的 SGA 分为四个主要区域,如图所示:
共享池:用于元数据信息
大型池:用于并行操作 ASM
高速缓存:用于在重新平衡操作期间读取和写入块
空闲内存:可用的未分配内存
ARCn :归档进程
CKPT :检查点进程
DBWn :数据库写进程
DIAG :诊断进程
Jnnn :作业队列进程
LGWR :日志写进程
PMON :进程监视器进程
PSP0 :进程衍生进程
QMNn :队列监视器进程
RECO :恢复器进程
SMON :系统监视器进程
VKTM :虚拟计时器进程
对于 ASM 实例,这些进程执行的任务和数据库实例中的不同。例如: ASM 实例的 SGA 中不包含日志缓冲区,该实例
也不使用联机重做日志。ASM 实例中的 LGWR 进程将事件记录信息复制到 ASM 磁盘组。
如果 ASM 是以集群方式建立的,则将在 ASM 实例中运行与集群管理相关的附加进程。 其中一些进程如下所示:
LMON :全局入队服务监视器进程
LMDn :全局入队服务守护程序
LMSn :全局高速缓存服务进程
LCKn :锁定进程
始化参数
ASM 实例由参数文件控制,通常设置的参数包括:
1、ASM_POWER_LIMITE :默认为1,表示ASM 磁盘组在进行rebalance 时的并行度,取值从1 到11。
2、ASM_DISKSTRING 是一个与操作系统相关的值,ASM 使用它来限制搜索时考虑的磁盘集。默认值为空字
显示全部