记录下在CENTOS上创建ASM的步骤:
1.创建ASM的Candidate disks
可以有2种方法创建和配置candidate disks,1)是用ASMLIB Driver 2)是手工配置。采用第一种方法,简单。
1.1 准备好硬盘,fdisk 分区,mkfs格式化分区
1.2 安装ASMLIB Driver: 安装3个rpm
1.2.1 oracleasm-support-version.arch.rpm
1.2.2 oracleasm-kernel-verion.arch.rpm
1.2.3 oracleasmlib-verion.arch.rpm
以上三个包可以从oracle官网得到,http://www.oracle.com/technetwork/topics/linux/asmlib/index-101839.html
1.3 配置 /etc/init.d/oracleasm configure
1.4 创建candidate disks:
/etc/init.d/oracleasm createdisk Disk01 /dev/sda1
逐个创建新增加的分区。扫描加入这些新分区:
/etc/init.d/oracleasm scandisks
查看已经加入disk group的candidate disks:
/etc/init.d/oracleasm listdisks
2. 安装ASM: ASM 在oracle10g的时候,是随database一起安装的。在oracle 11g,就和grid infrastructure 一起安装了。
首先下载oracle 11g grid infrastructure ,下载的时候,点击database download页面的"see all"才能看到下载链接。
安装时,选择安装grid infrastructure同时创建ASM实例,如果只安装software only,那需要ASMCA来重新创一个ASM 实例。
在整个安装过程中,我遇到了6个问题:
1. 在/etc/init.d/oracleasm configure 这一步: 提示 initializating the oracle ASM Driver [FAILED]
解决方法: 首先检查/var/log/oracleasm: 发现 Loading module "oracleasm" failed 的log,说明ASMLIB Driver没有安装好。
检查/lib/modules,发现 xxxxx/kernel/drivers/addon/oracleasm没有oracleasm.ko的文件,重新安装ASMLIB Driver,解决问题
2. 在/etc/init.d/oracleasm createdisk Db01 /dev/sdc1这一步,提示 marking disk 'Db01' as an ASM disk [FAILED]
解决方法: 首先检查/var/log/oracleasm : 发现unable to open device "/dev/sdc1": device or resource busy.
作为ASM Disk groups中的candidate disks,不能被挂载到某一个文件目录,所以umount /dev/sdc1, 然后删除/etc/fstab中所有candidate disk的记录
3. 在新加一个或多个candidate disk(s)之后,需要/etc/init.d/oracleasm scandisks来确定是否真正被ASM识别
4. 在安装grid infrastructure的时候,在第N步,需要指定SYS和ASMSNMP的用户密码,会发现密码框失效,密码输不进,不知道是BUG还是Oracle就是这样写的程序,当点击"help",并将"help"窗口拉到底,保持正常窗口大小(不能最小化)后,就能输入密码了。
5. 接第四个问题,密码必须按照密码规则来,否则会出现:ora-00922的错误
6. oracle 11g grid infrastructure的安装要求: 1.5GB RAM & 2.97GB SWAP
测试ASM实例: