环境oracle 11gR2 +aix 6.1 +asm 单实例
今天在客户那安装一套oracle 11gR2 for aix的单机数据库,存储方式是用asm,
装好后,因为dgsystem diskgroup au_size设置的为默认值1M,所以想把dgsystem的au_size改为4M
改的方法是删除dgsystem diskgroup,然后重新再创建dgsystem,au_size属性设置为4M
奇怪的是删除diskgroup时报ORA-15027错误
SQL> drop diskgroup dgsystem including contents;
drop diskgroup dgsystem including contents
*
ERROR at line 1:
ORA-15039: diskgroup not dropped
ORA-15027: active use of diskgroup "DGSYSTEM" precludes its dismount
通过查询v$asm_client视图,没有客户端用户进行连接。
dismount 磁盘组也是报这个错
SQL> alter diskgroup dgsystem dismount;
alter diskgroup dgsystem dismount
*
ERROR at line 1:
ORA-15032: not all alterations performed
ORA-15027: active use of diskgroup "DGSYSTEM" precludes its dismount
最后通过检查spfile参数
SQL> show parameter instance_type
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
instance_type string asm
SQL> show parameter spfile
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
spfile string +dgsystem/asm/asmparameterfile/registry.253.697740955
spfile参数放在dgsystem磁盘组中,这是因为如果要用asm磁盘组,必须先建立asm实例,R2
而oracle 11gR2版本中,你安装grid 软件时,必须先建立asm实例和至少一个磁盘组,来存放spfile
参数,默认放在asm磁盘组中,找到问题原因了,解决方法就比较简单,用pfile启动,删除后,再重新把
spfile创建回磁盘组中。
SQL> create pfile='$ORACLE_HOME/dbs/init+ASM.ora' from spfile='+dgsystem/asm/asmparameterfile/registry.253.697740955';
SQL> shutdown immediate
SQL> startup pfile=$ORACLE_HOME/dbs/init+ASM.ora
SQL> drop diskgroup dgsystem including contents;
sql>
create diskgroup dgsystem external REDUNDANCY disk '/dev/rhdisk2'ATTRIBUTE 'AU_SIZE'='4M';
SQL> create spfile='+dgsystem' from pfile='$ORACLE_HOME/dbs/init+ASM.ora';