Oracle PFILE/SPFILE 初始化参数文件
初始化参数文件
要启动一个例程,Oracle 服务器必须读取初始化参数文件。
初始化参数文件
- 文件中的条目专用于要启动的例程
- 有两种类型的参数:
–显式:文件中有一个条目
–隐式:文件中没有条目,但假定取 Oracle 缺省值
- 可存在多个初始化参数文件
- 对文件中条目的更改的生效时间,取决于使用的初始化参数文件类型
–静态参数文件 PFILE
–永久参数文件 SPFILE
Oracle 服务器在启动例程时读取初始化参数文件。共有两种类型的初始化参数文件:
- 静态参数文件 PFILE,一般名为 initSID.ora。
- 永久参数文件 SPFILE,一般名为 spfileSID.ora。
初始化参数文件内容:
- 例程参数列表
- 与该例程相关联的数据库的名称
- 系统全局区 (SGA) 的内存结构的分配
- 如何处理已满的联机重做日志文件
- 控制文件的名称和位置
- 有关撤消段的信息
为在各种不同情况下优化性能,一个例程可有多个初始化参数文件。
初始化参数文件
使用 Oracle Enterprise Manager 查看初始化参数
从“OEM 控制台”(OEM Console):
- 导航到“数据库”(Databases) >“例程”(Instance) >“配置” (Configuration)。
2.从“常规”(General) 页选择“全部初始化参数”( All Initialization Parameters)。
PFILE initSID.ora
- 文本文件
- 使用操作系统编辑器进行修改
- 手动进行修改
- 所作更改在下次启动时生效
- 仅在例程启动过程中打开
- 缺省位置为 $ORACLE_HOME/dbs
PFILE
PFILE 是可使用标准的操作系统编辑器进行维护的文本文件。PFILE 在例程启动过程
中是只读的。如果文件发生修改,则必须关闭然后重新启动例程以使新的参数值生效。
缺省情况下,该文件位于 $ORACLE_HOME/dbs 目录中,文件名是 initSID.ora。
创建 PFILE
cp init.ora $ORACLE_HOME/dbs/initdba01.ora
使用样本 init.ora 文件创
- 样本文件由 Oracle Universal Installer 安装
- 使用操作系统复制命令复制样本
- 由数据库 SID 唯一标识
修改 initSID.ora
编辑参数
针对数据库要求
样本 init.ora 文件由 Universal Installer 在安装过程中创建。该样本 init.ora 文件可用于创建特定于某一例程的 initSID.ora。可使用文本编辑器修改 initSID.ora 文件中的参数。
PFILE 示例
# Initialization Parameter File: initdba01.ora db_name = dba01 instance_name = dba01 control_files = ( home/dba01/ORADATA/u01/control01dba01.ctl, home/dba01/ORADATA/u02/control01dba02.ctl) db_block_size = 4096 db_cache_size = 4M shared_pool_size = 50000000 java_pool_size = 50000000 max_dump_file_size = 10240 background_dump_dest = /home/dba01/ADMIN/BDUMP user_dump_dest = /home/dba01/ADMIN/UDUMP core_dump_dest = /home/dba01/ADMIN/CDUMP undo_management = AUTO undo_tablespace = UNDOTBS . . .
以这样的格式指定值:keyword=value(关键字 = 值)。
服务器为每个参数都设置了缺省值。根据参数的不同,缺省值可能与操作系统相关。
可以按任意顺序指定参数,但也存在例外。
注释行以 # 符号开头。
参数中如果包括字符文字,可将参数用双引号括起。
可以使用关键字 IFILE 使参数中包括其它文件。
如果使用的操作系统区分大小写,那么文件名也区分大小写。
如果有多个值,应该用圆括号将它们括起来,用逗号隔开。
注:请为参数的列出顺序指定一个标准:按字母顺序列出或按功能进行分组。PFILE 根据例程的不同而变化,不一定与上例相同。
PFILE 与SPFILE的差异
SPFILE spfileSID.ora
SPFILE
SPFILE 是 Oracle9i 中新增的二进制文件。该文件不能手动修改,且必须始终驻留在服务器端。创建该文件后,即由 Oracle 服务器进行维护。如果进行手动修改,SPFILE 将无效。SPFILE 具有对数据库进行永久更改的功能,不受关闭和启动操作的影响,它还提供自动调节记录在文件中的参数值的功能。使用 SPFILE,RMAN 可以支持初始化参数文件的备份,因为 SPFILE 驻留在服务器端。缺省情况下,它位于 $ORACLE_HOME/dbs 目录中,缺省名称为 spfileSID.ora。
- 二进制文件
- 由 Oracle 服务器进行维护
- 始终驻留在服务器端
- 所做更改永久有效,不受关闭和启动的影响
- 可以自行调节参数值
- 使恢复管理器能够备份初始化参数文件
创建 SPFILE
SPFILE 是使用 CREATE SPFILE 命令从 PFILE 文件创建的。该命令需要具有 SYSDBA 权限才能执行。该命令可在例程启动之前或之后执行。
SQL> CREATE SPFILE [=’SPFILE-NAME’]
2 FROM PFILE[=’PFILE-NAME’]
其中:
- SPFILE-NAME:要创建的 SPFILE 的名称
- PFILE-NAME:用于创建 SPFILE 的 PFILE 的名称。PFILE 必须在服务器端可用
如果在语法中未包括 SPFILE-NAME 和 PFILE-NAME,Oracle 将使用缺省 PFILE 来生成 SPFILE(其名称由系统生成)。
SQL> CREATE SPFILE FROM PFILE;
从 PFILE 文件创建
CREATE SPFILE = ‘$ORACLE_HOME/dbs/spfileDBA01.ora’ FROM PFILE = ‘$ORACLE_HOME/dbs/initDBA01.ora’;
其中
SPFILE-NAME:要创建的 SPFILE
PFILE-NAME:用于创建 SPFILE 的 PFILE
可在例程启动之前或之后执行
导出 SPFILE:
可将 SPFILE 的内容导出到 PFILE 中。
SQL> CREATE PFILE FROM SPFILE;
以上命令在服务器端创建了一个文本文件格式的 PFILE 。该命令可在例程启动之前或
之后执行。这样就提供了一种查看 SPFILE 并进行修改的简单方法:
- 将 SPFILE 导出到 PFILE
- 编辑 PFILE
- 从编辑过的 PFILE 重新创建 SPFILE
将 SPFILE 导出到 PFILE 还可用作创建永久参数文件的备份的备用方法。
注:使用 Oracle9i,RMAN 还可备份永久参数文件。
V$SPPARAMETER
如上所述,查看 SPFILE 内的参数设置时有几个选项。V$SPPARAMETER 是显示和查看 SPFILE 的内容的另一种方法。
创建 SPFILE
使用 Oracle Enterprise Manager 创建 SPFILE
从 OEM 控制台:
- 从主菜单选择“对象”(Object) >“创建 spfile”(Create spfile)。
使用 Oracle Enterprise Manager 导出 SPFILE
从 OEM 控制台:
1.从主菜单选择“对象”(Object)>“创建 pfile”(Create pfile)。
SPFILE 示例
*.background_dump_dest=‘/home/dba01/ADMIN/BDUMP’ *.compatible='9.0.0' *.control_files='/home/dba01/ORADATA/u01/ctrl01.ctl’ *.core_dump_dest=‘/home/dba01/ADMIN/CDUMP’ *.db_block_size=4096 *.db_name='dba01‘ *.db_domain=‘world’ *.global_names=TRUE *.instance_name='dba01' *.remote_login_passwordfile='exclusive‘ *.java_pool_size=50000000’ *.shared_pool_size=50000000 *.undo_management='AUTO' *.undo_tablespace='UNDOTBS' . . .
SPFILE 示例
PFILE 中的参数设置行上指定的注释保留在 SPFILE 中。所有其它注释都被忽略。
尽管 SPFILE 中的文本在 UNIX 中易于查看,但 SPFILE 是一个二进制文件,对
SPFILE 进行手动修改将使之无效。如果需要查看 SPFILE 的特定内容或进行一些
更改,可将 SPFILE 导出到 PFILE。
STARTUP 命令行为
优先顺序:
- 使用命令 STARTUP 时,服务器端的 spfileSID.ora 用于启动例程。
- 如果找不到 spfileSID.ora,则使用服务器端的缺省 SPFILE 来启动例程。
- 如果找不到缺省 SPFILE,将使用服务器端的 initSID.ora 来启动例程。
指定的 PFILE 可覆盖缺省 SPFILE 来启动例程。
可在 PFILE 中包含一个定义以指示要使用 SPFILE。这是在非缺省位置使用 SPFILE
启动例程的唯一方法。要使用非缺省位置的 SPFILE 启动数据库,必须在 PFILE 中指
定 SPFILE=<完整路径和文件名>。
示例:SPFILE=$HOME/ADMIN/PFILE/$ORACLE_SID.ora。
优先顺序
- spfileSID.ora
- 缺省 SPFILE
- initSID.ora
- 缺省 PFILE
- 指定的 PFILE 可覆盖优先顺序
STARTUP PFILE = $ORACLE_HOME/dbs/initDBA1.ora
PFILE 可指示要使用 SPFILE
SPFILE = /database/startup/spfileDBA1.ora
修改 SPFILE 中的参数
ALTER SYSTEM SET 命令用于更改例程参数的值。
ALTER SYSTEM SET parameter_name = parameter_value
[COMMENT ‘text’] [SCOPE = MEMORY|SPFILE|BOTH]
[SID= ‘sid’|’*’]
其中
parameter_name:要更改的参数的名称
parameter_value:要将参数更改为的值
COMMENT:添加在 SPFILE 中被更改的参数旁的注释
SCOPE:确定应在内存中、在 SPFILE 中还是同时在这两个位置进行更改
MEMORY:只能在当前运行的例程中更改参数值
SPFILE:只能在 SPFILE 中更改参数值
BOTH:在当前运行的例程和 SPFILE 中均可更改参数值
SID:标识要使用的 SPFILE 的 ORACLE_SID
‘sid’:更改 SPFILE 时使用的特定 SID
‘*’:使用缺省 SPFILE
- 使用 ALTER SYSTEM 更改参数值
-
ALTER SYSTEM SET undo_tablespace = ‘UNDO2’;
- 指定所做更改是临时的还是永久的
-
ALTER SYSTEM SET undo_tablespace = ‘UNDO2’ SCOPE=BOTH;
- 删除或重置值
-
ALTER SYSTEM RESET undo_suppress_errors SCOPE=BOTH SID=’*’;
示例:
SQL> SHOW PARAMETERS undo_suppress_errors
NAME TYPE VALUE
———————- ———– ——-
undo_suppress_errors boolean FALSE
SQL> ALTER SYSTEM SET undo_suppress_errors = TRUE
2 COMMENT = ‘temporary testing’ SCOPE=BOTH
3 SID=‘DBA01’;
SQL> SHOW PARAMETERS undo_suppress_errors
NAME TYPE VALUE
———————- ———– ——-
undo_suppress_errors boolean TRUE
ALTER SYSTEM RESET 命令用于删除或还原为缺省值。
SQL> ALTER SYSTEM RESET parameter_name [SCOPE = MEMORY|SPFILE|BOTH] [SID= ‘sid’|’*’]
示例:
SQL> ALTER SYSTEM RESET undo_suppress_errors
2 SCOPE=BOTH SID=‘dba01’;
从 SPFILE 中删除一个参数有以下几种方法:
- 将参数重设为缺省值来模拟使用 ALTER SYSTEM SET 的删除操作。
- 使用 CREATE SPFILE FROM PFILE 重新创建 SPFILE。
- 使用 ALTER SYSTEM RESET 从 SPFILE 删除参数。
修改 SPFILE 中的参数(续)
使用 Oracle Enterprise Manager 修改 SPFILE 配置
从 OEM 控制台:
1.导航到“数据库”(Databases) >“例程”(Instance)。
2.单击“配置”(Configuration)。
- 在“常规”(General) 页上,单击“全部初始化参数”( All Initialization Parameters)。
- 在参数值栏中修改参数 。
- 单击“确定”(OK)。
Comment