spfile,pfile和init.ora的区别

本文详细介绍了Oracle数据库中SPFILE和PFILE的区别、作用及实例启动顺序,包括如何查找并使用不同的参数文件来启动数据库实例。
spfile是二进制
pfile是文档文件
两文件作用相同,如果同时存在,先读spfile。
init.ora只是pfile的一个例子 
create spfile from pfile;


实例启动时,查找初始化参数文件的顺序为:
spfileSID.ora
spfile.ora
init.ora
如果以上3个文件都不存在,则实例无法启动。


init.ora只是一个模版文件,可以用来编辑init.ora文件
pfile = init.ora文件,意为parameter file
spfile意为server parameter file
pfile为文本文件,可以用文本编辑器编辑,需要手工维护。
spfile为二进制文件,不能直接编辑,由实例维护。


从9i开始,推荐使用spfile。
用startup(默认)启动的顺序
1、直接在默认路径(ORACLE_HOME/dbs/)下查找spfileSID.ora --(spfile)
如果没有再查找2
2、直接在默认路径下查找spfile.ora      
如果没有再查找3
3、直接在默认路径下查找initSID.ora --(pfile) 
如果还没有 就会报错……
用startup pfile= 的方式启动。
1、指定的pfile:
startup pfile=$ORACLE_HOME/dbs/initSID.ora
2、使用spfile启动,需要变通一下如:vi一个pfile文件aaa.ora,包含以下内容:
spfile=$ORACLE_HOME/dbs/spfileSID.ora
 
再用startup pfile=$ORACLE_HOME/dbs/aaa.ora启动即可。
11g可以直接 create pfile='/dir/file_name.ora' from memory;
在数据打开的情况下,我们可以在sqlplus中通过show parameter control来查看当前所使用的控制文件的情况。
### Oracle 数据库 init.ora spfile 文件的默认路径Oracle 数据库中,`init.ora` 是文本格式的初始化参数文件,而 `spfile`(服务器参数文件)是二进制格式的初始化参数文件。Oracle 实例在启动时会优先尝试读取 `spfile`,如果读取失败,则会尝试读取 `init.ora` 文件。如果两者都不存在,则实例启动失败[^2]。 #### Linux/Unix 系统下的默认路径 在 Linux 或 Unix 系统中,`init.ora` `spfile` 文件通常位于 `$ORACLE_HOME/dbs` 目录下,其命名规则如下: - `init${ORACLE_SID}.ora`:文本格式的初始化参数文件。 - `spfile${ORACLE_SID}.ora`:二进制格式的服务器参数文件[^2]。 例如,若 `ORACLE_SID` 为 `orcl`,则默认路径如下: ```bash $ORACLE_HOME/dbs/initorcl.ora $ORACLE_HOME/dbs/spfileorcl.ora ``` #### Windows 系统下的默认路径 在 Windows 系统中,`init.ora` 文件通常位于 `$ORACLE_HOME`\database 目录下,而 `spfile` 文件也位于同一目录。命名规则与 Linux 系统一致: - `init${ORACLE_SID}.ora` - `spfile${ORACLE_SID}.ora` 例如,若 `ORACLE_HOME` 为 `C:\app\orcl\product\12.1.0\dbhome_1`,且 `ORACLE_SID` 为 `orcl`,则默认路径为: ```bash C:\app\orcl\product\12.1.0\dbhome_1\database\initorcl.ora C:\app\orcl\product\12.1.0\dbhome_1\database\spfileorcl.ora ``` 此外,在 Windows 系统中,Oracle 数据库还可能在 `$ORACLE_BASE`\admin\${ORACLE_SID}\pfile 目录下生成参数文件的副本。例如: ```bash C:\app\orcl\admin\orcl\pfile\init.ora.7202014143426 ``` 此路径下的文件可用于在启动失败时通过 `STARTUP PFILE='文件路径'` 的方式手动启动实例[^3]。 #### 如何查找当前使用的参数文件 可以通过以下 SQL 查询当前实例是否使用 `spfile` 启动: ```sql SHOW PARAMETER spfile; ``` 如果返回值非空,则表示当前使用的是 `spfile`。否则,可能使用的是 `pfile` 或未指定参数文件。 若需查看当前数据库使用的初始化参数文件内容,可以执行以下命令生成 `pfile` 的副本: ```sql CREATE PFILE='/tmp/init.ora' FROM SPFILE; ``` 该命令将当前 `spfile` 的内容导出为文本格式的 `pfile` 文件,便于查看编辑[^1]。 --- ###
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值