WindowsXP Pro 安装VMware GSX Server
用vmware安装了RHEL3
虚拟了一个主硬盘sda,用来安装系统
添加了四块虚拟硬盘sdb-sde,准备用来安装ASM的Oracle10g
系统安装完毕
安装Oracle10g,不作详细描述了
安装完毕之后开始创建数据库
选择ASM类型,到创建磁盘组那一步,发现找不到可用的硬盘。
指定discovery string为/dev/*
dbca死掉了
自动启动的ASM实例也登陆不了
没办法,重启虚拟机
之后参考了一系列文章
包括:
Oracle Magazine中的“Add Storage, Not Projects”
OTN上的Tuning Oracle Database 10g on Linux Using ASM
10g的联机文档
发现全部没有说当用dbca创建Disk Group的时候,为什么会找不到应该有的磁盘,也没有说磁盘应该是怎样的文件系统,或者说只能当成裸设备
于是将磁盘格式化成ext3文件系统,mount到自行创建的目录中指定discovery string为这个目录,启动实例,检查v$asm_disk视图,仍然没有可用的磁盘
后来在google上搜,发现了还有oracleasm这个东东要从OTN上下载,用来管理asm的磁盘组下载完毕以后,是几个rpm包,安装正常但是enable的时候,总是报module加载失败查看/var/log/messege文件,发现报系统内核版本不匹配于是又上网下载新的内核,安装,depmod -a
重新启动,OK
ln -s ../init.d/oracleasm S99oracleasm
ln -s ../init.d/oracleasm K01oracleasm
以便下次系统启动的时候会自动加载ASMlib driver
#/etc/init.d/oracleasm createdisk VOL1 /dev/sdb
#/etc/init.d/oracleasm createdisk VOL2 /dev/sdc
#/etc/init.d/oracleasm createdisk VOL3 /dev/sdd
#/etc/init.d/oracleasm createdisk VOL4 /dev/sde
修改$ORACLE_HOME/dbs/init+ASM.ora文件
添加一行:asm_diskstring='ORCL:VOL*'
启动实例
报错,ORA-29701: unable to connect to Cluster Manager
查google,查不到
再查metalink,原来是因为安装完10g以后,就直接把/etc/inittab中的
h1:35:respawn:/etc/init.d/init.cssd run /dev/null 2&1
这句注释了
原来这就是10g内置的cluster manager
取消注释
重新启动系统
再次启动实例,OK
代码:
SQL select disk_number,label from v$asm_disk;
DISK_NUMBER LABEL
----------- ----
0 VOL1
1 VOL2
2 VOL3
&n
创建磁盘组,报错
代码:
SQL create diskgroup dgroup1 normal redundancy
2
failgroup fgroup1 disk 'VOL1','VOL2'
3
failgroup fgroup2 disk 'VOL3','VOL4';
create diskgroup dgroup1 normal redundancy
*
ERROR at line 1:
ORA-15018: diskgroup cannot be created
ORA-15031: disk specification 'VOL4' matches no disks
ORA-15031: disk specification 'VOL3' matches no disks
ORA-15031: disk specification 'VOL2' matches no disks
ORA-15031: disk specification 'VOL1'
再去查10g的联机文档
发现disk name应该是跟asm_diskstring的写法一样
代码:
SQL create diskgroup dgroup1 normal redundancy
2
failgroup fgroup1 disk 'ORCL:VOL1','ORCL:VOL2'
3
failgroup fgroup2 disk 'ORCL:VOL3','ORCL:VOL4';
Diskgroup created.
OK,通过
代码:
SQL col name for a10
SQL set linesize 999
SQL select * from v$asm_diskgroup;
然后,使用dbca,创建ASM类型的数据库,基本上没什么别的问题了。
结论:
1。OTN上的文档和10g的联机文档很多错误的地方,可能很多文章都是想当然写出来的,也许根本作者自己都没有作过测试
2。纠正了我以前的一个概念,一个ASM数据库需要一个ASM实例和一个自己的数据库实例,多个数据库实例可以共享一个ASM实例
创建完毕了,明天测试ASM数据库的automatic rebalance功能
等到测试完毕,会抽空写一份完整的安装文档。
呵呵,如果能在这周完成,应该是世界上最早的一份完整的ASM在LINUX上的安装文档了
http://www.puschitz.com/上面这个专题还是comming soon呢
而且据Werner Puschitz自己说,他是用裸设备来在Linux下面实现ASM的,而不是oracleasm