之路 on it Road.com

解决方案

在我们的例子中,在 ASM 磁盘组中找不到 GPnP 配置文件中指示的 spfile。

# cat /u01/app/11.2.0/grid/gpnp/gps-rac2/profiles/peer/profile.xml

通常能够正确启动CRS。
应该有一个合适的 pfile 或者 spfile 来让 ASM 实例启动和/或者 gpnp 配置文件应该指示一个合适的 spfile。

  1. 创建一个新的 ASM pfile。
# cat ora_+ASM1.ora
+ASM1.asm_diskgroups='DATA','FRA'#bananaal Mount
+ASM2.asm_diskgroups='DATA','FRA'#bananaal Mount
*.asm_diskstring='/dev/rdsk/emcpower*'
*.asm_power_limit=1
*.diagnostic_dest='/mnt/crs/oracle'
*.instance_type='asm'
*.large_pool_size=12M
*.remote_login_passwordfile='EXCLUSIVE'
  1. 在第一个节点上启动ASM实例:
$ export $ORACLE_SID=[asm instance name]
$ export $ORACLE_HOME=[full path of the asm home]
$ sqlplus / as sysdba
sql> startup pfile=[the full pathname of ora_+ASM1.ora]

ASM 实例应正常启动

  1. 检查 ASM 磁盘组是否正确挂载。
sql> select name,state from v$asm_diskgroup;
  1. 创建 spfile:
sql> create spfile='+DATA/../spfileasm.ora' from pfile='[the full path name of ora_+ASM1.ora]
  1. 在GPnP 配置文件中,我们会发现spfile 信息设置正确。
# cat /u01/app/11.2.0/grid/gpnp/gps-rac2/profiles/peer/profile.xml
  1. 我们需要停止和启动CRS,以确保ASM和CRS堆栈自动启动,没有任何问题。
spfile被错误解析或者丢失时如何启动ASM实例

问题

因为 spfile 损坏或者丢失,CRS 和 ASM 实例无法启动。

启动 ASM 实例失败并显示错误:

SQL> startup;
ORA-00099: warning: no parameter file specified for ASM instance
ORA-00304: requested INSTANCE_NUMBER is busy

启动 CRS 服务失败并出现错误

# crsctl start crs
CRS-4640: Oracle High Availability Services is already active
CRS-4000: Command Start failed, or completed with errors

检查 GPnP 配置文件,发现它引用了一个在 ASM(或者共享存储)中不存在的 spfile。
例如:

$ cat /u01/app/11.2.0/grid/gpnp/gps-rac2/profiles/peer/profile.xml
日期:2020-09-17 00:11:24 来源:oir作者:oir