一、服务器参数文件和初始化参数文件
1、服务器参数文件
名为:spfile$oracle_sid.ora,由数据库自行维护的二进制文件,一般不允许手工修改。
可以动态修改,并写入参数文件中,数据库重之后继续有效。
数据库默认使用服务器参数文件。
2、初始化参数文件
名为:init$oracle_sid.ora,是文本参数文件,可以手工修改。在动态修改参数时,oracle不写入文件,数据库重启之后修改内容将丢失。要想永久使用,必须手工修改。
一般在手工创建数据库或者服务器参数文件丢失时使用初始化参数文件。
二、实例启动时查找参数文件的顺序
实例启动时,默认情况下oracle将在下列目录中寻找参数文件
% windows:oracle_home%/database
linux:$oracle_home/dbs
查找参数文件的顺序:
1、spfile$oracle_sid.ora
2、spfile.ora
3、init$oracle_sid.ora
三、创建参数文件
sql>create pfile from spfile;
oracle将根据默认路径下的spfile文件创建初始化参数文件,并存放在默认路径下。
sql>create spfile from pfile;
oracle将根据默认路径下的pfile文件创建服务器参数文件,并存放在默认路径下。
如果源文件或者目标文件不在默认位置下,需要指定。如:
sql>create pfile='pfile_path_name' from spfile='spfile_path_name';
四、使用pfile文件启动数据库
默认情况下,oracle使用服务器参数文件。在服务器参数文件不存在时,oracle将使用init$oracle_sid初始化参数文件。
用户也可以oracle使用自己指定的初始化参数文件启动数据库
sql>startup pfile='pfile_path_name';
不能使用spfile指定服务器参数文件,当服务器参数文件不在默认位置时,可以在初始化参数文件使用参数spfile指定服务器参数文件的位置
如:spfile='spfile_path_name'
然后使用上述方式启动数据库,oracle将使用指定位置上的服务器参数文件。
五、设置动态参数更改的范围
当使用服务器参数文件时,可以设置动态参数更改的范围
scope=spfile:对参数的更改只写入参数文件
scope=memory:对参数的修改仅应用于当前,不写入参数文件
scope=both:对参数的修改不但应用于当前数据库,且写入参数文件。此为oracle默认行为。
例如:sql>alter system set undo_retention=7200 scope=memory;
当使用服务器参数文件时,修改动态参数默认为scope=both。修改静态参数必须使用scope=spfile。
使用初始化参数文件,修改动态参数默认为scope=memory,且不能使用spfile和both。不能修改静态参数,必须手工修改参数文件。
六、查询参数
可以使用v$parameter或者v$spparameter查询参数的设置。
在SQL*PLUS上也可以使用show parameter查询参数
如:sql>show parameter --将显示所有参数
sql>show parameter nls --show parameter 后面可以使准确的参数名称,也可以不是,这样oracle将显示参数名中包含这几个字符的所有参数。
使用show parameter spfile 判断oracle当前使用的是什么参数文件,如果value有值,则为服务器参数文件,如无值则为初始化参数文件。