关于oracle中spfile和pfile的一个实验
我们错误修改了oracle系统参数,有的时候会导致数据库无法启动,参数保存在spfile中,我们无法通过直接编辑这个文件来恢复我们的误操作,因为 这个文件是个二进制文件,切勿直接更改!但是在以前的版本中有个pfile文件,那个文件是个文本文件,可以直接编辑修改!恢复的思路就是通过 spfile文件创建pfile文件,更改完配置以后,再通过pfile文件来创建我们的spfile文件!
下面就是详细的操作步骤,以及我在实验的时候遇到的问题!
1、修改参数
SQL>
alter system set db_block_buffers=1000 scope=spfile;
System altered.
2、停掉数据库
SQL>
shutdown immediate
Database closed.
Database
dismounted.
ORACLE instance shut down.
3、启动数据库(报错)
SQL>
startup
ORA-00824: cannot set sga_target due to existing internal settings, see alert log for more information
4、通过创建pfile来恢复
SQL>
create pfile from spfile;
File created.
执行这条命令以后我没有找到pfile文件,利用find / -name “pfile*” –print也没找到
在请教了itpub的高手后通过指定路径的办法解决,下面是详细的过程!
SQL> create
pfile='/opt/oracle/aaaa.ora' from spfile;
File created.
然后编辑/opt/oracle/aaaa.ora文件,去掉*.db_block_buffers=1000这行!
接着通过pfile文件生成spfile文件
SQL> create
spfile from pfile='/opt/oracle/aaaa.ora';
File created.
5、启动数据库
SQL>
startup
ORACLE instance started.
至此spfile文件恢复成功!