摘要:Oracle数据库的参数文件Pfile和Spfile的区别。Oracle中的参数文件是一个包含一系列参数以及参数对应值的操作系统文件。在数据库实例启动时候加载,决定了数据库的物理结构、内存、数据库的限制及系统大量的默认值、数据库的各种物理属性、指定数据库控制文件名和路径等信息,是进行数据库设计和性能调优的重要文件。可以分为两种类型:pfile:初始化参数文件(Initialization Parameters Files),在Oracle 9i之前,ORACLE一直采用pfile方式存储初始化参数,pfile 默认的名称为“init+例程名.ora”文件路径:
/oracle/app/product/19C/db_home/dbs,这是一个文本文件,可以用任何文本编辑工具打开。而spfile:服务器参数文件(Server Parameter Files),从Oracle 9i开始,Oracle引入了Spfile文件,spfile 默认的名称为“spfile+例程名.ora”文件路径:/oracle/app/product/19C/db_home/dbs 以二进制文本形式存在,不能用vi编辑器对其中参数进行修改,只能通过SQL命令在线修改。

1、问题现状描述

(1)、查看Oracle服务状态,错误信息如下

 

(2)、问题溯源

数据库无法访问,分析其中的原因。昨天更改过数据库服务器的IP地址,这样数据库就无法启动了。因为在启动文件里
/oracle/app/product/19C/db_home/dbs/spfileorcl.ora的内容如下。尝试修改了监听的地址,使用127.0.0.1或localhost,结果还是不行。没办法,只能修改文件了。注意:SPFILEORCL.ORA是不能修改的。上述错误就是由此造成的。而INITORCL.ORA文件与此内容相似,可以编辑。

(3)、分析问题

查看dbs目录下的文件,可以找到initorcl.ora文件,这个是pfile的配置文件。如下图:

 

查看INITORCAL.ORA文件。内容如下:

 

备注:这个文件的内容跟SPFILEORCL.ORA基本一致。

2、解决问题的办法

(1)、切换到ORACLE账号,执行指令SQL> shutdown immediate;关闭数据库服务。如下图

 

(2)、使用指定pfile配置文件启动数据库服务,执行指令SQL> startup pfile="/oracle/app/product/19C/db_home/dbs/INITORCL.ORA";如下图

 

(3)、通过pfile文件创建spfile配置文件,执行指令SQL> create spfile from pfile='/oracle/app/product/19C/db_home/dbs/initorcl.ora';如下图

 

(4)、重启数据库服务。如下图

 

(5)、查看spfile配置文件。如下图

 

3、数据库客户端连接测试