ASM相关概念及实例创建
一、ASM相关概念(概念摘自:一弥沙的世界)
1.什么是ASM(Auto Storage Management)
1 简称自动存储管理,是一种用于管理磁盘的工具 2 能够在多个物理设备之间实现条带化、镜像数据文件、恢复文件等 3 文件按分配单元AUs(allocation units)平衡分布在磁盘组的所有磁盘中,ASM使用索引技术来跟踪每个AUs的位置 4 支持联机磁盘的动态增加和减少,当磁盘发生变化后,AUs会自动重新实现动态分布 5 支持RAC集群技术,每一节点上运行一个ASM实例,各ASM实例间能实现点对点通讯 6 是一个纯软件级别的实现方式,第三方RAID工作在卷层次上,使用统一条带大小,ASM可以工作在文件层次级别,不同文件可以使用不同的条带大小
2.ASM的优点
1 磁盘增加:增加磁盘变得非常容易。无需停机时间,并且文件区域自动重新分配。 2 I/O 分配:I/O 自动分布在所有可用的磁盘上,无需人工干预,从而减少了热点出现的可能性。 3 带区宽度:在重做日志文件中分段可以细分(K,以获得更快的传输速率),对于数据文件,带区则略大一些(MB,以一次性传输大量的数据块)。 4 缓冲:ASM 文件系统不进行缓冲,直接进行输入/输出。 5 镜像:如果硬件镜像不可用,则可以容易地建立软件镜像。 6 核心化的异步I/O :实现核心化的异步I/O 无需特殊的设置,并且无需使用原始或第三方的文件系统(如 Veritas Quick I/O)
3.Oracle 常用数据文件的RAID级别
1 SYSTEM、UNDO表空间通常置于RAID 1卷上 2 联机重做日志通常置于RAID 0卷上 3 控制文件通常置于RAID 0+1 卷上 4 数据文件通常置于RAID 5卷上
4.ASM体系结构(主要由ASM实例及ASM磁盘组组成)
1 ASM的使用需要创建一个ASM实例,用于管理ASM磁盘组 2 ASM磁盘组由ASM磁盘组成,可以包含一个或多个ASM磁盘 3 ASM磁盘可以是实际的磁盘,也可以是磁盘的某个分区,或LVM管理的逻辑卷,但必须是未格式化的原始设备 4 ASM磁盘组的大小为该组内ASM磁盘大小的总和,可使用的容量则根据容错级别而有不同的可用大小
5.ASM实例及RDBMS实例
1 ASM实例类似于普通的数据库实例(RDBMS),同样由SGA和一堆后台进程组成,对大多数系统而言,SGA只需64 MB即可 2 ASM实例中的LargePool 用于存放Extent Map,可以根据数据库的大小来计算LargePool的大小,通常100GB大小需要1MB存放Extent Map 3 普通的RDBMS实例会定位数据文件并打开其数据文件,而在使用ASM存储的数据库中,该工作由ASM实例接管,即ASM实例用于定位和管理ASM磁盘,磁盘组。 4 ASM实例拥有类似于普通RDBMS实例的后台进程,如SMON,PMON,LGWR,DBWR,CKPT等,还增添了两个新进程,一类是RBAL,一类是ARBn 5 RBAL:用于协调和管理磁盘组之间的动态平衡 6 ARBn:可以为多个,用于完成AU的移动 7 ASM实例仅仅是定位管理ASM磁盘,不能加载或打开数据库,因此也无法读取数据字典信息 8 ASM实例通常有个参数,只能使用口令文件或操作系统身份验证作为sysdba或sysoper来启动或关闭该实例。
1 一个ASM实例可以为多个RDBMS提供服务,可以在一台主机上创建多个ASM实例,但通常一台主机上使用一个ASM实例 2 如果一个实例服务于多个RDBMS,建议将ASM的ASM_HOME与DB的ORACLE_HOME分开,便于日后的升级与维护 3 ASM磁盘组的创建与配置在ASM实例启动之后
1 使用ASM磁盘的RDBMS实例与普通的RDBMS实例相同,但多出了两个后台进程,RBAL,ASMB。 2 ASMB借助某个服务器进程如oracle+ASM1建立普通RDBMS实例到ASM实例的会话,并传递磁盘文件的相关信息3 注意:ASM 实例并不代替RDBMS实例来读取或写入数据文件,数据是直接在ASM磁盘和RDBMS实例传递,ASM实例仅用于定位数据文件所在的asm磁盘,盘区以及所需的相关信息。假定新增加数据文件,则RDBMS告知ASM实例要创建数据文件,ASM实例则分配盘区(extent),并创建盘区映射地址返回给RDBMS实例,RDBMS则将数据直接写入到磁盘组。
6.ASM实例中存储的文件类型
1 控制文件,参数文件,联机日志文件,归档日志文件,数据文件,临时文件 2 RMAN备份集,映像副本,控制文件备份集,datapump 转储文件、Change Tracing file
二、创建ASM实例(下面基于VMware + SOLARIS10 + Oracle 10g R2演示)
2.查看添加的裸设备
1 -bash-3.00$ cd /dev/rdsk 2 -bash-3.00$ ls -l c2t*d0s1 3 -- 红色字体raw表示以字符方式访问 4 lrwxrwxrwx 1 root root 64 Apr 14 22:29 c2t0d0s1 -> http://www.cnblogs.com/devices/pci@0,0/pci15ad,790@11/pci15ad,1976@2/sd@0,0:b,raw 5 lrwxrwxrwx 1 root root 64 Apr 14 22:29 c2t1d0s1 -> http://www.cnblogs.com/devices/pci@0,0/pci15ad,790@11/pci15ad,1976@2/sd@1,0:b,raw 6 lrwxrwxrwx 1 root root 64 Apr 15 01:26 c2t2d0s1 -> http://www.cnblogs.com/devices/pci@0,0/pci15ad,790@11/pci15ad,1976@2/sd@2,0:b,raw 7 lrwxrwxrwx 1 root root 64 Apr 15 01:26 c2t3d0s1 -> http://www.cnblogs.com/devices/pci@0,0/pci15ad,790@11/pci15ad,1976@2/sd@3,0:b,raw 8 -bash-3.00$ 9 -bash-3.00$ cd /dev/dsk 10 -bash-3.00$ ls -l c2t*d0s1 11 -- 红色b 表示以块的方式访问 12 lrwxrwxrwx 1 root root 60 Apr 14 22:29 c2t0d0s1 -> http://www.cnblogs.com/devices/pci@0,0/pci15ad,790@11/pci15ad,1976@2/sd@0,0:b 13 lrwxrwxrwx 1 root root 60 Apr 14 22:29 c2t1d0s1 -> http://www.cnblogs.com/devices/pci@0,0/pci15ad,790@11/pci15ad,1976@2/sd@1,0:b 14 lrwxrwxrwx 1 root root 60 Apr 15 01:26 c2t2d0s1 -> http://www.cnblogs.com/devices/pci@0,0/pci15ad,790@11/pci15ad,1976@2/sd@2,0:b 15 lrwxrwxrwx 1 root root 60 Apr 15 01:26 c2t3d0s1 -> http://www.cnblogs.com/devices/pci@0,0/pci15ad,790@11/pci15ad,1976@2/sd@3,0:b 16 -bash-3.00$
3.更改裸设备属性 属组
1 # chown -R oracle:oinstall /dev/rdsk/c2t*d0s1 2 # chmod 660 /dev/rdsk/c2t*d0s1 3 # ls -l /dev/rdsk/c2t*d0s1 4 lrwxrwxrwx 1 root root 64 Apr 14 22:29 /dev/rdsk/c2t0d0s1 -> http://www.cnblogs.com/devices/pci@0,0/pci15ad,790@11/pci15ad,1976@2/sd@0,0:b,raw 5 lrwxrwxrwx 1 root root 64 Apr 14 22:29 /dev/rdsk/c2t1d0s1 -> http://www.cnblogs.com/devices/pci@0,0/pci15ad,790@11/pci15ad,1976@2/sd@1,0:b,raw 6 lrwxrwxrwx 1 root root 64 Apr 15 01:26 /dev/rdsk/c2t2d0s1 -> http://www.cnblogs.com/devices/pci@0,0/pci15ad,790@11/pci15ad,1976@2/sd@2,0:b,raw 7 lrwxrwxrwx 1 root root 64 Apr 15 01:26 /dev/rdsk/c2t3d0s1 -> http://www.cnblogs.com/devices/pci@0,0/pci15ad,790@11/pci15ad,1976@2/sd@3,0:b,raw
嗯?什么都没有改变!但此步骤不可省略,否则用dbca添加创建磁盘组时,无法识别添加的磁盘。了解这块的同学,可以给我留言!
4.设置环境变量:DISPLAY
1 export DISPLAY=192.168.2.1:0.0
哈哈,现在就可以利用xmanager+dbca来安装ASM了!