--========================
-- 创建ASM实例及ASM数据库
--========================
一、ASM相关概念
1.什么是ASM(Auto Storage Management)
简称自动存储管理,是一种用于管理磁盘的工具
能够在多个物理设备之间实现条带化、镜像数据文件、恢复文件等
文件按分配单元AUs(allocation units)平衡分布在磁盘组的所有磁盘中,ASM使用索引技术来跟踪每个AUs的位置
支持联机磁盘的动态增加和减少,当磁盘发生变化后,AUs会自动重新实现动态分布
支持RAC集群技术,每一节点上运行一个ASM实例,各ASM实例间能实现点对点通讯
是一个纯软件级别的实现方式,第三方RAID工作在卷层次上,使用统一条带大小,ASM可以工作在文件层次级别,不同文件可以使用
不同的条带大小
2.ASM的优点
磁盘增加:增加磁盘变得非常容易。无需停机时间,并且文件区域自动重新分配。
I/O 分配:I/O 自动分布在所有可用的磁盘上,无需人工干预,从而减少了热点出现的可能性。
带区宽度:在重做日志文件中分段可以细分(K,以获得更快的传输速率),对于数据文件,带区则略大一些(MB,以一次性传输大量的数据块)。
缓冲:ASM 文件系统不进行缓冲,直接进行输入/输出。
镜像:如果硬件镜像不可用,则可以容易地建立软件镜像。
核心化的异步I/O :实现核心化的异步I/O 无需特殊的设置,并且无需使用原始或第三方的文件系统(如 Veritas Quick I/O)
3.Oracle 常用数据文件的RAID级别
SYSTEM、UNDO表空间通常置于RAID 1卷上
联机重做日志通常置于RAID 0卷上
控制文件通常置于RAID 0+1 卷上
数据文件通常置于RAID 5卷上
4.ASM体系结构(主要由ASM实例及ASM磁盘组组成)
ASM的使用需要创建一个ASM实例,用于管理ASM磁盘组
ASM磁盘组由ASM磁盘组成,可以包含一个或多个ASM磁盘
ASM磁盘可以是实际的磁盘,也可以是磁盘的某个分区,或LVM管理的逻辑卷,但必须是未格式化的原始设备
ASM磁盘组的大小为该组内ASM磁盘大小的总和,可使用的容量则根据容错级别而有不同的可用大小
5.ASM实例及RDBMS实例
ASM实例类似于普通的数据库实例(RDBMS),同样由SGA和一堆后台进程组成,对大多数系统而言,SGA只需64 MB即可
ASM实例中的LargePool 用于存放Extent Map,可以根据数据库的大小来计算LargePool的大小,通常100GB大小需要1MB存放Extent Map
普通的RDBMS实例会定位数据文件并打开其数据文件,而在使用ASM存储的数据库中,该工作由ASM实例接管,即ASM实例用于定位和
管理ASM磁盘,磁盘组。
ASM实例拥有类似于普通RDBMS实例的后台进程,如SMON,PMON,LGWR,DBWR,CKPT等,还增添了两个新进程,一类是RBAL,一类是ARBn
RBAL:用于协调和管理磁盘组之间的动态平衡
ARBn:可以为多个,用于完成AU的移动
ASM实例仅仅是定位管理ASM磁盘,不能加载或打开数据库,因此也无法读取数据字典信息
ASM实例通常有个参数,只能使用口令文件或操作系统身份验证作为sysdba或sysoper来启动或关闭该实例。
关于sysdba或sysoper区别请参考:system sys,sysoper sysdba 的区别
一个ASM实例可以为多个RDBMS提供服务,可以在一台主机上创建多个ASM实例,但通常一台主机上使用一个ASM实例
如果一个实例服务于多个RDBMS,建议将ASM的ASM_HOME与DB的ORACLE_HOME分开,便于日后的升级与维护
ASM磁盘组的创建与配置在ASM实例启动之后
使用ASM磁盘的RDBMS实例与普通的RDBMS实例相同,但多出了两个后台进程,RBAL,ASMB。
ASMB借助某个服务器进程如oracle+ASM1建立普通RDBMS实例到ASM实例的会话,并传递磁盘文件的相关信息
RBAL打开通过ASM实例定位的ASM磁盘
注意:ASM 实例并不代替RDBMS实例来读取或写入数据文件,数据是直接在ASM磁盘和RDBMS实例传递,ASM实例仅用于定位数据文件
所在的asm磁盘,盘区以及所需的相关信息。假定新增加数据文件,则RDBMS告知ASM实例要创建数据文件,ASM实例则分配盘区
(extent),并创建盘区映射地址返回给RDBMS实例,RDBMS则将数据直接写入到磁盘组。
6.ASM实例中存储的文件类型
控制文件 参数文件 联机日志文件 归档日志文件 数据文件 临时文件
RMAN备份集、映像副本 控制文件备份集 datapump 转储文件、Change Tracing file