欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  数据库

oracle修改spfile的位置

程序员文章站 2024-02-17 22:46:28
...

spfile作为引导启动oracle数据库的参数文件,有时候需要修改,且在rac中需要保持spfile在各个节点的一致性,修改方法如下: 首先查看原spfile的位置 SQL show parameter spfile; NAME TYPE VALUE spfile string +DATA/spfileorcl.ora 拷贝spfile到其他的位置

spfile作为引导启动oracle数据库的参数文件,有时候需要修改,且在rac中需要保持spfile在各个节点的一致性,修改方法如下:
首先查看原spfile的位置
SQL> show parameter spfile;

NAME TYPE VALUE
———————————— ———– ——————————
spfile string +DATA/spfileorcl.ora

拷贝spfile到其他的位置,在asm中使用cp文件则是相当于创建别名,所以要使用下面的方法:
SQL> create pfile=’/tmp/pfile.ora’ from spfile;
SQL> create spfile=’+data1/orcl/spfile.orc’ from pfile=’/tmp/pfile.ora’;
如果spfile不在asm中可以直接cp到新的位置就可以了。

修改$ORACLE_HOME/dbs/下的参数文件initorclX.ora,X代表实例的编号
将新的位置spfile=’+data1/orcl/spfile.orc’替换原来的位置
使用sqlplus重启实例,发现已经修改了

PS:记住不要用srvctl重启数据库,因为在rac环境中,我们更多的时候是用srvctl来管理rac资源的,而srvctl的信息来自于ocr,包括spfile的位置信息,我们在参数文件中修改了参数文件的位置,但是ocr并不知道,所有就会失败。

也可以使用srvctl修改spfile的位置,前提是已经创建了新的spfile:
首先查看数据库的配置信息
shell> srvctl config database -d orcl -a

通过srvctl修改spfile的位置
shell> srvctl modify database -d orcl -p ‘+data1/orcl/spfileorcl.ora’

然后使用srvctl关闭数据库,再启动数据库
shell> srvctl stop database -d orcl
shell> srvctl start database -d orcl

总结一下,在RAC环境下修改spfile:
1. 需要修改$ORACLE_HOME/dbs下的相关文件,指向新文件
2. 需要用srvctl修改config信息,指向新文件

参考来源:http://space6212.itpub.net/post/12157/511531