Home >Database >Mysql Tutorial >[oracle]初始化参数文件spfile、pfile及修改参数的两种方式

[oracle]初始化参数文件spfile、pfile及修改参数的两种方式

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOriginal
2016-06-07 15:32:552384browse

oracle数据库在启动过程中要读取初始化参数文件以确定一系列参数,例如数据库名pfile称、SGA大

oracle数据库在启动过程中要读取初始化参数文件以确定一系列参数,例如数据库名pfile称、SGA大小、最大连接数等等,pfile就是这样的一个初始化参数文件,文本文件,可以直接打开编辑,数据库启动时到默认目录下查找此文件,或者在命令行指定pfile文件:

SQL>startup  pfile='H:\oracle\product\10.2.0\db_1\database\INITorcl.ORA

pflie文件默认命名方式就是init.ora

但是从Oracle9i开始,spfile被引入,s代表server,是服务器端的二进制文件,无法直接打开修改。Oracle首选spfile.ora文件作为启动参数文件;如果该文件不存在,选择spfile.ora;如果前两者都不存在,才选择init.ora文件;如果以上三个文件都不存在,则无法启动实例。当然直接指定pfile的启动方式对新版本仍然有效。

spflie是不能直接打开修改,那么如何修改?有两种方式:

1. SQL> alter  system set xx=×× scope=spfile/both --意思是修改参数并把修改写入spfile中,如果scope的值是both则表示同时修改当前实例的参数并把修改写入spflie重启实例后修改生效,注意如果是静态参数,只能使用spfile选项,所谓静态参数是指无法在当前实例中改变的参数,这种参数只能通过将修改写入spfile,重启实例后才能生效。需要注意的一个问题是,省去scope选项时,默认是both,在使用spfile启动实例时;如果使用pfile启动实例,那么默认是memory,也就是说修改不会保存到参数文件中,仅对当前实例有效,参考自http://www.itpub.net/thread-1099216-1-1.html 7th-floor。

2. 通过pfile和spflie的互生成修改spfile。

    ①先将spfile生成pfile:SQL>create pfile from spfile; --只要spfile存在于默认目录下,在数据库的任何阶段都可以执行(包括关闭、nomount、mount和open)。执行后在默认目录下生成init.ora文件,即所说的pfile,windows下oracle10g默认目录是ORACLE_HOME\database。

   ②修改pfile文件中的参数。若出现在无法打开的情况,可以复制到桌面修改之后替换回去即可。

   ③用修改后的pfile文件生成spfile文件:SQL>create spfile from pfile;  -- 注意这一步只能在实例关闭阶段执行。

补充一句,在pfile和spfile互生成中,可以不使用默认文件而指定文件,如:

SQL>create spfile from pfile='H:\oracle\product\10.2.0\your_pfile';

 

--EOF--

 

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn