ITPub博客

首页 > 数据库 > Oracle > oracle参数文件pfile,spfile

oracle参数文件pfile,spfile

原创 Oracle 作者:uuxa 时间:2009-10-28 16:59:14 0 删除 编辑

1、 每一个数据库中,都有一个操作系统文件,叫初始化参数文件,在10g版本中位于“C:oracleproduct10.1.0db_1database”目录下,它决定了数据库的物理结构、内存、数据库的极限值及大量的默认值。是进行数据库设计和优化的重要文件。

2、 可以分为文本参数文件(pfile text parameter file)和服务器参数文本文件(spfile server parameter file 两种。9i以后才有此spfile

3、 Oracle在起动时,必须要一个参数文件。在使用startup时,它先找spfile,如果没有,再找pfile

数据库启动时spfile和pfile的加载顺序
初始化参数是在数据库实例启动时(startup nomount)加载。
如果startup命令中未指定pfile参数,在windows系统中数据库启动时会按如下顺序查找启动参数文件:
%ORACLE_HOME%databaseSPFILE.ora
%ORACLE_HOME%databaseSPFILE.ora
%ORACLE_HOME%databaseinit.ora
在unix或linux系统中数据库启动时会按如下顺序查找启动参数文件:
%ORACLE_HOME%dbsSPFILE.ora
%ORACLE_HOME%dbsSPFILE.ora
%ORACLE_HOME%dbsinit.ora

[@more@]也就是说先找spfile.ora文件,如果spfile.ora没有则找spfile.ora文件,最后才会去找 init.ora的pfile文件.

如果要使用pfile,则必须使用pfile子句:startup force pfile=’d: PFILEORCL.ORA’

4、 参数文件的导出:原因有三

。服务器参数文件的备份

。列出例程当前使用的所有参数,以便查找原因。

。通过先导出spfile,再编辑pfile,再创建spfile,达到修改服务器参数的目的。

5、 导出spfile文件的操作方法:

。创建pfile

SQL> create pfile from spfile;

在参数文件目录下,会产生一个INITorcl.ORA文件,该文件可以用记事本打开编辑,千万记住spfile不能这样做。也可以指定路径和文件名:

SQL> create pfile='d:backup.ora' from spfile

。导出spfile

SQL> create pfile='c:test.ora' from spfile='c:oracleproduct10.1.0db_1databaseSPFILEORCL.ORA';

6、 创建spfile

SQL> create spfile from pfile='c:test.ora';

会在默认位置产生按默认规则命名的spfile文件。

该语句应该在使用startup pfile启动的数据库环境下或在startup命令完成以前,否则会出现下面的提示错误:

7、 更改参数文件

修改

alter system set parameter_name = parameter_value [, parameter_value ]...
[ COMMENT 'text' ]
[ DEFERRED ]
[ SCOPE = { MEMORY | SPFILE | BOTH } ]
[ SID = { 'sid' | * } ]

删除

alter system reset parameter_name
[ SCOPE = { MEMORY | SPFILE | BOTH } ]
[ SID = 'sid' ]

也可以使用 ALTER SYSTEM SET PARAMETER=''达到相同的效果;

使用alrer system 语句来设置、更改或删除(还原到默认值)初始化参数的值。注意,对于使用pfile参数文件启动的例程的修改只在当前例程中有效,要想将修改应用在未来的例程中,必须手动更新pfile文本参数文件,而spfile则不需要,所以尽量使用spfile启动。

另外,还要用scope子句来指明范围,通常有三种:

Scope=spfile 只更改服务器参数文件,适用于动态和静态参数,并且在下一次启动时才生效

Scope=memory 只更改内存中的参数,对于动态参数,立即生效,但由于没有更改spfile所以更改不能永久保留。不允许更改静态参数

Scope=both 既更改服务器参数文件的参数,也更改内存中的参数。结果是对于动态参数立即生效并永久保留。不允许更改静态参数。

SQL> alter system set open_cursors=30 scope=both;

如果没有使用spfile参数文件,那么在指定scope=spfile或scope=both时会出错。

如果使用spfile参数文件启到例程,默认设置scope=spfile;如果使用pfile,默认设置scope=memory。

对于动态参数,可以指定deferred关键值,这样更改只影响将来的会话。

8、查看初始化参数

。show parameters 查看当前使用的参数值。

SQL> show parameters open_cursors;

NAME TYPE VALUE
------------------------------------ ----------- ------
open_cursors integer 30

也可以导出所有的参数

SQL> show parameters > c:t.txt

。show parameter spfile 查看当前的spfile文件,

SQL> show parameter spfile

NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
spfile string C:ORACLEPRODUCT10.1.0DB_1
DATABASESPFILEORCL.ORA

如果没有使用该文件启动例程,则返回值为空。

SQL> show parameter spfile

NAME TYPE VALUE
------------------------------------ ----------- -------------
spfile string

。v$parameter 该视图显示当前使用的参数值

SQL> select name,value from v$parameter where name='open_cursors';

NAME
-----------------------------------------------------------------------

VALUE
-----------------------------------------------------------------------

open_cursors
300

。v$spparameter 该视图显示spfile参数文件中的当前内容,如果没有使用Spfile,则返回为空。

SQL> select name,value from v$spparameter where name='open_cursors';

NAME
---------------------------------------------------------------------

VALUE
---------------------------------------------------------------------

open_cursors
300

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/7416120/viewspace-1028229/,如需转载,请注明出处,否则将追究法律责任。

上一篇: 钻戒
请登录后发表评论 登录
全部评论
  • 博文量
    111
  • 访问量
    282567