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/<ORACLE_BASE>]
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 時都是創建默認路徑



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章