oracle基础知识(六)----spfile与pfile

一, 认识参数文件

       Oracle中的参数文件是一个包含一系列参数以及参数对应值的操作系统文件。它们是在数据库实例启动时候加载的,决定了数据库的物理 结构、内存、数据库的限制及系统大量的默认值、数据库的各种物理属性、指定数据库控制文件名和路径等信息,是进行数据库设计和性能调优的重要文件。

  1,spfile

     这个是oracle9i之后映入的概念:

      SPfileServer Parameter File,服务器参数文件)是基于二进制格式的参数文件,含有数据库及例程的参数和数值,但不能用文本编辑工具打开。可以再sql命令里面更改,或者二进制编写.spfile 默认的名称为“spfile+例程名.ora”文件路径:$ORACLE_HOME/dbs 以二进制文本形式存在.

    动态修改参数的模式 

alter system set parameter=Value scope={spfile|both|memory} 

    SPfile 三种模式:

      scope=both       立即并永久生效,(默认模式)

    对参数的修改同时记录在内存中和服务器端的初始化参数文件中。为默认使用值。

      scope=spfile     下次启动才能生效。

    对参数的修改仅记录在服务器初始化参数文件中。该选项同时适用于动态与静态的初始化参数。修改后的参数只有下一次启动数据库时更改才会生效。

      scope=memory     立即生效但下次启动时失效

    对参数的修改记录在内存中,对于动态初始化参数,更改立即生效。修改并不会被记录在服务器端的初始化参数中。下一次启动数据库时更改失效,不能用于静态初始化参数。

  2,pfile

    初始化参数文件(Initialization Parameters Files),Oracle 9i之前,ORACLE一直采用pfile方式存储初始化参数,pfile 默认的名称为“init+例程名.ora”文件路径:$ORACLE_HOME/dbs,这是一个文本文件,可用查看内容

二,区别体现

  01,Spfile 对比pfile来说

      可以用RMAN来备份spfile,但是不能备份pfile

      减少了人为的错误。spfile由服务器来管理,任何参数改变被接受前都会经过严格处理

      消除了配置问题,如果远程启动oracle服务器,不再需要一个本地的pfile

       不能修改参数文件,二进制形式

         里面有动态参数,可以在线修改,而不用重启oracle;

  02,pfile优点

      可以使用文本编辑器进行编辑

      远程拷贝,拖过来改配置就能继续用

  03,大家的对比

    pfile文件可以用文本编辑器打开手工配置、而spfile不行,只能通过SQL命令在线修改。

    修改文件spfile支持在线修改,pfile只能重新启动读取

三, 启动读取顺序 

    1、直接在默认路径下查找spfileSID.ora --(spfile

      如果没有再查找2

    2、直接在默认路径下查找spfile.ora     

      如果没有再查找3

    3、直接在默认路径下查找initSID.ora --(pfile

      如果还没有 那就会报错了

   顺序: spfileSID.ora----->spfile.ora------>initSID.ora

    当然也有指定pfile启动

startup pfile=$ORACLE_HOME/dbs/initSID.ora

四,相互转换与查看

    查看spfile或者pfile的位置信息

 1 SQL> SELECT NAME, VALUE, DISPLAY_VALUE FROM V$PARAMETER WHERE NAME ='spfile';
 2 
 3 NAME
 4 --------------------------------------------------------------------------------
 5 VALUE
 6 --------------------------------------------------------------------------------
 7 DISPLAY_VALUE
 8 --------------------------------------------------------------------------------
 9 spfile
10 /u01/app/oracle/product/11.2.0/db_1/dbs/spfileoracle01.ora
11 /u01/app/oracle/product/11.2.0/db_1/dbs/spfileoracle01.ora
View Code
1 SQL> show parameter pfile
2 
3 NAME                     TYPE     VALUE
4 ------------------------------------ ----------- ------------------------------
5 spfile                     string     /u01/app/oracle/product/11.2.0
6                          /db_1/dbs/spfileoracle01.ora
View Code

    查看启动数据库的类型

1 select decode(count(*),1,'spfile','pfile') from v$spparameter where rownum=1 and isspecified ='TRUE';
View Code
主库:
SQL> select decode(count(*),1,'spfile','pfile') from v$spparameter where rownum=1 and isspecified ='TRUE';

DECODE
------
spfile

从库:
SQL> select decode(count(*),1,'spfile','pfile') from v$spparameter where rownum=1 and isspecified ='TRUE';

DECODE
------
pfile

    相互创建:

SQL> create pfile from spfile ;

File created.

SQL>
或者

SQL> create spfile from pfile ;

File created.

SQL>

格式:
CREATE SPFILE=’spfilename’ FROM PFILE=’pfilename’

五,spfile 动态修改

  scope=both: 立即生效

 1 SQL> show parameter pga;
 2 
 3 NAME                     TYPE     VALUE
 4 ------------------------------------ ----------- ------------------------------
 5 pga_aggregate_target             big integer 798M
 6 
 7 SQL> alter system set pga_aggregate_target = 900m scope=both;
 8 System altered.
 9 SQL> show parameter pga;
10 
11 SQL> show parameter pga;
12 
13 NAME                     TYPE     VALUE
14 ------------------------------------ ----------- ------------------------------
15 pga_aggregate_target             big integer 900M

    静态文件的话就不行了:

  报错:

    * ERROR at line 1:

    ORA-02095: specified initialization parameter cannot be modified

六,pfile 文件参数详解

  

 1 # Cache and I/O     高速缓存和 I/O
 2 
 3 db_block_size=8192   指定数据块大小为8KB
 4 db_cache_size=33554432    指定数据缓冲区为32MB,该值越大,可以减少对数据库文件的I/O次数,提高效率
 5 db_file_multiblock_read_count=16
 6 
 7 
 8 # Cursors and Library Cache   游标和库高速缓存
 9 
10 open_cursors=300   指定一个会话一次可以打开的游标的最大数量为300,应将该值设置得足够高,这样才能防止应用程序耗尽打开的游标
11 
12 
13 # Database Identification   数据库标识
14 
15 db_domain=""   数据库域名为mynet,加上数据库名称db_name构成全局数据库名称
16 db_name=oracle01   数据库名称为myoracle
17 
18 
19 # Diagnostics and Statistics    诊断和统计
20 
21 background_dump_dest=/opt/oracle/admin/cicro/bdump   后台进程跟踪文件目录
22 core_dump_dest=/opt/oracle/admin/cicro/cdump         核心转储跟踪文件目录
23 timed_statistics=TRUE                                收集操作系统的计时信息,这些信息可被用来优化数据库和 SQL 语句
24 user_dump_dest=/opt/oracle/admin/cicro/udump         用户进程跟踪文件目录
25 
26 
27 # File Configuration
28 control_files=("/opt/oracle/oradata/cicro/control01.ctl", "/opt/oracle/oradata/cicro/control02.ctl", 
29 
30 "/opt/oracle/oradata/cicro/control03.ctl")    指定控制文件的路径及文件名
31 
32 
33 # Instance Identification   网络注册
34 
35 instance_name=test   例程名称为test
36 
37 
38 # Job Queues
39 job_queue_processes=10
40 
41 
42 # MTS 多线程服务器配置标识,在Oracle 9i里称为共享服务器配置
43 
44 dispatchers="(PROTOCOL=TCP) (SERVICE=testXDB)"   多线程服务器配置
45 
46 # Miscellaneous   其他
47 
48 aq_tm_processes=1
49 compatible=9.2.0.0.0   兼容版本9.2.0
50 
51 
52 # Optimizer
53 
54 hash_join_enabled=TRUE
55 query_rewrite_enabled=FALSE
56 star_transformation_enabled=FALSE
57 db_name=cicro
58 
59 
60 
61 # Pools 池
62 
63 java_pool_size=83886080    指定Java存储池的大小为32MB,用于存储 Java 的方法、类定义和Java对象。
64 large_pool_size=16777216   指定大型池的大小为1MB, 用于共享服务器的会话内存、并行执行的消息缓冲区以及RMAN备份和恢复的磁盘 I/O 缓冲区。
65 shared_pool_size=83886080  指定共享池的大小为32MB,用于存储共享游标、存储的过程、控制结构和并行执行消息缓冲区等对象。较大的值能改善多用户系统的性能.
66 
67 # Processes and Sessions 进程和会话
68 
69 processes=150 指定可同时连接到一个Oracle Server上的操作系统用户进程的最大数量为150
70 
71 # Redo Log and Recovery   重做日志和恢复
72 
73 fast_start_mttr_target=300   指定从单个数据库例程崩溃中恢复所需的时间为300秒
74 
75 # Security and Auditing 安全与验证
76 
77 remote_login_passwordfile=EXCLUSIVE   指定操作系统或口令文件是否具有检查用户口令的权限。设置为EXCLUSIVE, 将使用数据库的口令文件对每个具有权限的用户进.
78 
79 
80 # Sort, Hash Joins, Bitmap Indexes   排序, 散列联接, 位图索引
81 
82 pga_aggregate_target=25165824
83 sort_area_size=524288   指定排序区使用的最大内存量为512KB。排序完成后, 各行将返回, 并且内存将释放。增大该值可以提高大型排序的效率。
84 
85 
86 # System Managed Undo and Rollback Segments   系统管理的撤消和回退段
87 
88 undo_management=AUTO   指定系统使用的撤消空间管理方式为SMU 方式,在SMU方式下, 撤消空间会像撤消表空间一样在外部分配.
89 undo_retention=10800   
90 undo_tablespace=UNDOTBS1   指定回滚表空间为UNDOTBS

    

    

    

原文地址:https://www.cnblogs.com/kingle-study/p/10438764.html