对Oracle ASM详细解剖 |
本文标签:Oracle ASM ASM:Automatic Storage Management是Oracle 极力推荐的一种面向Oracle数据库的存储的实际解决方案, Oracle ASM 与RDBMS 是十分相似的,Oracle ASM 也是由文件与实例组成, 也可以通过sqlplus 工具来维护 。 ASM 实例的创建和删除也可以用DBCA 这个命令来操作 。在dbca 的第一个界面选择配置自动存储管理就可以了 。 ASM 实例需要CSS 进程, 如果是非RAC 环境, 在启动ASM 实例之前会提示用脚本 $ORACLE_HOME/bin/localconfig add 启动CSS 。 1. Oracle ASM 实例由SGA 和后台进程组成 。 1. SGA 组成: ASM 实例的SGA包括Buffer Cache, Share Pool, Large Pool等 。 需要注意的是Share Pool, 因为Extent Map 要放在这部分的内存中,需要更具数据量来估计Extent Map 的大小做相应的调整 。 Extent Map 的大小可以根据所有文件大小的和来估算,使用下面的语句来计算所有文件和:
这3个sum 的总和对应着数据库存放Oracle ASM中所有文件大小总和, 对于使用External Redundancy 的磁盘组, 每100G 需要1MB 的Extent Map, 根据这个比例计算Extent Map 所需要的空间,在加上额外的2MB就可以了 。 在实际工作中一般不需要考虑ASM SGA的配置, 使用Oracle 提供的缺省值就可以了 。 1.2 后台进程 ASM 实例比RDBMS 实例多2个进程: RBAL 和 ABRn 。 RBAL: 这个进程也叫Rebalancer进程, 负责规划ASM 磁盘组的Reblance活动 。 ABRn:是RBAL进程的子进程,这个进程在数量上可以有多个, n从1'9, 这组进程负责真正完成Reblance活动 。 使用ASM 作为存储的RDBMS 实例也会多出2个进程: RBAL 和 ASMB RBAL: 这个进程的主要功能是打开每个磁盘的所有磁盘和数据的Rebalance 。 ASMB: 这个进程作为ASM 实例和数据库实例之间的信息通道 。 这个进程负责与ASM 实例的通信, 它先利用Diskgroup Name 从CSS 获得管理该Diskgroup 的ASM 实例的连接串, 然后建立到ASM 的持久连接, 两个实例之间通过这条连接定期交换信息,同时也是一种心跳机制 。 RDBMS 实例要想使用ASM 作为存储, RDBMS 实例必须在启动时从Oracle ASM 实例获得Extent Map, 以后发生磁盘组的维护操作, ASM 实例还要把Extent Map的更新信息通知给RDBMS 实例, 这2个实例间的信息交换就是他你哦刚过ASMB 进程完成的 。 这也就为什么: ASM 实例必须要先于数据库实例启动,和数据库实例同步运行,迟于数据库实例关闭 。 注意: ASM 实例和数据库实例的关系可以是1:1, 也可以是1:n 。如果是1:n, 最好为ASM 安装单独的ASM_HOME 。 2. ASM 配置 ASM 可以使用裸设备 或者ASMLib 方式, 因为裸设别的维护比较复杂,在此只讲解ASMLib 方式 。 对应不同的操作系统, 需要不同的包,下载的时候一定要和操作系统内核一致 。 我的操作系统是 Red hat 4 update 7. 内核版本是2.6.9-78.ELSMP 。
安装包:
安装完之后进行配置:
会有相应的提示, 回答 oracle , dba, y, y 就可以了 分别对应默认用户, 默认组,随系统自启动, 启动时设置权限 。
关于oracleasm 的更多用法参考help:
上述的相关内容就是对Oracle ASM详解,希望会给你带来一些帮助在此方面 。 |