加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

Oracle启动参数文件pfile及spfile介绍

(2014-05-15 11:11:20)
分类: Oracle

1、什么是参数

SQL>startup  #starup时都会首先去读取参数文件

利用v$parameter视图      查看参数值

SQL> col name format a20

SQL> col value format a30

SQL> select name,value from v$parameter;

利用show parameter参数名  查看参数值

SQL>show parameter sga;    #show patameter命令只有在数据库启动后才起作用

SQL>show parameter background_dump;     #日志文件目录

SQL>show parameter sg;     #参数名可以不完全敲完整,系统会自动识别参数名包含sg的参数值

 

2、静态参数文件pfileinitSID.ora

可以用任何编辑器修改,但是修改后如果想要pfile生效必须重启数据库

pfile默认路径:$ORACLE_HOME/dbs

如何创建pfile:从模板init.ora拷贝

当然可以在pfile中指定使用某个spfile,通过在pfile文件中加入如下配置:

SPFILE = /dir/spfileSID.ora

 

3、动态参数文件spfilespfileSID.ora

利用dbca工具创建的数据库,数据库默认初始参数文件为spfile

spfile是二进制文件,不可用编辑器修改;必须是服务器运行时自动维护或SQL命令修改

查看spfile文件的内容:

[oracle@oracle11g dbs]$ strings spfiletopprod.ora

通过pfile创建spfile

SQL>CREATE SPFILE FROM PFILE;   #默认创建在dbs目录下,后面加ORACLE_SID的名字

SQL>CREATE SPFILE='$ORACLE_HOME/dbs/spfileSID.ora'

       FROM PFILE ='$ORACLE_HOME/dbs/initSID.ora';

可以再数据库启动之前创建,也可以再启动之后创建

通过spfile创建pfile

SQL> create pfile from spfile;

修改spfile内容

#修改

Alter system set 参数名=值 

#缺省

Alter system reset 参数名 sid='sid|*'scope=memory|spfile|both 

 

4、Oracle启动使用参数文件的顺序

①指定的PFILE文件

   SQL>STARTUP PFILE = $ORACLE_HOME/dbs/initDBA1.ora

   STARTUP 后面不可指定SPFILE,如果想指定SPFILE则可以将SPFILE配置在PFILE文件中

②spfileSID.ora

③默认spfile:spfile.ora

④initSID.ora

如果以上参数文件都不存在,则数据库就无法启动

数据库启动后,如果想知道启动数据库到底使用的是哪个参数文件,可以查看参数spfile的值

SQL>show parameter spfile

当使用pfile启动数据时,则show parameter spfile 的value值就为空



  在Oracle 11g 以前,我们可以从spfile来创建pfile,或者利用pfile来创建spfile。 在Oracle 11g中,在管理spfile方面得到增强,可以从memory来创建pfile和spfile。

 

语法如下:

CREATE PFILE [= 'pfile_name' ]

FROM { { SPFILE [= 'spfile_name'] } | MEMORY } ;

 

CREATE SPFILE [= 'spfile_name' ]

FROM { { PFILE [= 'pfile_name' ] } | MEMORY } ;

 

 

 

示例:

 

[15:43 oracle@dave /u01/backup]$ora si

 

SQL*Plus: Release 11.2.0.3.0 Production onFri Oct 12 15:43:22 2012

 

Copyright (c) 1982, 2011, Oracle.  All rights reserved.

 

 

Connected to:

Oracle Database 11g Enterprise EditionRelease 11.2.0.3.0 - 64bit Production

With the Partitioning, OLAP, Data Miningand Real Application Testing options

 

SQL> create pfile from memory;

 

File created.

 

SQL> create spfile from memory;

create spfile from memory

*

ERROR at line 1:

ORA-32002: cannot createSPFILE already being used by the instance

--对于open 状态的实例,不能从memory创建spfile。

 

SQL> startup mount force;

ORACLE instance started.

 

Total System Global Area  730714112 bytes

Fixed Size                  2231952 bytes

Variable Size             285213040 bytes

Database Buffers          419430400 bytes

Redo Buffers               23838720 bytes

Database mounted.

SQL> select open_mode from v$database;

 

OPEN_MODE

--------------------

MOUNTED

 

SQL> create spfile from memory;

create spfile from memory

*

ERROR at line 1:

ORA-32002: cannot createSPFILE already being used by the instance

--mount 状态也不可以使用

 

SQL> startup nomount force;

ORACLE instance started.

 

Total System Global Area  730714112 bytes

Fixed Size                  2231952 bytes

Variable Size             285213040 bytes

Database Buffers          419430400 bytes

Redo Buffers               23838720 bytes

SQL> create spfile from memory;

create spfile from memory

*

ERROR at line 1:

ORA-32002: cannot createSPFILE already being used by the instance

--nomount 状态也不可以

 

SQL> shutdown abort;

ORACLE instance shut down.

SQL> create spfile from memory;

create spfile from memory

                   *

ERROR at line 1:

ORA-00922: missing or invalid option

--数据库关闭后,语法不可以用。

 

 

我们用pfile启动数据库,在来创建spfile:

SQL> startuppfile='/u01/app/oracle/product/11.2.0/db_1/dbs/initdave.ora'

ORACLE instance started.

 

Total System Global Area  730714112 bytes

Fixed Size                  2231952 bytes

Variable Size             285213040 bytes

Database Buffers          419430400 bytes

Redo Buffers               23838720 bytes

Database mounted.

Database opened.

SQL> create spfile from memory;

 

File created.

--这次创建成功。

 

注意:

    (1)如果是RAC 环境,那么生成的脚本会包含所有节点的参数。

     (2)执行这个命令需要使用sysdba或sysoper角色来执行。

 


0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有