oralce的pfile和spfile的区别

本文详细介绍了Oracle数据库中的两种重要参数文件——SPFILE和PFILE,包括它们的默认名称、路径、区别以及如何相互转换。此外还提供了关于如何使用SQL命令修改参数的具体指导,并列举了一些关键参数的例子。

pfile 默认的名称为“init+例程名.ora”文件路径:/app/oracle/product/10.2.0/dbs,这是一个文本文件,可以用任何文本编辑工具打开。

spfile 默认的名称为“spfile+例程名.ora”文件路径:/app/oracle/product/10.2.0/dbs以二进制文本形式存在,不能用vi编辑器对其中参数进行修改。

两个文件可以用命令 CREATE PFILE FROM SPFILE或CREATE SPFILE FROM PFILE来互相创建

区别:
1、启动次序 SPfile优先于Pfile。
2、PFILE是静态文件,修改之后不会马上生效,数据库必须重新启动读取这个文件才行。
3、SPFILE是动态参数文件,是二进制文件,不可以直接用记事本等等程序做修改,可以用ALTER命令做修改,不用重起数据库也能生效。
修改方法:
#查看参数信息
sql>show parameter;
#修改参数
sql>alter system set 参数名=值 scope=参数2;
参数2取值有如下三种:
1. scope=spfile: 对参数的修改记录在服务器初始化参数文件中,修改后的参数在下次启动DB时生效。适用于动态和静态初始化参数。
2. scope=memory: 对参数的修改记录在內存中,对于动态初始化参数的修改立即生效。在重启DB后会丟失,会复原为修改前的参数值。
3. scope=both:   对参数的修改会同时记录在服务器参数文件和內存中,对于动态参数立即生效,对静态参数不能用这个选项。
   如果使用了服务器参数文件,则在执行alter system语句时,scope=both是default的选项。
   如果沒有使用服务器参数文件,而在执行alter system语句时指定scope=spfile|both都会出错。


附:参数
# Cache and I/O     高速缓存和 I/O
###########################################
db_block_size=8192   指定数据块大小为8KB
db_cache_size=33554432    指定数据缓冲区为32MB,该值越大,可以减少对数据库文件的I/O次数,提高效率
db_file_multiblock_read_count=16
###########################################
# Cursors and 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    用户进程跟踪文件目录
###########################################
# File Configuration
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
###########################################
# Job Queues
###########################################
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 Log and 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。排序完成后, 各行将返回, 并且内存将释放。增大该值可以提高大型排序的效率。
###########################################
# System Managed Undo and Rollback Segments   系统管理的撤消和回退段
###########################################
undo_management=AUTO   指定系统使用的撤消空间管理方式为SMU 方式,在SMU方式下, 撤消空间会像撤消表空间一样在外部分配.
undo_retention=10800   
undo_tablespace=UNDOTBS1   指定回滚表空间为UNDOTBS

### ### 将 Oracle 的 PFILE 转换为 SPFILE 的方法 在 Oracle 数据库中,PFILE(Parameter File)是文本格式的初始化参数文件,而 SPFILE(Server Parameter File)是二进制格式的初始化参数文件,支持动态修改并持久化保存。将 PFILE 转换为 SPFILE数据库配置管理中的常见操作,尤其是在数据库启动维护过程中。 要完成 PFILESPFILE 的转换,可以在 SQL*Plus 中以 `SYSDBA` 身份连接数据库,并执行 `CREATE SPFILE` 命令。此命令会根据指定的 PFILE 创建一个 SPFILE,并将其存储在默认的 `$ORACLE_HOME/dbs` 目录下,或者指定自定义路径。 在非自动存储管理(ASM)环境中,可以使用如下命令创建 SPFILE: ```sql CREATE SPFILE FROM PFILE='/u01/app/oracle/admin/NDLNE/pfile/init.ora'; ``` 此命令会基于指定路径下的 PFILE 创建 SPFILE,并在数据库下次启动时使用该 SPFILE[^1]。 在使用 Oracle 自动存储管理(ASM)的环境中,SPFILE 可以存储在 ASM 磁盘组中。例如,使用以下命令将 SPFILE 创建在 ASM 磁盘组中: ```sql CREATE SPFILE='+data/rhndb/parameterfile/spfile.267.1006814727' FROM PFILE='/u01/app/oracle/product/19.0.0/db_1/dbs/initrhndb.ora'; ``` 此操作会将 SPFILE 存储在 ASM 磁盘组 `data` 中,并用于后续的数据库启动配置[^2]。 在转换过程中,数据库应处于 `NOMOUNT` 状态,即实例已启动但数据库未挂载。可以通过以下命令启动数据库至 `NOMOUNT` 状态: ```sql STARTUP NOMOUNT PFILE='/u01/app/oracle/admin/NDLNE/pfile/init.ora'; ``` 一旦 SPFILE 被成功创建,后续的数据库启动将不再需要手动指定 PFILE,因为 Oracle 会自动查找默认路径下的 SPFILE。如果 SPFILE 不在默认路径中,需要在启动时显式指定其位置。 转换完成后,验证 SPFILE 是否被正确创建并使用,可以通过以下命令检查当前数据库使用的参数文件类型: ```sql SHOW PARAMETER SPFILE; ``` 如果结果显示 `SPFILE` 参数值非空,则表示当前数据库正在使用 SPFILE。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值