Oracle pfile和spfile启动

 PFILE是文本文件的,而SPFILE是二进制格式的。PFILE文件可以用文本编辑器打开手工配置、而SPFILE不行,只能通过SQL命令在线修改。从操作系统上可以看到这两者的区别,初始化参数文件为ASCII文本文件,SPFILE为数据文件。

  

在此期间只能pfile启动:

SYS@orcl>startup pfile='/opt/oracle/admin/orcl/pfile/init.ora.421201433344';
ORACLE instance started.
Total System Global Area  413372416 bytes
Fixed Size                  2253784 bytes
Variable Size             327158824 bytes
Database Buffers           79691776 bytes
Redo Buffers                4268032 bytes
Database mounted.
Database opened.

在创建spfile:

create spfile from pfile;

在关闭数据库:

SYS@orcl>shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.

再启动数据库:

SYS@orcl>startup
ORA-48108: invalid value given for the diagnostic_dest init.ora parameter
ORA-48140: the specified ADR Base directory does not exist [/opt/oracle/product/OraHome/dbs/]
ORA-48187: specified directory does not exist
Linux-x86_64 Error: 2: No such file or directory
Additional information: 1

用pfile就可以启动为啥创建了spfile还是不能用呢?

后来发现问题了:

启动的pfile并不是默认路径的pfile,而oracle默认路径的pfile在$ORACLE_HOME/dbs下。
于是,当你create spfile from pfile的时候,spfile其实是根据默认路径下的pfile建立出来的。
而很有可能,你默认路径下的pfile参数设置时有问题的,所以我用下面这个方法创建spfile:

SYS@orcl>create spfile from pfile='/opt/oracle/admin/orcl/pfile/init.ora.421201433344';


File created.

再次启动数据库就可以了:

SYS@orcl>startup
ORACLE instance started.
Total System Global Area  413372416 bytes
Fixed Size                  2253784 bytes
Variable Size             327158824 bytes
Database Buffers           79691776 bytes
Redo Buffers                4268032 bytes
Database mounted.
Database opened.

所以在使用create pfile / spfile  from spfile / spfile 时都是创建默认路径



你可能感兴趣的:(oracle,basis)