初始化参数文件
初始化参数文件(initialzation parameter files)是oracle数据库的最重要的文化之一。
oracle在启动实例、打开数据库时将读取初始化参数文件,并从中获取的初始化参数。
在oracle数据库中有两个类型的参数:
(1)显式:在初始化参数文件中有一个参数项
(2)隐式:在初始化参数文件中没有参数项,但使用oracle的默认值。
文件的主要内容
1、实例名和该实例相关的数据库名
2、控制文件名和位置
3、系统全局区的配置
4、还原段(回滚段)的配置
5、该实例所能同时启动的进程数
6、标准数据块的大小
7、是否允许DBA远程登录
注意
1、可以有
多个
初始化文件共存,但每次oracle实例启动时只能使用(读取)
一个
初始化参数文件。
2、该文件中参数项变化何时起作用取决于
所使用的初始化参数文件的类型
。
3、在Oracle 9i之后,初始化参数文件分为:静态参数文件(PFILE)、动态服务器参数文件(SPFILE)
静态参数文件(PFILE)
静态参数文件(PFILE)是本地的文本参数文件,可使用文本编辑器进行修改。
文件名通常为
init<SID>.ora
oracle只在实例启动时读取该文件,因此所做的修改要在实例下次启动时才能起作用。
如何修改初始化参数文件
1、若要对初始化参数进行修改,必须先关闭数据库,然后再初始化文件中进行编辑,再重新启动数据库使修改生效。
2、从8i开始,可以再数据库运行期间利用
ALTER SYSTEM
来修改初始化参数,并修改后立即生效,但修改并
不保存
在初始化参数文件中。
创建静态参数文件pfile方法
方法一: 使用样本文件
init.ora
创建
复制
init.ora
文件到
$ORACLE_HOME\\database
下,并将文件名更改为
init<SID>.ora
,再按照需求修改该文件。
注意:如果样本文件版本太老,即使修改了可能启动时也会出错。
方法二: 根据
SPFILE
创建
如果当前实例正在使用
SPFILE
,那么可使用
ALTER SYSTEM
命令将无法修改某些初始化参数,如
DB_NAME
。
为了修改这些初始化参数,必须创建
PFILE
,并且手工修改该
PFILE
文件的相应参数,可以使用
CREATE PFILE
命令可以创建文本参数文件。
参考代码:
create pfile[=pfile名]from spfile[=spfile名]
动态服务器参数文件(SPFILE)
从9i开始,提供的动态服务器初始化参数文件,他是一个二进制参数文件
文件名通常为
spfile<SID>.ora
总是保存在服务器上,默认存储在
$ORACLE_HOME\\database
下。
注意
动态服务器初始化参数文件不能直接修改这一文件,该文件由oracle服务器自动维护的。
它能够在不关闭和启动数据库的情况下改变实例或数据库的配置。可以利用
ALTER SYSTEM
对初始化参数进行的修改在默认情况下会被永久的记录到SPFILE中。
它提供自我调优的能力,可以使用**恢复管理器(RMAN)**备份这一参数文件。
创建动态服务器参数文件spfile方法
根据
PFILE
创建,使用
PFILE
修改了某些初始化参数后,可以使用
CREATE SPFILE
将
PFILE
转换为
SPFILE
。
该语句可以在启动之前或之后执行。
参考代码:
create spfile[=spfile名]from pfile[=pfile名]
修改参数的值
参考代码:
ALTER SYSTEM SET 参数值=值[SCOPE={SPFILE|MEMORY|BOTH}];
SCPOE=MEMORY
修改后当前就起作用,下次重启数据库不起作用;若数据库使用
PFILE
启动,这是唯一可选值,也是默认值。
SCPOE=SPFILE
修改后当前不起作用,下次重启数据库起作用;新设置只有在重新使用
spfile
启动数据库时生效。
SCPOE=BOTH
修改当前就起作用,下次重启数据库也起作用。若数据库使用
spfile
启动,则
SCPOE=BOTH
是默认值。
注意事项
1、如果当前的实例以
PFILE
启动,则
SCOPE
的默认值为
MEMORY
。
2、如果当前的实例以
SPFILE
启动,则
SCOPE
的默认值为
BOTH
。
3\\如果当前实例使用的是
PFILE
而非
SPFILE
,则
SCOPE=SPFILE
或
SCOPE=BOTH
会产生错误。