现在的位置: 首页 > 数据库 > 正文

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

2019年08月05日 数据库 ⁄ 共 1238字 ⁄ 字号 评论关闭

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

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

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

但是从Oracle9i开始,spfile被引入,s代表server,是服务器端的二进制文件,无法直接打开修改。Oracle首选spfile<sid>.ora文件作为启动参数文件;如果该文件不存在,选择spfile.ora;如果前两者都不存在,才选择init<sid>.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<sid>.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--

 

抱歉!评论已关闭.