Oracle参数文件有三种:
spfile: spfile.ora
pfile: init.ora
init: init.ora
参数文件的默认路径为:
$ORACLE_HOME/dbs (UNIX)
当数据库启动时,oracle会按spfile.ora init.ora init.ora的顺序去找参数文件。其中spfile为二进制文件,所以不能直接对其进行修改。
1. 如何确定当前数据库是否以spfile参数文件启动
sql> show parameter spfie;
若value列有值,则说明以spfile启动。
2. 如何修改参数文件
sql>alter system set timed_statistics=false scope=spfile;
scope可以有三种值:
spfile:修改spfile中的参数值
memory:修改当前内存中的参数值
both:修改内存及spfile参数文件中的参数值
ps:不是所有参数都可以这样修改的。在v$system_parameter中有issys_modifiable和isses_modifiable两个字段标志是否可以修改。所有参数值都可以从v$system_paramete中得到。
3. “ORA-32001: write to SPFILE requested but no SPFILE specified at startup”错误,因为没有用spfile参数文件启动数据库。解决办法:
1) 检查默认路径$ORACLE_HOME/dbs下是否存在spfile.ora文件。
2) 若不存在,重新生成spfile
create spfile from pfile;
3) 重启数据库。
4) 重新执行alter system…命令。
4. 如何根据现有非默认路径下的spfile或pfile参数文件启动数据库
sql>startup pfile=‘<路径>’;
sql>startup spfile=‘ <路径>’;