Oracle初始化参数文件pfile和spfile

pfile和spfile的区别

pfile :Oracle 9i之前,ORACLE一直采用PFILE方式存储初始化参数,该文件为文本文件,可以在操作系统级别修改。当spfile文件修改出现错误导致oracle无法启动时,可以使用 pfile文件启动数据库

spfile:从Oracle 9i开始,Oracle引入了SPFILE文件,该文件为二进制格式,不能通过手工修改,只能在sql下通过alter system set 修改其中的参数。

如 ALTER SYSTEM SET REMOTE_LOGIN_PASSWORDFILE = EXCLUSIVE SCOPE = SPFILE ;

其中 scope有三个参数,分别为

scope=both       立即并永久生效,(默认模式)
        scope=spfile     下次启动才能生效。
        scope=memory     立即生效但下次启动时失效

查看spfile的位置

SQL> show parameter spfile ;

NAME                     TYPE     VALUE
------------------------------------ ----------- ------------------------------
spfile                     string     /opt/oracle/app/product/11.2.0
                         /dbhome_1/dbs/spfileorcl.ora

或者:

SQL> SELECT NAME, VALUE, DISPLAY_VALUE FROM V$PARAMETER WHERE NAME =‘spfile‘;

NAME
--------------------------------------------------------------------------------
VALUE
----------------------------------------------------------------------------------------------------
DISPLAY_VALUE
----------------------------------------------------------------------------------------------------
spfile
/opt/oracle/app/product/11.2.0/dbhome_1/dbs/spfileorcl.ora
/opt/oracle/app/product/11.2.0/dbhome_1/dbs/spfileorcl.ora

验证是否是spfile启动

1.执行SELECT ISSPECIFIED,count(*) FROM v$spparameter group by  ISSPECIFIED;

如果结果又true值,说明是spfile启动

2.show parameter spfile 如果value值不为空,则为spfile启动

使用spfile启动的实例,如何修改动态参数的内存值?
alter system set open_cursors=500 scope=memory;
使用spfile启动的实例,如何修改动态参数在参数文件中的取值?
alter system set open_cursors=400 scope=spfile;
使用spfile启动的实例,如何同时修改动态参数在参数文件中的取值和内存中的取值?
alter system set open_cursors=600 scope=both;
alter system set open_cursors=600;
使用spfile启动的实例,如何修改静态参数在参数文件中的取值?重新启动实例生效!!! startup force
alter system set db_unique_name=‘mydb‘ scope=spfile;

使用pfile:
create pfile from spfile;
create spfile from pfile;

*使用pfile启动实例alter system set命令没有scope选项!alter system set命令只能修改内存!
使用pfile启动的实例,如何修改动态参数的内存值?
alter system set open_cursors=500;
使用pfile启动的实例,如何修改动态参数在参数文件中的取值?
使用vi直接修改!
使用pfile启动的实例,如何同时修改动态参数在参数文件中的取值和内存中的取值?
先用alter system set命令,再使用vi!
使用pfile启动的实例,如何修改静态参数在参数文件中的取值?
使用vi直接修改!

实战:###############################################################

查看open_cursors参数值

strings $ORACLE_HOME/dbs/spfileorcl.ora  | grep open_cursors

show parameter name;
alter system set  db_unique_name = ‘test‘ scope=spfile;
startup force;

(1)、如何创建pfile?
create pfile from spfile;
如何用pfile启动实例?
需要把spfile修改名字!spfile优先级高于pfile!!!!!!

show parameter spfile ;
有值 spfile启动实例
没有值 pfile

cat initorcl.ora  | grep open_cursors

(2)使用pfile启动实例,如何修改动态参数的内存值和参数文件的值?
1、alter system set open_cursors=600
2、 initorcl.ora

(3)修改pfile位置

shutdown immediate

mv initorcl.ora  /home/oracle/

startup pfile=‘/home/oracle/initorcl.ora‘

(4)修改spfile位置
1、将spfile拷贝到指定路径

shutdown immediate

mv  spfileorcl.ora /home/oracle/2.ora

2、spfile指向pfile
vim initorcl.ora
spfile=‘/home/oracle/2.ora‘

(5)将spfile写入设备

将参数文件写入字符设备,使用字符设备充当spfile启动实例!
使用dd创建二进制文件
dd if=/dev/zero of=/disk1 bs=1M count=10
将二进制文件变块设备
losetup /dev/loop1 /disk1
将块设备变字符设备
raw /dev/raw/raw1/ /dev/loop1
chown oracle.  /dev/raw/raw1
将spfile写入设备:
create spfile=‘/dev/raw/raw1‘ from pfile;

[[email protected] dbs]$ cat initorcl.ora
spfile=‘/dev/raw/raw1‘

SQL> show parameter spfile;

NAME                     TYPE     VALUE
------------------------------------ ----------- ------------------------------
spfile                     string     /dev/raw/raw1

##########create pfile=‘/home/oracle/test.ora‘ from memory;

时间: 2024-10-03 23:28:37

Oracle初始化参数文件pfile和spfile的相关文章

Oracle 初始化参数文件pfile和spfile

pfile和spfile的区别 pfile :Oracle 9i之前,ORACLE一直采用PFILE方式存储初始化参数,该文件为文本文件,可以在操作系统级别修改.当spfile文件修改出现错误导致oracle无法启动时,可以使用 pfile文件启动数据库 spfile:从Oracle 9i开始,Oracle引入了SPFILE文件,该文件为二进制格式,不能通过手工修改,只能在sql下通过alter system set 修改其中的参数. 如 ALTER SYSTEM SET REMOTE_LOGI

数据库参数文件PFILE和SPFILE

PFILE和SPFILE都是Oracle 数据库的参数文件:PFILE格式为文本文件,可以直接编辑文件修改,Oracle 9i 以前只能用PFILE来指定和修改数据库初始化参数:SPFILE 格式为二进制文件,只能通过SQL命令修改,Oracle从 9i 开始,引入了SPFILE. 1. 如何确定数据库用的是PFILE还是SPFILE? a. 执行如下命令,结果为非空, 用的是SPFILE Show parameter spfile; b.  执行如下查询,结果为非空, 用的是SPFILE SE

oracle的参数文件(pfile,spfile)

参数文件的作用: 它们是在数据库实例启动时候加载的,决定了数据库的物理结构.内存.数据库的限制及系统大量的默认值.数据库的各种物理属性.指定数据库控制文件名和路径等信息,是进行数据库设计和性能调优的重要文件. 参数文件分为两类: 初始化参数文件pfile(Initialization Parameters Files),Oracle 9i之前,ORACLE一直采用PFILE方式存储初始化参数,该文件为文本文件.文件名通常为init<sid>.ora 服务器参数文件spfile(Server P

pfile,spfile 初始化参数文件顺序【weber出品】

一.初始化参数文件 启动实例时会读取初始化参数文件.参数文件有两种类型: 1.服务器参数文件:这是首选类型的初始化参数文件.这是一个由数据库服务器写入或读取的二进制文件,不得手动进行编辑.此文件驻留在执行 Oracle 数据库的服务器中,而且永远存在,不受数据库关闭或启动的影响.这个文件通常称为服务器参数文件 (SPFILE).文件默认名为 spfile<SID>.ora,启动时会自动搜索此文件. 2.  文本初始化参数文件:这类初始化参数文件可由数据库服务器读取,但不能由其写入.必须使用文本

oracle的参数文件:pfile和spfile

1.pfile和spfile Oracle中的参数文件是一个包含一系列参数以及参数对应值的操作系统文件.它们是在数据库实例启动时候加载的,决定了数据库的物理 结构.内存.数据库的限制及系统大量的默认值.数据库的各种物理属性.指定数据库控制文件名和路径等信息,是进行数据库设计和性能调优的重要文件.可以分为两种类型: pfile: 初始化参数文件(Initialization Parameters Files),Oracle 9i之前,ORACLE一直采用pfile方式存储初始化参数,pfile 默

Oracle的参数文件

1.参数文件 与Oracle数据库相关的参数文件有很多,但是最重要的是数据库的参数文件,如果没有这个参数文件,甚至无法启动数据库. 数据库的参数文件通常称为初始化文件(init file),或init.ora文件.这是因为历史上它的默认名就是init<ORACLE_SID>.ora.这所以称为"历史上"的默认名,原因是Oracle Database 9i Release 1 以来,对于存储数据库的参数设置,引入了一个很大改进的新方法:服务器参数文件(server param

丢失所有初始化参数文件后如何恢复

如果丢失所有初始化参数文件,但是有参数文件的备份可以用的情况下如何处理: 1.模拟问题发生 备份spfile 去dbs下面把所有初始化参数文件都删掉 2.如果实例并没有关闭,那么所有参数都还存储在内存中,就可以用 create pfile from spfile; 来创建pfile,之后再用 create spfile='/home/oracle/spfileorcl.ora' from pfile; 来创建spfile 3.如果实例是关闭掉的,或者是迁移到新的环境上的,可以先手工创建一个简单的

修改oracle初始化参数

1.初始化参数文件 启动实例,会读取初始化参数 (1)spfile (服务器参数文件)二进制文件 不能手动修改 spfile<SID>.ora SQL> show parameter spfile; NAME     TYPE VALUE ------------------------------------ ----------- ------------------------------ spfile     string +DATA/orcl/spfileorcl.ora (2

主库、备库的初始化参数文件

主库初始化参数文件-initowner.ora owner.__db_cache_size=1862270976 owner.__java_pool_size=33554432 owner.__large_pool_size=50331648 owner.__oracle_base='/u01/app/oracle'#ORACLE_BASE set from environment owner.__pga_aggregate_target=838860800 owner.__sga_target