在ORACLE中,修改spfile中的参数一般非常容易,那么如何删除spfile中的参数呢? 下面我们用一个案例来介绍一下,如何删除spfile中的参数,一种方法就是创建对应的pfile,删除对应的参数后,然后用当前的pfile反向生成对应的spfile,还有一种方法就是使用命令来删除对应的参数。在删除参数之前,最好先备份一下对应的spfile文件。
假如我们在spfile参数中添加了参数_kghdsidx_count, 那么如何删除这个参数呢?
alter system set "_kghdsidx_count"=2 scope=spfile;
SQL> show parameter spfile;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
spfile string /u01/app/oracle/product/10.2.0
/db_1/dbs/spfileSCM2.ora
SQL> show parameter spfile;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
spfile string /u01/app/oracle/product/10.2.0
/db_1/dbs/spfileSCM2.ora
SQL> create pfile='/u01/app/oracle/product/10.2.0/db_1/dbs/pfile_tmp.ora' from spfile;
File created.
SQL>
如下所示,我们查看参数文件spfile对应的spfile文件,可以看到参数*._kghdsidx_count=2,
那么此时可以使用下面命令删除参数。注意: scope和sid这两个参数不能少,否则会提示报错。
SQL> alter system reset "_kghdsidx_count" scope=spfile sid='*';
System altered.
重启数据库后,就会看到这个参数已经被删除了。