不能在asm 实例上创建oracle 10g 数据库,报错如下:
CREATE DATABASE "ekbkprd1"
ORA-01501: CREATE DATABASE failed
ORA-00200: controlfile could not be created
ORA-00202: controlfile: '+DG1_NR/ekbkprd1/control/ekbkprd1_control.ctl'
ORA-17502: ksfdcre:4 Failed to create file
+DG1_NR/ekbkprd1/control/ekbkprd1_control.ctl
ORA-15001: diskgroup "DG1_NR" does not exist or is not mounted
ORA-15055: unable to connect to ASM instance
原因:
1 磁盘组一 "+"开头创建。 例如:
create diskgroup +ASM_DISKGP1 normal redundancy
failgroup f1 disk '/dev/rdsk/c0t2d0s1' name disk1
failgroup f2 disk '/dev/rdsk/c0t2d0s3' name disk2;
2 使用DBCA 创建数据库,磁盘组以 两个 + 号开头这种不正确的方式被引用:
++ASM_DISKGP1
ASM 磁盘组不能以"+" 开头的方式创建因为oracle 默认会自动的加上前缀 "+"来辨别数据库文件的存放位置。
解决方法:
1) 删除当前的磁盘组:
SQL> drop diskgroup ;
2)重建磁盘组注意:这次不要加 "+" 前缀:
例如:
SQL>create diskgroup ASM_DISKGP1 normal redundancy
2 failgroup f1 disk '/dev/rdsk/c0t2d0s1' name disk1
3 failgroup f2 disk '/dev/rdsk/c0t2d0s3' name disk2;
3) 手工或者使用DBCA创建数据库