redhat linux 5下oracle 10g的asm安装

环境:oracle 10g +redhat linux 5 32位

1.安装asm所需要的支持包
A.在oracle网站下载支持包:
http://www.oracle.com/technology ... x/asmlib/rhel5.html
B.根据linux内核下载相应的asm安装包:

oracleasm-2.6.18-8.el5-2.0.4-1.el5.i686.rpm
oracleasm-2.6.18-8.el5PAE-2.0.4-1.el5.i686.rpm
oracleasm-2.6.18-8.el5xen-2.0.4-1.el5.i686.rpm
oracleasmlib-2.0.3-1.el5.i386.rpm
oracleasm-support-2.0.4-1.el5.i386.rpm
C.安装 rpm -Uvh ..........  --nodeps

D.安装完成后对用来做asm的磁盘进行分区(此处我采用三块硬盘:hd[a,b,d]):
fdisk /dev/hda
n
p
1
回车
回车
w
根据以上参数对所有硬盘都进行进行分区
E. 创建asm磁盘

/etc/init.d/oracleasm configure
/etc/init.d/oracleasm createdisk ORACLEASM1 /dev/hda1
/etc/init.d/oracleasm createdisk ORACLEASM2 /dev/hdb1
/etc/init.d/oracleasm createdisk ORACLEASM3 /dev/hdd1
F.查看asm磁盘:/etc/init.d/oracleasm listdisks
2.安装oracle,只装软件(安装略),再通过dbca创建asm和数据库
3.创建asm实例
A.在$ORACLE_HOME/dbs下创建初始化文件init+ASM.ora内容如下:
*.asm_diskstring='ORCL:ORACLEASM*'
*.background_dump_dest='/oracle/app/oracle/admin/+ASM/bdump'
*.core_dump_dest='/oracle/app/oracle/admin/+ASM/cdump'
*.instance_type='asm'
*.large_pool_size=12M
*.remote_login_passwordfile='SHARED'
*.user_dump_dest='/oracle/app/oracle/admin/+ASM/udump'

说明:第一行的ORCL:ORACLEASM*中ORCL为固定格式,ORACLEASM*代表asm磁盘,别的没有什么好说的。
B.创建目录结构
mkdir -p /oracle/app/oracle/admin/+ASM/udump
mkdir -p /oracle/app/oracle/admin/+ASM/bdump
mkdir -p /oracle/app/oracle/admin/+ASM/cdump
C.启动实例:
export ORACLE_SID=+ASM
sqlplus /as sysdba
startup
会报一个ORA-29701 :unable to connect to Cluster Manager错误
此时需要切换到root用户执行:$ORACLE_HOME/bin/localconfig add
做完后切换到oracle下就可以启动了,不过会报一个:
ORA-15110: no diskgroups mounted
因为没有创建磁盘组,那么是正常的报错。先不用例会
D.创建spfile。
create spfile from pfile;
创建完后spfile,关闭实例(shutdown immediate),在利用startup启动一下。
E.创建磁盘组(一般最好成对添加,我此处没有)
SQL> create diskgroup dgroup1 normal redundancy
  2  failgroup fgroup1 disk 'ORCL:ORACLEASM1','ORCL:ORACLEASM2'
  3  failgroup fgroup2 disk 'ORCL:ORACLEASM3';

Diskgroup created.
查看挂载情况:
SQL> select name,state from v$asm_diskgroup;
F.利用dbca创建正真的oracle数据库。

NAME                           STATE
------------------------------ -----------
DGROUP1                        MOUNTED

若没有自动挂在,则需要手工挂在:
SQL> alter diskgroup dgroup1 mount;
alter diskgroup dgroup1 mount
*
ERROR at line 1:
ORA-15032: not all alterations performed
ORA-15017: diskgroup "DGROUP1" cannot be mounted
ORA-15030: diskgroup name "DGROUP1" is in use by another diskgroup
因为已经挂载,所以会报错,是正常的。
查看参数:
SQL> show parameter asm_diskgroup;

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
asm_diskgroups                       string      DGROUP1
G.利用dbca创建oracle数据库.
注意需要选择asm存放。
此处需要考虑到有的时候找不到dgroup1组,需要输入密码创建,总是提示spfile正在使用,此时可以采用
关闭+ASM实例(shutdown immediate),在重试就行了。