博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Oracle的pfile和spfile的一点理解和笔记
阅读量:2134 次
发布时间:2019-04-30

本文共 2517 字,大约阅读时间需要 8 分钟。

具体是遇到什么问题的不太记得了。

当时查了些资料,做了些笔记,今天刚好翻回去的时候看到,写到这边分享下,下次遇到类似问题也能参考下。

参考过的博客也贴一下:

一、关于pfile

1、pfile是啥呢,pfile的全名就是parameter file,参数文件。

2、pfile是一个可编辑的文本文件,主要内容就是数据库的配置参数,包括内存配置、数据库名、sessions、processes等。

3、Oracle Database 9i之前,Oracle数据库就是通过pfile的配置来启动和初始化数据库的。

4、pfile默认路径(windows):{oracle_home}/database/initSID.ora

5、另外,windows系统的话,在安装目录下的app/admin/{sid}/pfile/init.ora.12345678,这个位置一般会有一个pfile文件。

二、关于spfile

1、spfile是Oracle Database 9i才开始出现的。

2、spfile是一个二进制文件,不可直接编辑。

3、spfile的默认路径(windows):{oracle_home}/database/spfileSID.ora

4、spfile之后,数据库默认就是读取spfile的配置启动和初始化参数 ,加载参数到内存中。

5、扩展:我们有时候修改数据库配置参数时,语法一般是:alter system set xxx=abc scope={spfile|memory|both}。如果是spfile的话,就是说参数修改到spfile,那么下次启动数据库就会以修改后的参数初始化实例;如果是memory的话,就是说仅次改内存中的参数,立即生效,但重启数据库就会失效;如果是both,即同时修改两处。

三、关于读取配置文件启动数据库

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

2、关于启动的加载配置文件顺序(例如启动orcl数据库):

(1)读取默认spfile:{oracle_home}/database/spfileORCL.ora

(2)默认spfile读取不到,会读取同目录下的spfile.ora文件(有坑)

(3)如果上面2个都读不到,读同目录下pfile:{oracle_home}/database/initORCL.ora

(4)如果上面仨都没有,就报错。

3、如果默认读的spfile和pfile都读不到,可以通过指定pfile的方法启动,如指定D:\app\admin\orcl\pfile\init.ora.10152018183435来启动orcl数据库,命令为startup pfile=pfile文件路径,演示如下:

C:\Users\lihy>set oracle_sid=orclC:\Users\lihy>sqlplus / as sysdbaSQL*Plus: Release 11.2.0.1.0 Production on 星期一 7月 1 00:36:29 2019Copyright (c) 1982, 2010, Oracle.  All rights reserved.已连接到空闲例程。SQL> startup pfile=D:\app\admin\orcl\pfile\init.ora.10152018183435ORACLE 例程已经启动。Total System Global Area 1068937216 bytesFixed Size                  2182592 bytesVariable Size             616563264 bytesDatabase Buffers          444596224 bytesRedo Buffers                5595136 bytes数据库装载完毕。数据库已经打开。

4、如果找不到能直接用的pfile,可以通过别的数据库,生成一个pfile(生成pfile的方法后面介绍),然后拿过来修改一下db_name、control_files等几个跟数据库名有关的信息信息,用来启动数据库。

5、怎么查看数据库是通过spfile启动的还是pfile:在SQL命令窗口,输入show parameter spfile,如果结果显示spfile的文件路径,即为通过spfile启动的,如果没有,就是pfile。如下:

四、pfile和spfile间的相互倒腾

1、只要数据库能启动起来,那么就能生成pfile或者spfile

2、通过spfile的配置生成pfile:

(1)默认路径和文件:SQL> create pfile from spfile;

(2)指定路径和文件:SQL> create pfile=文件全路径 from spfile 文件全路径;

3、通过pfile的配置生成spfile:

(1)默认路径和文件:SQL> create spfile from pfile;

(2)指定路径和文件:SQL> create spfile=文件全路径 from pfile 文件全路径;

4、根据已启动的数据库(配置信息已经加载到内存)直接生成pfile和spfile:

(1)生成pfile:SQL> create pfile from memory;

(2)生成spfile:SQL> create spfile from memory;

5、生成spfile的时候,如果你是读取默认spfile启动的,执行create spfile from memory的时候就会报错“无法创建已由实例使用的 SPFILE”,因为数据库就是读这个文件启动的,所有不能再建一个同样名字的spfile。可以用create spfile=路径 from memory 的方式建一个不同名字的spfile。

 

好了,就到这里吧。7月来了,希望,小仙女一切顺利!

转载地址:http://nmkgf.baihongyu.com/

你可能感兴趣的文章
【LEETCODE】278-First Bad Version
查看>>
【LEETCODE】303-Range Sum Query - Immutable
查看>>
【LEETCODE】21-Merge Two Sorted Lists
查看>>
【LEETCODE】231-Power of Two
查看>>
【LEETCODE】172-Factorial Trailing Zeroes
查看>>
【LEETCODE】112-Path Sum
查看>>
【LEETCODE】9-Palindrome Number
查看>>
【极客学院】-python学习笔记-Python快速入门(面向对象-引入外部文件-Web2Py创建网站)
查看>>
【LEETCODE】190-Reverse Bits
查看>>
【LEETCODE】67-Add Binary
查看>>
【LEETCODE】7-Reverse Integer
查看>>
【LEETCODE】165-Compare Version Numbers
查看>>
【LEETCODE】299-Bulls and Cows
查看>>
【LEETCODE】223-Rectangle Area
查看>>
【LEETCODE】12-Integer to Roman
查看>>
【学习方法】如何分析源代码
查看>>
【LEETCODE】61- Rotate List [Python]
查看>>
【LEETCODE】143- Reorder List [Python]
查看>>
【LEETCODE】82- Remove Duplicates from Sorted List II [Python]
查看>>
【LEETCODE】86- Partition List [Python]
查看>>