文章目录
前言
因为昨天是第二次在因为不清楚修改参数后果的情况下用sid=‘*‘修改了两个节点参数后,同时重启了两个实例,导致两个实例都无法启动,因为是RAC环境所以无法直接修改pfile,所以只能从ASM中取出spfile修改,在这记录一下大概步骤。
一、RAC参数文件pfile和spfile
pfile:rac环境下的pfile只保存了一条指向spfile的路径
[root@hisdb02 ~]# su - oracle
Last login: Fri Aug 19 17:25:40 CST 2022 on pts/1
[oracle@hisdb02 ~]$ cd $ORACLE_HOME/
[oracle@hisdb02 dbhome_1]$ cd dbs/
[oracle@hisdb02 dbs]$ ls
arch2_2985_1112527340.dbf arch2_2987_1112527340.dbf arch2_2989_1112527340.dbf arch2_2991_1112527340.dbf hc_dbserver2.dat initdbserver2.ora orapwdbemr2
arch2_2986_1112527340.dbf arch2_2988_1112527340.dbf arch2_2990_1112527340.dbf hc_dbemr2.dat initdbemr2.ora init.ora orapwdbserver2
[oracle@hisdb02 dbs]$ cat initdbserver2.ora
SPFILE='+DATA/dbserver/spfiledbserver.ora'
spfile:rac环境下spfile在asm中
[grid@hisdb02 ~]$ asmcmd
ASMCMD> cd data
ASMCMD> cd dbserver
ASMCMD> ls
CONTROLFILE/
DATAFILE/
ONLINELOG/
PARAMETERFILE/
TEMPFILE/
spfiledbserver.ora
二、当两个实例都无法启动,如何通过修改spfile启动实例
1.从asm中取出spfile
直接在asm中用cp命令将spfile复制到文件系统中,并转换成十进制
ASMCMD>cp spfile.318.1090256723 /home/grid/1.ora
[grid@ptdb2 ~]$strings 1.ora >2.ora
2.修改完参数后将其放到$ORACLE_HOME/dbs/目录下替换原来的pfile
Sql>startup pfile=’?/dbs/initdbserver2.ora’;
可以正常启动,更新spfile
Sql>create spfile=’+DATA’ from pfile;
总结
RAC环境修改参数可以一个一个实例修改,单个实例修改完后可以重启,验证是否参数修改有误,假如修改有误,实例无法启动,可以在其他实例里再次修改。如果修改完参数同时重启所有实例,就无法再次修改参数,要是生产环境还会影响业务。