在11g RAC的运维过程中,很容易出现一些参数调整失败后,数据库无法正常拉起来的情况,如下:

这时候,可以通过构建pfile拉起数据库实例,然后生成spfile让数据库回归正常的轨迹。
但是,在10g与11g中,这种修复在细节上有略微差异。
如下所示:

11g RAC中,spfile其实是一个软连接,它指向到parameterfile中生成的带随机数的真实文件。

故而,11g RAC中不论执行:
create spfile=’+data01′ from pfile;
或者:
create spfile=’+data01′ from pfile=’/home/oracle/pfile_orcl.ora’;

执行:
create spfile from pfile;
是肯定不行的,该命令仅仅会在服务器本地的:$ORACLE_HOME/dbs中创建spfileXXX.ora文件,跟RAC的共享存储一点关系都没有。

都不会直接修改spfile参数指定的文件:

它真实修改的文件是:+DATA01/orcl/parameterfile/spfile.xxx.xxxxxxxx

所以,在11g RAC中,想要从pfile恢复spfile还需要作如下动作:
方式一:

方式二:
1.asmcmd
进入到指定的实例的根目录:cd +data01/orcl/
删除当前spfile的别名:rmalias spfileorcl.ora

2.建立spfile的软连接
Way One:sqlplus (grid)
以grid操作系统身份启动sqlplus,进入ASM实例(当前为mount状态):sqlplus / as sysdba
为特定的真实spfile文件建立别名:
alter diskgroup data01 add alias ‘+data01/orcl/spfileorcl.ora’ for ‘+data01/orcl/parameterfile/spfileorcl.ora.273.881707859’;

Way Two:asmcmd
mkalias ‘+data01/orcl/parameterfile/spfileorcl.ora.273.881707859’ ‘+data01/orcl/spfileorcl.ora’

如上任意一方式操作完成后,就可以正常的,通过位于共享存储上的spfile启动数据库实例了。
————————————————————————————————————————————————
Done。

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.

隐藏
变装