10、pfile和spfile文件详解

10.1、介绍:

1、Oracle中的参数文件是一个包含一系列参数以及参数对应值的操作系统文件。它们是在数据库实例启动时候加载的,

决定了数据库的物理结构、内存、数据库的限制及系统大量的默认值、数据库的各种物理属性、指定数据库控制文件名

和路径等信息,是进行数据库设计和性能调优的重要文件。可以分为两种类型:

(1)pfile:

初始化参数文件,Oracle9i之前,ORACLE一直采用pfile方式存储初始化参数,pfile默认的名称为"init+例程名.ora"

文件路径为"/application/oracle/product/11.2.0/db_1/dbs",这是一个文本文件,可以用任何文本编辑工具打开;

(2)spfile:

服务器参数文件,从Oracle9i开始,Oracle引入了Spfile文件,spfile默认的名称为"spfile+例程名.ora",文件路径

为"/application/oracle/product/11.2.0/db_1/dbs",以二进制文本形式存在,不能用vi编辑器对其中参数进行修改,

只能通过SQL命令在线修改;

[[email protected] ~]$ ls /application/oracle/product/11.2.0/db_1/dbs/

hc_orcl.dat init.ora initorcl.ora lkORCL orapworcl spfileorcl.ora

2、使用spfile的好处:

spfile改正了pfile管理混乱的问题,在多结点的环境里,pfile会有多个image,启动时候需要跟踪最新的image。这

是个烦琐的过程。用spfile以后,所有参数改变都写到spfile里面(只要定义scope=spfile或both),参数配置有个权威

的来源;9i以前一般都是要备份pfile后再来做参数的修改,而且pfile的修改必须重启实例才能生效。非常的不方便;在9i

以后的spfile就可以同通过命令修改指定的参数了,而且有很多参数都不用重启数据库,能够在线生效,这个在线生效的

参数会随着数据库的版本增高而增加。如果参数修改有问题数据库起不来了可以在 nomount状态下创建成pfile再修改回

来即可;

3、启动优先级:

startup 启动次序 spfile优先于pfile。查找文件的顺序是 spfileSID.ora-〉spfile.ora-〉initSID.ora-〉init.ora(spfile优先于pfile)。

如果在数据库的$ORACLE_HOME/dbs/目录下既有spfile又有pfile,使用spfile启动数据库,不需要指定参数文件路径(因为数据库会优先选择spfile启动),

如果参数文件不在$ORACLE_HOME/dbs/目录下,无论是通过spfile或pfile启动均需要指定完整路径;

4、spfile参数的三种scope:

(1)scope=spfile: 对参数的修改记录在服务器初始化参数文件中,修改后的参数在下次启动DB时生效,适用于动态和静态初始化参数;

(2)scope=memory: 对参数的修改记录在內存中,对于动态初始化参数的修改立即生效,在重启DB后会丟失,会复原为修改前的参数值;

(3)scope=both: 对参数的修改会同时记录在服务器参数文件和內存中,对于动态参数立即生效,对静态参数不能用这个选项,如果使用

了服务器参数文件,则在执行alter system语句时,scope=both是default的选项;

(4)如果沒有使用服务器参数文件,而在执行alter system语句时指定scope=spfile|both都会出错;

(5)小结:


参数类型


spfile


memory


both


静态参数


可以,重启生效


不可以


不可以


动态参数


可以,重启生效


可以,立即生效,重启后失效


可以立即生效,重启后失效

5、如何判断oracle实例使用的是pfile文件还是spfile文件:

show parameter spfile;

show parameter pfile;

#使用上面两个sql语句,如果oracle实例使用的是pfile文件则查询不到任何的结果,如果使用的是spfile文件,则显示的都是spfile文件的路径;

6、pfile和spfile可以互相创建:

create spfile from pfile

create pfile from spfile

#当然在spfile和pfile的后面可以跟具体的路径;

10.2、登录到oracle实例:

[[email protected] ~]$ echo $ORACLE_SID

orcl

[[email protected] ~]$ sqlplus sys/[email protected] as sysdba

SQL>show parameter name;

10.3、修改oracle实例的并发连接数:

1、查询数据库实例的会话连接情况:

SQL> select count(*) from v$session;

#查询数据库实例当前会话连接数;

SQL> select username,count(username) from v$session where username is not null group by username;

#查询数据库实例当前不同用户的会话连接数;

SQL> select count(*) from v$session where status=‘ACTIVE‘;

#查询数据库实例当前会话的并发连接数;

2、查询数据库实例的进程连接数:

SQL> select count(*) from v$process;

#查询数据库实例当前进程的连接数;

3、修改spfile的参数步骤:

SQL> show parameter processes;

#查询当前数据库实例允许的最大连接数;

SQL> show parameter spfile;

#判断当前所用的是spfile还是pfile文件;

SQL> create pfile from spfile;

#将当前的spfile文件备份;

SQL> alter system set processes=3000 scope=spfile;

#修改当前数据库实例的(spfile文件)最大连接数;

SQL> shutdown immediate;

#关闭当前数据库实例;

SQL> startup;

#由于修改数据库允许被连接的最大数太大,导致当前数据库实例无法启动;

SQL> startup pfile=/application/oracle/product/11.2.0/db_1/dbs/initorcl.ora;

#指定以pfile文件启动;

SQL> create spfile from pfile;

#将备份的spfile进行还原;

SQL> shutdown immediate;

#关闭数据库实例;

SQL> startup;

#启动数据库实例;

SQL> alter system set processes=3000 scope=spfile;

#重新指定spfile的processes参数;

SQL> shutdown immediate;

#关闭数据库实例;

SQL> startup

#启动数据库

10.4、查看orcl数据库实例的pfile文件:

1、MEMORY_TARGET参数:

(1)该参数指定Oracle实例可用内存大小;

(2)取值范围:152 MB to MEMORY_MAX_TARGET;

(3)Oracle实例在这个值的范围根据自身负载自动调节SGA和PGA的小;

(4)如果在参数文件中忽略了MEMORY_MAX_TARGET,则该参数的大小为MEMORY_TARGET的大小;

(5)如果忽略了MEMORY_TARGET,而设置了MEMORY_MAX_TARGET大小,则MEMORY_TARGET值为0,

为0表示禁用自动内存管理;

(6)实例启动后可动态设置MEMORY_TARGET的大小,但不可超过MEMORY_MAX_TARGET的大小;

(7)SGA_MAX_SIZE 的默认值依靠于MEMORY_TARGET 和MEMORY_MAX_TARGET的大小;

2、SGA_TARGET:

(1)是用于存储数据库信息的内存区,该信息为数据库进程所共享。它包含Oracle服务器的数据和控制信息,它是在

Oracle服务器所驻留的计算机的实际内存中得以分配,如果实际内存不够再往虚拟内存中写;

(2)SGA指定所有SGA组件的总大小,将该值设为正数则表示启用自动共享内存管理特性,下列内存池会自动调节大小:

Buffer cache (DB_CACHE_SIZE)

Shared pool (SHARED_POOL_SIZE)

Large pool (LARGE_POOL_SIZE)

Java pool (JAVA_POOL_SIZE)

Streams pool (STREAMS_POOL_SIZE)

(3)当启用自动内存管理(MEMORY_TARGET设置成正数),SGA_TARGET为最小的SGA大小;

3、PGA_AGGREGATE_TARGET:

(1)包含单个服务器进程或单个后台进程的数据和控制信息,与几个进程共享的SGA正相反,PGA是只被一个

进程使用的区域,PGA在创建进程时分配,在终止进程时回收,将该参数设成非零值启用自动PGA管理;

(2)将该参数设成非零值启用自动PGA管理,同时 WORKAREA_SIZE_POLICY该参数会设为auto,将该参数

设成零时,WORKAREA_SIZE_POLICY参数会自动设成MANUAL

(3)当启用自动内存管理(MEMORY_TARGET )时该值为最小PGA值;

4、Oracle官方推荐的MEMORY_TARGET、PGA、SGA的大小:

(1)ORACLE实例分配的物理内存的大小:

MEMORY_TARGET=物理内存 x 80%

MEMORY_MAX_SIZE=物理内存 x 80%

(2)对于OLTP系统:

SGA_TARGET=(物理内存 x 80%) x 80%

SGA_MAX_SIZE=(物理内存 x 80%) x 80%

PGA_AGGREGATE_TARGET=(物理内存 x 80%) x 20%

(3)对于DSS系统:

SGA_TARGET=(物理内存 x 80%) x 50%

SGA_MAX_SIZE=(物理内存 x 80%) x 50%

PGA_AGGREGATE_TARGET=(物理内存 x 80%) x 50%

(4)pga和sga的总和是oracle使用计算机内存的实际大小;

SQL> show parameter sga;

SQL> show parameter pga;

5、数据库orcl实例pfile文件(4G):

[[email protected] ~]# cat /application/oracle/product/11.2.0/db_1/dbs/initorcl.ora

orcl.__db_cache_size=1107296256

#sga自动管理

orcl.__java_pool_size=16777216

#sga自动管理

orcl.__large_pool_size=16777216

#sga自动管理

orcl.__oracle_base=‘/application/oracle‘#ORACLE_BASE set from environment

#数据库安装目录

orcl.__pga_aggregate_target=1342177280

#pga=(物理内存 x 80%) x 20%,由memory_target自动管理;

orcl.__sga_target=2013265920

#sga=(物理内存 x 80%) x 80%,由memory_target自动管理;

orcl.__shared_io_pool_size=0

orcl.__shared_pool_size=805306368

#sga自动管理

orcl.__streams_pool_size=33554432

#sga自动管理

*.audit_file_dest=‘/application/oracle/admin/orcl/adump‘

#日志审计目录

*.audit_trail=‘db‘

#记录数据库实例的审计记录;

*.compatible=‘11.2.0.0.0‘

#数据库版本号

*.control_files=‘/application/oracle/oradata/orcl/control01.ctl‘,‘/application/oracle/flash_recovery_area/orcl/control02.ctl‘

#数据库实例控制文件位置

*.db_block_size=8192

#定义oracle数据库实例块的大小,8k

*.db_domain=‘‘

#定义一个数据库实例在网络架构中的一个逻辑位置

*.db_name=‘orcl‘

#数据库实例名

*.db_recovery_file_dest=‘/application/oracle/flash_recovery_area‘

#该参数控制的是闪回恢复区域(FRA)的位置

*.db_recovery_file_dest_size=4070572032

#该参数控制的是闪回恢复区域(FRA)的大小

*.diagnostic_dest=‘/application/oracle‘

#数据库实例诊断目录,位于$ORACLE_BASE/diag/rdbms/orcl/

*.dispatchers=‘(PROTOCOL=TCP) (SERVICE=orclXDB)‘

#oracle数据库实例多线程

*.memory_target=3340763136

#Oracle实例可用内存=物理内存 x 80%,同时也开启了oracle实例内存自动管理sga和pga的功能

*.open_cursors=500

#指定一个session同时打开的游标的最大数目,需要设定该参数足够大来保证应用的正常运行,默认300

*.processes=3000

#数据库实例允许被连接的最大数,默认150

*.remote_login_passwordfile=‘EXCLUSIVE‘

#通过sqlnet.ora文件验证用户;

*.undo_tablespace=‘UNDOTBS1‘

#回滚表空间

10.5、oracle数据库优化:

1、修改oracle实例的最大连接数;

本文上面有介绍,在此就不再赘述了;

2、修改oracle实例的session游标数

SQL> alter system set open_cursors=500 scope=spfile;

SQL> shutdown immediate;

SQL> startup;

3、修改oracle实例可用内存大小:

SQL> alter system set memory_target=4340763136 scope=spfile;

#Oracle实例可用内存增大为4G,注意:最大不能超过物理内存的80%;

SQL> shutdown immediate;

SQL> startup;

原文地址:https://www.cnblogs.com/LiuChang-blog/p/12315811.html

时间: 2024-07-31 00:20:49

10、pfile和spfile文件详解的相关文章

T-SQL 操作文件 详解

/*******  导出到excel EXEC master..xp_cmdshell 'bcp SettleDB.dbo.shanghu out c:\temp1.xls -c -q -S"GNETDATA/GNETDATA" -U"sa" -P""' /***********  导入Excel SELECT * FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0', 'Data Source="

delphi 资源文件详解

delphi资源文件详解 一.引子: 现在的Windows应用程序几乎都使用图标.图片.光标.声音等,我们称它们为资源(Resource).最简单的使用资源的办法是把这些资源的源文件打入软件包,以方便程序需要的时候调用.资源是程序的一部分,程序要正常运行就离不了资源文件.但是它是不可执行代码. 为了更好地管理资源,Delphi中提供了一种.RES类型的资源文件.它可以把我们程序中所需要的资源整合到一个资源文件(.RES)下来.在编译应用程序时直接编译进了可执行程序里,成为应用程序的整合体. 这样

hibernate 对象关系映射文件详解

POJO 类和数据库的映射文件*.hbm.xml POJO类和关系数据库之间的映射可以用一个XML文档来定义. 映射文件的扩展名为.hbm.xml 在运行时Hibernate将根据这个映射文件来生成各种SQL语句 通过POJO类的数据库映射文件,Hibernate可以理解持久化类和数据表之间的对应关系,也可以理解持久化类属性与数据库表列之间的对应关系 映射文件说明 hibernate-mapping 类层次:class 主键:id 基本类型:property 实体引用类: many-to-one

重建控制文件详解

http://note.youdao.com/share/?id=d3991566cad33723db8b92183dcd9161&type=note 完整图文最新版 创造"重建控制文件脚本"需要在mount或open下进行. alter database backup controlfile to trace as '/tmp/ctl..sql'; 执行"重建控制文件脚本"需要在nomount的时候. -- The following are curren

jni.h头文件详解(二)

一:struct JNINativeInterface_{} 结构体的作用:它有点像我们char字符驱动的 file_ops结构体,它定义各种函数对在(jni.h头文件详解一)中定义的各种数据的操作函数集体. 二:它包含那些针对Java中类和对象的相关操作呢如下图. 三:下面我们讲详细介绍14个部分方法的用法和解析 3.1.版本信息操作函数. 一.GetVersion jint (JNICALL *GetVersion)(JNIEnv *env) --模块信息:该模块主要针对的JNI接口的版本信

web.xml文件详解

web.xml文件详解 前言:一般的web工程中都会用到web.xml,web.xml主要用来配置,可以方便的开发web工程.web.xml主要用来配置Filter.Listener.Servlet等.但是要说明的是web.xml并不是必须的,一个web工程可以没有web.xml文件. 1.WEB工程加载web.xml过程 经过个人测试,WEB工程加载顺序与元素节点在文件中的配置顺序无关.即不会因为 filter 写在 listener 的前面而会先加载 filter.WEB容器的加载顺序是:S

.htaccess文件详解

启用.htaccess,需要修改httpd.conf,启用AllowOverride,并可以用AllowOverride限制特定命令的使用 笼统地来说,.htaccess可以帮我们实现包括:文件夹密码保护.用户自动重定向.自定义错误页面.改变你的文件扩展名.封禁特定IP地址的用户.只允许特定IP地址的用户.禁止目录列表,以及使用其他文件作为index文件等一些功能. ●创建一个.htaccess文档 .htaccess是一个古怪的文件名(从Win的角度来说,它没有文件名,只有一个由8个字母组成的

第14章 启动文件详解—零死角玩转STM32-F429系列

第14章     启动文件详解 全套200集视频教程和1000页PDF教程请到秉火论坛下载:www.firebbs.cn 野火视频教程优酷观看网址:http://i.youku.com/firege 本章参考资料<STM32F4xx 中文参考手册>第十章-中断和事件:表 46. STM32F42xxx 和 STM32F43xxx 的向量表:MDK中的帮助手册—ARM Development Tools:用来查询ARM的汇编指令和编译器相关的指令. 14.1 启动文件简介 启动文件由汇编编写,是

SUBLIME TEXT 2 设置文件详解

SUBLIME TEXT 2 设置文件详解 Preferences.sublime-settings文件: // While you can edit this file, it’s best to put your changes in // “User/Preferences.sublime-settings”, which overrides the settings in here. // // Settings may also be placed in file type speci