本来是添加磁盘组的事情。

参照最好经验 <如何在 RAC 集群或单机 ASM 环境中对已经存在的 Diskgroup 添加新磁盘(最佳实践) (Doc ID 1946668.1)>,应该是创建一个新的asm 磁盘组,验证这些新盘没问题(例如权限、属性、并发等),再删除掉后,再添加到现有的磁盘组中。

可是,可是来了

为了进一步验证性能,可用性,临时(注意这两个字)增加了创建一个测试表空间的操作,感觉很完美了,通过图形界面删除磁盘组时,发现有内容,不让删,一下子尴尬了,只好老老实实手工删掉表空间:drop tablespace test_tbs1 including contents and datafiles; 再尝试删除测试的asm磁盘组,又遇到新问题 CRS-2640。

只好现找解决办法(怎么老这样被动)

查看状态、移除、改配置
#crsctl status resource ora.orcl.db –f
$ srvctl remove diskgroup –g testdg
# srvctl modify database –d orcl –a "data"

搞完了以后数据库正常启动,再检查asm实例的ASM_DISKGROUPS参数,发现还有test_dg,怒改之
alter system set ASM_DISKGROUPS='data' sid='*';

经验:
1 没测试过的步骤,不要添加,不要添加,不要添加
2 删除ASM磁盘组不简单,没做过的就可能被动


参考:
http://blog.itpub.net/26175573/viewspace-1288966/
http://blog.chinaunix.net/uid-27163539-id-5781042.html
http://blog.itpub.net/7199859/viewspace-692779/
http://m.blog.chinaunix.net/uid-23284114-id-3545531.html
https://www.cndba.cn/Expect-le/article/2587
02-11 07:49