ASM 是 Oracle 数据库 10g 中一个非常出色的新特性,它以平台无关的方式提供了文件系统、逻辑卷管理器以及软件 RAID 等服务。ASM 可以条带化和镜像磁盘,从而实现了在数据库被加载的情况下添加或移除磁盘以及自动平衡 I/O 以删除“热点”。它还支持直接和异步的 I/O 并使用 Oracle9i 中引入的 Oracle 数据管理器 API(简化的 I/O 系统调用接口);ASM 不是一个通用的文件系统,并只能用于 Oracle 数据文件、重做日志以及控制文件。ASM 中的文件既可以由数据库自动创建和命名(通过使用 Oracle 管理文件特性),也可以由 DBA 手动创建和命名。由于操作系统无法访问 ASM中存储的文件,因此对使用 ASM 文件的数据库执行备份和恢复操作的唯一途径就是通过恢复管理器 (RMAN);ASM 作为单独的 Oracle 实例实施,只有它在运行时其他数据库才能访问它。在 Linux 上,只有运行 OCSSD 服务(由 Oracle 通用安装程序默认安装)才能使用 ASM。ASM 需要的内存不多:对大多数系统,只需 64 MB          ——摘自百度百科
 
 今天在虚拟环境下使用Oracle10g_R2配置了ASM自动储存管理技术,感觉oracle的技术实在博大精深,以后要还得多用心去学,记录配置过程如下:
参考文章:
http://blog.csdn.net/scs2043/archive/2010/04/16/5494041.aspx,感谢作者分享

环境介绍:
物理机环境:WIN7专业版32位,3G内存,VMware7.0 work station
虚拟操作系统:Centos4.8 64位,1G内存,四块虚拟硬盘,三块为ASM使用,大小为60G,操作下载地址如下:
http://ftp.tcc.edu.tw/Linux/CentOS/4.8/isos/x86_64/  (Oracle10g不支持红帽5,故采用Centos4.8系统,支持yum方式安装软件包)
数据库软件版本:Oracle10g_R2 64位,下载地址如下:
http://www.oracle.com/technetwork/database/database10g/downloads/index.html

一:安装Oracle10G软件,这部分内容可参考手册上快速安装文档,此处不再赘述

 
二:下载ASM相关软件并安装,注意同操作系统的版本对应关系
 

  1. [root@oracasm ~]# cd /usr/local/src/  
  2. [root@oracasm src]# uname -r  
  3. 2.6.9-89.EL  
  4. [root@oracasm src]# cat download.txt  //这里为了简便,可以把地址写到文本文件中再通过wget命令一起下载  
  5. http://oss.oracle.com/projects/oracleasm-support/dist/files/RPMS/rhel4/amd64/2.1.3/oracleasm-support-2.1.3-1.el4.x86_64.rpm  
  6. http://download.oracle.com/otn_software/asmlib/oracleasmlib-2.0.4-1.el4.x86_64.rpm  
  7. http://oss.oracle.com/projects/oracleasm/dist/files/RPMS/rhel4/amd64/2.0.5/2.6.9-89.EL/oracleasm-2.6.9-89.ELxenU-2.0.5-1.el4.x86_64.rpm  
  8. http://oss.oracle.com/projects/oracleasm/dist/files/RPMS/rhel4/amd64/2.0.5/2.6.9-89.EL/oracleasm-2.6.9-89.ELsmp-2.0.5-1.el4.x86_64.rpm  
  9. http://oss.oracle.com/projects/oracleasm/dist/files/RPMS/rhel4/amd64/2.0.5/2.6.9-89.EL/oracleasm-2.6.9-89.ELlargesmp-2.0.5-1.el4.x86_64.rpm  
  10. http://oss.oracle.com/projects/oracleasm/dist/files/RPMS/rhel4/amd64/2.0.5/2.6.9-89.EL/oracleasm-2.6.9-89.EL-debuginfo-2.0.5-1.el4.x86_64.rpm  
  11. http://oss.oracle.com/projects/oracleasm/dist/files/RPMS/rhel4/amd64/2.0.5/2.6.9-89.EL/oracleasm-2.6.9-89.EL-2.0.5-1.el4.x86_64.rpm  
  12. [root@oracasm src]# wget -i download.txt  
  13. [root@oracasm src]# rpm -Uvh oracleasm*    //安装ASM相关软件包,若有依赖关系,使用yum安装相关依赖包  
  14. warning: oracleasm-2.6.9-89.EL-2.0.5-1.el4.x86_64.rpm: V3 DSA signature: NOKEY, key ID b38a8516  
  15. Preparing...                ########################################### [100%]  
  16.    1:oracleasm-support      ########################################### [ 14%]  
  17.    2:oracleasm-2.6.9-89.ELxe########################################### [ 29%]  
  18.    3:oracleasm-2.6.9-89.EL  ########################################### [ 43%]  
  19.    4:oracleasm-2.6.9-89.EL-d########################################### [ 57%]  
  20.    5:oracleasm-2.6.9-89.ELla########################################### [ 71%]  
  21.    6:oracleasm-2.6.9-89.ELsm########################################### [ 86%]  
  22.    7:oracleasmlib           ########################################### [100%]  

三:配置ASMLib,创建ASM磁盘(在创建ASM磁盘前需要用fdisk工具对磁盘进行分区) 

  1. [root@oracasm ~]# /etc/init.d/oracleasm configure  
  2. Configuring the Oracle ASM library driver.  
  3.  
  4. This will configure the on-boot properties of the Oracle ASM library  
  5. driver.  The following questions will determine whether the driver is  
  6. loaded on boot and what permissions it will have.  The current values  
  7. will be shown in brackets ('[]').  Hitting <ENTER> without typing an  
  8. answer will keep that current value.  Ctrl-C will abort.  
  9.  
  10. Default user to own the driver interface []: oracle  
  11. Default group to own the driver interface []: dba  
  12. Start Oracle ASM library driver on boot (y/n) [n]: y  
  13. Scan for Oracle ASM disks on boot (y/n) [y]: y  
  14. Writing Oracle ASM library driver configuration: done  
  15. Initializing the Oracle ASMLib driver: [  OK  ]  
  16. Scanning the system for Oracle ASMLib disks: [  OK  ]  
  17.  
  18. [root@oracasm ~]# oracleasm createdisk ASMVOL1 /dev/sdb1   
  19. Writing disk header: done  
  20. Instantiating disk: done  
  21. [root@oracasm ~]# oracleasm listdisks  
  22. ASMVOL1  
  23. ASMVOL2  
  24. ASMVOL3  

四:使用DBCA配置ASM自动存储管理和创建数据库
1:运行dbca,选择配置ASM,提示要先开启CSS服务

2:以root用户身份运行相关脚本


3:输入ASM口令并定义磁盘组的名称和组员,冗余方案(三个方案的具体差别还有待研究)

4:运行dbca,选择创建数据库,使用ASM存储,输入ASM实例的口令

5:选择磁盘组,按照自己的具体要求进行数据库的创建工作

五:测试

 

六:ASM实例和Oracle实例的启动和关闭(要先启动ASM实例,然后启动Oracle实例,关闭的顺序则相反;若启动的时候出现“unable to connect Cluster Manager”提示,一般是由于listener未启动)

 

[oracle@oracasm app]$ crsctl check css  //查看CSS服务状态
CSS appears healthy

备注:使用RHEL5 64位安装10G_R2的时候再数据库软件安装到83%的时候出现错误截图如下,点击“继续”按钮也可安装成功,估计是RHEL5同10G不兼容造成;使用RHEL5配置ASM,启动CSS服务时会出现如下错误,原因是libstdc包版本不匹配
“error while loading shared libraries: libstdc++.so.5: cannot open shared object file: No such file or directory”,使用Centos4.8则不会出现上述两个问题,因此笔者建议在生产环境中若使用10G,操作系统也尽量选择10G所兼容的版本…