oracle参数文件:
(1)init.ora【文本格式pfile】
(2)spfile$ORACLE_SID.ora【二进制格式spfile】
参数文件不必放在特定的位置上。启动一个实例时,可以在启动命令上使用pfile=filename 选项。
startup pfile='/home/oracle/init.ora'
pfile与spfile之间的相互转换:
文本转换成二进制文件:create spfile from pfile;
二进制转换成文本文件:create pfile from spfile; create pfile='/tmp/pfile.tst' from spfile;
oracle启动时,spfile查找顺序:
(1)spfile$ORACLE_SID.ora
(2)spfile.ora
(3)init$ORACLE_SID.ora
Alter system set parameter=value <comment='text'> <deferred>
<scope=memory|spfile|both> <sid='sid|*'>
一般情况下,alter system set命令会更新当前运行的实例,并且会为你修改spfile。
deferred 指定系统修改是否只对以后的会话生效(对当前建立的会话无效,包括执行此修改的会话)。
查询哪些参数必须使用deferred:select * from v$parameter where issys_modifiable = 'DEFERRED';
scope=memory只在该实例中修改,数据库重启后失效。
scope=spfile只修改spfile中的值。
scope=both 内存和spfile中都进行修改。这是使用spfile时默认的作用域值。如果使用init.ora,则默认值为scope=memory。
静态参数:
SELECT NAME,ISSYS_MODIFIABLE FROM V$PARAMETER 如果是FALSE则是静态参数,修改后需要重新启动数据库和才能够生效。
alter system set nls_date_format="YYYY-MM-DD HH24:MI:SS" scope=spfile;