欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  数据库

Oracle学习之参数文件(spfile,pfile)

程序员文章站 2024-01-12 21:32:52
...

pfile文件 pfile(ParameterFile)文件是基于文本格式的参数文件,含有数据库的配置参数。Oracle 9i在安装时为每个数据库建立了一

pfile文件

pfile(ParameterFile)文件是基于文本格式的参数文件,含有数据库的配置参数。Oracle 9i在安装时为每个数据库建立了一个pfile,默认的名称为“init+例程名.ora”,这是一个文本文件,可以用任何文本编辑工具打开。

spfile文件

spfile(Server Parameter File,服务器参数文件)是基于二进制格式的参数文件,含有数据库及例程的参数和数值,但不能用文本编辑工具打开。

两文件比较

比较内容

spfile

pfile

格式

二进制格式

文本格式

编辑方式

(1)利用企业管理器对Pfile进行修改,然后转换为Spfile (2)在SQL Plus里使用ALTER SYSTEM语句进行修改

(1)利用文本工具直接进行修改 (2)在企业管理器里修改配置后导出形成

默认名称

SPfile+例程名.ora

Init+例程名.ora 实际参数文件Init.ora

默认路径

启动次序

SPfile优先于Pfile

Pfile低于Spfile

修改说明

pfile用于oracle8i,在oracle9i中也可以用,以文本形式存在,可以用vi编辑器对其中参数进行修改。文件格式为initSID.ora;

spfile专用于oracle9i,以二进制文本形式存在,不能用vi编辑器对其中参数进行修改。文件格式为spfileSID.ora。如果要对spfile文件进行修改,可以采用SQL语言:

SQL> ALTER SYSTEM SET PARAMETER ='VALUES';进行修改。(其中scope=memory内存,,scope=spfile;scope=both;)

Pfile和spfile相互转换

创建spfile

SQL>create spfile=’d:\oracle\spfile.ora’ from pfile;

通过spfile创建pfile备份

SQL>create pfile=’d:\initbak.ora’ from spfile;

查看 Oracle是用spfile启动还是pfile启动

方法一:通过查询v$spparameter视图中的isspecified列,如果只有false,说明使用pfile启动;如果有true,说明使用spfile启动。

SQL> select distinctisspecified from v$spparameter;

ISSPEC

------

FALSE

示例说明使用pfile启动。

SQL> select distinctisspecified from v$spparameter;

ISSPEC

------

TRUE

FALSE

示例说明使用spfile启动。

方法二:Show parameterspfile有值,说明使用spfile启动,无值说明使用pfile启动。

SQL> show parameter spfile;

NAME TYPE VALUE

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

spfile string

SQL>

示例说明使用pfile启动。

SQL> show parameterspfile;

NAME TYPE VALUE

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

spfile string /u01/app/oracle/product/10.2.0

/db_1/dbs/spfileorcl.ora

示例说明使用spfile启动。

使用spfile的好处

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

用spfile以后,所有参数改变都写到spfile里面(只要定义scope=spfile或both)

pfile初始化参数文件分析

#####################################################################

# Cacheand I/O 高速缓存和 I/O

###########################################

db_block_size=8192 指定数据块大小为8KB

db_cache_size=33554432 指定数据缓冲区为32MB,该值越大,可以减少对数据库文件的I/O次数,提高效率

db_file_multiblock_read_count=16

###########################################

# Cursorsand Library Cache 游标和库高速缓存

###########################################

open_cursors=300 指定一个会话一次可以打开的游标的最大数量为300,应将该值设置得足够高,这样才能防止应用程序耗尽打开的游标

###########################################

#Database Identification 数据库标识

###########################################

db_domain="" 数据库域名为mynet,加上数据库名称db_name构成全局数据库名称

db_name=cicro 数据库名称为myoracle

###########################################

#Diagnostics and Statistics 诊断和统计

###########################################

background_dump_dest=/opt/oracle/admin/cicro/bdump 后台进程跟踪文件目录

core_dump_dest=/opt/oracle/admin/cicro/cdump 核心转储跟踪文件目录

timed_statistics=TRUE 收集操作系统的计时信息,这些信息可被用来优化数据库和 SQL 语句

user_dump_dest=/opt/oracle/admin/cicro/udump 用户进程跟踪文件目录

###########################################

# FileConfiguration

control_files=("/opt/oracle/oradata/cicro/control01.ctl","/opt/oracle/oradata/cicro/control02.ctl", "/opt/oracle/oradata/cicro/control03.ctl") 指定控制文件的路径及文件名

###########################################

#Instance Identification 网络注册

###########################################

instance_name=test 例程名称为test

###########################################

# JobQueues

###########################################

job_queue_processes=10

###########################################

#MTS 多线程服务器配置标识,在Oracle 9i里称为共享服务器配置

###########################################

dispatchers="(PROTOCOL=TCP)(SERVICE=testXDB)" 多线程服务器配置

###########################################

#Miscellaneous 其他

###########################################

aq_tm_processes=1

compatible=9.2.0.0.0 兼容版本9.2.0

###########################################

#Optimizer

###########################################

hash_join_enabled=TRUE

query_rewrite_enabled=FALSE

star_transformation_enabled=FALSE

db_name=cicro

###########################################

#Pools 池

###########################################

java_pool_size=83886080 指定Java存储池的大小为32MB,用于存储 Java 的方法、类定义和Java对象。

large_pool_size=16777216 指定大型池的大小为1MB, 用于共享服务器的会话内存、并行执行的消息缓冲区以及RMAN备份和恢复的磁盘 I/O 缓冲区。

shared_pool_size=83886080 指定共享池的大小为32MB,用于存储共享游标、存储的过程、控制结构和并行执行消息缓冲区等对象。较大的值能改善多用户系统的性能.

###########################################

#Processes and Sessions 进程和会话

###########################################

processes=150 指定可同时连接到一个Oracle Server上的操作系统用户进程的最大数量为150

###########################################

# Redo Logand Recovery 重做日志和恢复

###########################################

fast_start_mttr_target=300 指定从单个数据库例程崩溃中恢复所需的时间为300秒

###########################################

#Security and Auditing 安全与验证

###########################################

remote_login_passwordfile=EXCLUSIVE 指定操作系统或口令文件是否具有检查用户口令的权限。设置为EXCLUSIVE, 将使用数据库的口令文件对每个具有权限的用户进.

###########################################

# Sort,Hash Joins, Bitmap Indexes 排序, 散列联接, 位图索引

###########################################

pga_aggregate_target=25165824

sort_area_size=524288 指定排序区使用的最大内存量为512KB。排序完成后, 各行将返回, 并且内存将释放。增大该值可以提高大型排序的效率。

###########################################

# SystemManaged Undo and Rollback Segments 系统管理的撤消和回退段

###########################################

undo_management=AUTO 指定系统使用的撤消空间管理方式为SMU 方式,在SMU方式下, 撤消空间会像撤消表空间一样在外部分配.

undo_retention=10800

undo_tablespace=UNDOTBS1 指定回滚表空间为UNDOTBS

Oracle学习之参数文件(spfile,pfile)