初始化参数文件分为:
1)pfile 静态参数文件
2)spfile 动态服务器参数文件
作用:存储建立实例、启动后台进程所需参数值。
调用:实例启动时,按如下顺序调取初始化参数文件
linux:
$ORACLE_HOME/dbs/spfile.ora
$ORACLE_HOME/dbs/spfile.ora
$ORACLE_HOME/dbs/init.ora
windows:
%ORACLE_HOME%\database\SPFILE.ORA
%ORACLE_HOME%\database\SPFILE.ORA
%ORACLE_HOME%\database\INIT.ORA
或者启动时指定pfile:
startup open pfile='/home/oracle/init.ora';
实例从关闭状态启动到nomount(started状态)时需要用到初始化参数文件。
spfile是服务器端文件,实例启动时被SMON读取,不能重命名和移动位置,它是二进制文件,不能手工编辑;pfile是客户端文件,实例启动时由用户进程读取,可以随意重命名或 移动后通过制定其名称和位置来启动数据库,它是ASCII文本文件,可以编辑。
spfile是二进制文件,可以用strings命令来查看内部的参数信息:
可以在数据库的任何状态下(即使是关闭状态下)用以下语句做初始化参数文件的转换:
CREATE SPFILE [=[fiilepath/]filename] FROM PFILE [=[fiilepath/]filename] ;
CREATE PFILE [=[fiilepath/]filename] FROM SPFILE [=[fiilepath/]filename] ;
此时的SQLPLUS仅仅是一个转化工具而已,要求FROM后面的初始化参数文件必须存在。
还可以
CREATE PFILE [=[fiilepath/]filename] FROM MEMORY;
CREATE SPFILE [=[fiilepath/]filename] FROM MEMORY;--当数据库不是用spfile启动的时候才能这样操作
动态参数:可在实例运行时更改的参数,可以写入内存立即生效,可以写入spfile保存设置,部分动态参数支持session级别的更改。
静态参数:在实例启动时就固定下来,即使更改也只先写入spfile,需重启实例才能启用新值的参数。
v$parameter显示当前实例生效的参数信息(已导入内存中的参数信息);v$spparameter显示磁盘中spfile中的值。
共342个参数,41个基本参数,301个非基本参数。
查看初始化参数配置:
1)OEM:
2)v$parameter
3)show parameter command
更改初始化参数
1)更改动态参数,立即生效,不写入spfile,重启后恢复原来的值
alter system set db_file_multiblock_read_count=16 scope=memory;
2)更改动态参数,立即生效,写入spfile,重启后继续使用当前值
alter system set db_file_multiblock_read_count=16 scope=both;
3)更改静态参数,写入spfile,需实例重启后方才生效
alter system set db_file_multiblock_read_count=16 scope=spfile;
4)按会话级别动态更改,仅当前会话有效
alter session set optimizer_mode=first_rows;
用pfile启动数据库时,若改动spfile内的参数(scope=spfile),会报错
数据库至少启动到nomount下可修改参数。关闭状态下不允许修改。