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

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

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

(关于实例和service 请参考 https://www.cnblogs.com/aozhejin/p/15991629.html)

1、pfile: 初始化参数文件(Initialization Parameters Files)

pfile是啥呢,pfile的全名就是parameter file,参数文件。
pfile是一个可编辑的文本文件,主要内容就是数据库的配置参数,包括内存配置、数据库名、sessions、processes等。
pfile默认路径(windows):/u01/app/oracle/product/11.2.0/db1_s/dbs/initSID.ora
Oracle 9i之前,ORACLE一直采用pfile方式存储初始化参数,
pfile 默认的名称为“init+实例sid.ora”文件路径:/u01/app/oracle/product/11.2.0/db1_s/dbs
这是一个文本文件,可以用任何文本编辑工具打开。
我们可以直接使用 指定pfile文件启动第一阶段数据库
sql>startup pfile=/u01/app/oracle/product/11.2.0/db1_s/dbs/init.ora.10152018183435 //通过这个指定这个参数文件就可以启动这个数据库了

2、spfile:服务器参数文件(Server Parameter Files)

 从Oracle 9i开始,Oracle引入了Spfile文件,spfile 默认的名称为“spfile+例程名.ora”文件路径:/u01/app/oracle/product/11.2.0/db_1/dbs/ 
spfile以后,数据库默认就是读取spfile的配置启动和初始化参数 ,加载参数到内存中
以二进制文本形式存在,不能用vi编辑器对其中参数进行修改,只能通过SQL命令在线修改。

我们在创建oracle的数据库的时候,可以通过模版文件生成spfile文件.

创建服务器参数文件(spfile),指定 init$ORACLE_SID.ora
  sql> create spfile from pfile='/u01/app/oracle/product/11.2.0/db_1/dbs/initfp.ora';  
  File created.
  //生成的spfile名称为 spfile$ORACLE_SID.spfile 即spfilefp.spfile

Oracle 9i以前,Oracle是经过pfile启动和初始化数据库。在9i以后,默认经过加载spfile来启动和初始化数据库。

3、怎么查看数据库是经过spfile启动的仍是pfile

在SQL命令窗口,输入show parameter spfile,若是结果显示spfile的文件路径,即为经过spfile启动的,若是没有,就是pfile。
//我这里是采样的,oracle集群的

SQL> show parameter spfile

NAME TYPE VALUE
 ------------------------------------ ----------- ------------------------------
 spfile string +DATA/hty/parameterfile/spfilehty.ora   //文件放在了asm磁盘上,也可以不放在asm上


4、init.ora: 是pfile文件的例子,可设置,可不设置

[oracle@sh02 db_1]$ cat /u01/app/oracle/product/11.2.0/db_1/dbs/init.ora
#
# $Header: rdbms/admin/init.ora /main/23 2009/05/15 13:35:38 ysarig Exp $
#
# Copyright (c) 1991, 1997, 1998 by Oracle Corporation
# NAME
# init.ora
# FUNCTION
# NOTES
# MODIFIED
# ysarig 05/14/09 - Updating compatible to 11.2
# ysarig 08/13/07 - Fixing the sample for 11g
# atsukerm 08/06/98 - fix for 8.1.
# hpiao 06/05/97 - fix for 803
# glavash 05/12/97 - add oracle_trace_enable comment
# hpiao 04/22/97 - remove ifile=, events=, etc.
# alingelb 09/19/94 - remove vms-specific stuff
# dpawson 07/07/93 - add more comments regarded archive start
# maporter 10/29/92 - Add vms_sga_use_gblpagfile=TRUE
# jloaiza 03/07/92 - change ALPHA to BETA
# danderso 02/26/92 - change db_block_cache_protect to _db_block_cache_p
# ghallmar 02/03/92 - db_directory -> db_domain
# maporter 01/12/92 - merge changes from branch 1.8.308.1
# maporter 12/21/91 - bug 76493: Add control_files parameter
# wbridge 12/03/91 - use of %c in archive format is discouraged
# ghallmar 12/02/91 - add global_names=true, db_directory=us.acme.com
# thayes 11/27/91 - Change default for cache_clone
# jloaiza 08/13/91 - merge changes from branch 1.7.100.1
# jloaiza 07/31/91 - add debug stuff
# rlim 04/29/91 - removal of char_is_varchar2
# Bridge 03/12/91 - log_allocation no longer exists
# Wijaya 02/05/91 - remove obsolete parameters
#
##############################################################################
# Example INIT.ORA file
#
# This file is provided by Oracle Corporation to help you start by providing
# a starting point to customize your RDBMS installation for your site.
#
# NOTE: The values that are used in this file are only intended to be used
# as a starting point. You may want to adjust/tune those values to your
# specific hardware and needs. You may also consider using Database
# Configuration Assistant tool (DBCA) to create INIT file and to size your
# initial set of tablespaces based on the user input.
############################################################################### # Change '<ORACLE_BASE>' to point to the oracle base (the one you specify at
# install time) db_name='ORCL'
memory_target=1G
processes = 150
audit_file_dest='<ORACLE_BASE>/admin/orcl/adump'
audit_trail ='db'
db_block_size=8192
db_domain=''
db_recovery_file_dest='<ORACLE_BASE>/flash_recovery_area'
db_recovery_file_dest_size=2G
diagnostic_dest='<ORACLE_BASE>'
dispatchers='(PROTOCOL=TCP) (SERVICE=ORCLXDB)'
open_cursors=300
remote_login_passwordfile='EXCLUSIVE'
undo_tablespace='UNDOTBS1'
# You may want to ensure that control files are created on separate physical
# devices
control_files = (ora_control1, ora_control2)
compatible ='11.2.0'
参考: https://www.cnblogs.com/aozhejin/p/16008873.html

关于启动文件查找顺序问题。

用startup(默认)启动的顺序,oracle分为三个阶段启动,在第一个阶段使用这个参数文件即

pfile为文本文件,可以用文本编辑器编辑,需要手工维护。
spfile为二进制文件,不能直接编辑,由实例维护
1、startup启动数据库
 [oracle@sh02 dbs]$ echo $ORACLE_HOME
/u01/app/oracle/product/11.2.0/db_1
//那么默认路径就是:/u01/app/oracle/product/11.2.0/db_1/dbs/
2、直接startup(当你使用进入数据库,要启动时)

[oracle@sh02 dbs]$ echo $ORACLE_HOME
  /u01/app/oracle/product/11.2.0/db_1
  [oracle@sh02 dbs]$ sqlplus / as sysdba

SQL*Plus: Release 11.2.0.4.0 Production on Tue Mar 15 17:01:33 2022

Copyright (c) 1982, 2013, Oracle. All rights reserved.

Connected to:
  Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
  With the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP,
  Data Mining and Real Application Testing options

SQL>startup //后面不加任何参数启动,这个时候回车,下面就是查找顺序

1、直接在默认路径下查找spfileSID.ora --(spfile)
如果没有再查找 spfile.ora
2、直接在默认路径下查找spfile.ora
如果没有再查找initSID.ora
3、直接在默认路径下查找initSID.ora --(pfile)
如果还没有 就会报错……
你也可以直接使用startup pfile="文件路径"的方式启动。

3、指定的pfile启动:
SQL>startup pfile=$ORACLE_HOME/dbs/initSID.ora 4、使用spfile启动,编辑一下pfile文件example.ora
SQL>spfile=$ORACLE_HOME/dbs/spfileSID.ora
再用startup pfile=$ORACLE_HOME/dbs/example.ora启动即可。

5、先用命令创建一个spfile
  sql> create spfile from pfile='/u01/app/oracle/product/11.2.0/db_1/dbs/initfp.ora';  
  File created.
  sql> startup

这里说下Oracle启动时的三个阶段

1、nomount(数据库未装载)

SQL> startup nomount;
ORACLE instance started.
Total System Global Area 167387136 bytes
Fixed Size 1343668 bytes
Variable Size 150998860 bytes
Database Buffers 12582912 bytes
Redo Buffers 2461696 bytes

2、mount(数据库完成装载)

SQL> startup mount;
ORACLE instance started.
Total System Global Area 167387136 bytes
Fixed Size 1343668 bytes
Variable Size 150998860 bytes
Database Buffers 12582912 bytes
Redo Buffers 2461696 bytes
Database mounted.

3、open(数据库打开)

SQL> startup open
ORACLE instance started.
Total System Global Area 167387136 bytes
Fixed Size 1343668 bytes
Variable Size 150998860 bytes
Database Buffers 12582912 bytes
Redo Buffers 2461696 bytes
Database mounted.
Database opened.

Oracle打开数据文件和重做日志文件,才能对外(所有有效用户)提供数据库服务。

第一个阶段就是nomount阶段,这个阶段做了以下几个步骤:

1、在安装默认路径上搜索spfile,如果没有找到的话,就读取pfile。
2、读取文件中的参数来确定初始化参数的值。根据参数值来分配SGA。
3、然后开启Oracle的后台进程。打开alert log和trace file,根据合理的语法,显示地将参数设定值写入到alert log中。
其中第一步参数文件的搜索顺序是:
spfile<sid>.ora==>spfile.ora==>init<sid>.ora 也就是说首先会搜索本地的spfile<sid>.ora文件,如果没有的话,搜索本地的spfile.ora,如果还没有的话,就搜索init<sid>.ora文件。
需要注意的是,如果是Oracle RAC的话,只会搜索本地的参数文件,不会去搜索asm中的参数文件. 在单机的情况下,这个顺序是没有问题的,但是在RAC的情况下,spfile是要放在asm中的,也就是说要读取asm中的spfile。
要实现这一目的,就要在init<sid>.ora文件中配置spfile的路径,事实上在刚刚搭建完Oraclel 11g RAC的时候,init<sid>.ora的内容如下所示,
并且在$ORACLE_HOME/dbs下也没有spfile<sid>.ora和spfile.ora文件。这样就能保证读取的是asm中的参数文件了。

查看spfile.ora位置(spfile.ora每个实例必然要存在)

[oracle@shf02 ~]$ echo $ORACLE_SID
htstandby2
[oracle@shfp02 ~]$ sqlplus / as sysdba SQL*Plus: Release 11.2.0.4.0 Production on Tue Mar 15 14:13:03 2022 Copyright (c) 1982, 2013, Oracle. All rights reserved. Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP,
Data Mining and Real Application Testing options

方法一
SQL> SELECT NAME, VALUE, DISPLAY_VALUE FROM V$PARAMETER WHERE NAME ='spfile'; NAME
--------------------------------------------------------------------------------
VALUE
--------------------------------------------------------------------------------
DISPLAY_VALUE
--------------------------------------------------------------------------------
spfile
+DATA/hty/parameterfile/spfilehty.ora //存放位置是在asm中
+DATA/hty/parameterfile/spfilehty.ora 方法二

SQL> Show parameter spfile

NAME TYPE VALUE
 ------------------------------------ ----------- ------------------------------
 spfile string +DATA/hty/parameterfile/spfilehty.ora   ##spfile+实例名.ora

oracle三个重要参数文件:pfile和spfile和init.ora的更多相关文章

  1. Oracle 初始化参数文件pfile和spfile

    pfile和spfile差额 pfile :Oracle 9i之前.ORACLE使用我们一直PFILE存储的初始化参数,,能够在操作系统级别改动. 当spfile文件改动出现错误导致oracle无法启 ...

  2. Oracle参数文件—pfile与spfile

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

  3. oracle中的初始化参数文件

    oracle初始化参数文件管理 oracle实例是指运行状态下的oracle软件,是由内存结构跟一些进程结构组成的,主要实现数据库的访问跟控制功能,是oracle的核心. 初始化参数文件是oracle ...

  4. oracle中有关初始化参数文件的几个视图对比

    涉及oracle中有关初始化参数文件的几个视图主要有:v$paraemter,v$parameter2,v$system_parameter,v$system_parameter2,v$spparam ...

  5. Oracle基础 07 参数文件 pfile/spfile

    --查看数据库运行模式(spfile还是pfile)select decode(count(*),1,'spfile','pfile') from v$spparameterwhere rownum= ...

  6. oracle参数文件spfile和pfile

    一.参数文件说明 PFILE(Initialiazation Parameter Files)初始化参数文件,是文本文件,可直使用文本编辑器查看.如果数据库使用的是初始化参数文件PFILE,要想永久修 ...

  7. Oracle的参数文件

    参数文件的作用: 它们是在数据库实例启动时候加载的,决定了数据库的物理结构.内存.数据库的限制及系统大量的默认值.数据库的各种物理属性.指定数据库控制文件名和路径等信息,是进行数据库设计和性能调优的重 ...

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

    一.初始化参数文件 启动实例时会读取初始化参数文件.参数文件有两种类型: 1.服务器参数文件:这是首选类型的初始化参数文件.这是一个由数据库服务器写入或读取的二进制文件,不得手动进行编辑.此文件驻留在 ...

  9. oracle参数文件与启动过程

    oracle随系统启动而启动 cs65-64桌面版orcle-11.2.0.4 启动监听器,后台进程,OEM. 注意: 如果只做一和三,只能启动后台进程,监听器不启动,如果只做二和三,只能启动监听器, ...

随机推荐

  1. 分布式 PostgreSQL 集群(Citus)官方示例 - 时间序列数据

    在时间序列工作负载中,应用程序(例如一些实时应用程序查询最近的信息,同时归档旧信息. https://docs.citusdata.com/en/v10.2/sharding/data_modelin ...

  2. [转载]nc命令详解

    最近在搞反向连接,试来试去发现最好的工具还是nc.正好趁这个机会把nc的用法总结一下: 1.端口扫描: nc -vv ip port 例:nc -vv 192.168.1.1 5000 扫描192.1 ...

  3. 论文写作中快速更新Word里面交叉引用的编号,巧用MathType

    点击插入编号>>更新,即可快速更新交叉引用的编号,不用一个一个更新域!

  4. 《Win10——如何进入高级启动选项?》

    Win10--如何进入高级启动选项?       第一种方法: 管理员命令提示符输入如下代码,自动重启并进入高级启动选项. shutdown /r /o /f /t 00     第二种方法: 1. ...

  5. Nginx(一) 反向代理为何叫反向代理?

    与正向代理比起来,反向代理是什么东西反向了? 正向代理 A同学在大众创业.万众创新的大时代背景下开启他的创业之路,目前他遇到的最大的一个问题就是启动资金,于是他决定去找马云爸爸借钱,可想而知,最后碰一 ...

  6. 一个 Spring Bean 定义 包含什么?

    一个Spring Bean 的定义包含容器必知的所有配置元数据,包括如何创建一个bean,它的生命周期详情及它的依赖.

  7. 为什么 Thread 类的 sleep()和 yield ()方法是静态的?

    Thread 类的 sleep()和 yield()方法将在当前正在执行的线程上运行.所以在其他处于等待状态的线程上调用这些方法是没有意义的.这就是为什么这些方法是静态的.它们可以在当前正在执行的线程 ...

  8. mysqlbench无法启动

    mysqlbean双击没有反应,应用无法启动,缺少3要素 都缺什么呢?看这个MySQL官方链接:https://dev.mysql.com/doc/workbench/en/wb-installing ...

  9. window10使用putty传输文件到Linux服务器

    由于Linux和Linux可以使用scp进行传输文件,而window系统无法向Linux传输文件,当然,有xshell等等类似的工具可以进行操作:putty工具就可以实现,毕竟zip压缩包也不大,启动 ...

  10. HTML 5中不同的新表单元素类型是什么?

    HTML 5推出了10个重要的新的表单元素: Color. Date Datetime-local Email Time Url Range Telephone Number Search