首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> Oracle 資料庫 >> Oracle 資料庫基礎

Oracle PFILE 與 SPFILE 互轉實戰:修復損壞 SPFILE 的標準流程

     編輯:Oracle 資料庫基礎

背景:為何需要互轉?

SPFILE(二進制)不支持直接文本編輯,誤修改會導致資料庫無法啟動。標準修復路徑:找 PFILE → 用 PFILE 啟動 → 由 PFILE 重建 SPFILE → 替換舊文件 → 正常啟動。

修復步驟詳解

1. 定位可用的 PFILE

路徑通常為 $ORACLE_BASE/admin//pfile/init.ora.。去掉時間戳重命名為 init.ora。

2. 以 PFILE 啟動實例

SQL> CONN / AS SYSDBA
SQL> STARTUP PFILE='$ORACLE_BASE/admin//pfile/init.ora';

3. 由 PFILE 創建新 SPFILE

SQL> CREATE SPFILE='$ORACLE_HOME/dbs/spfile.ora'
     FROM PFILE='$ORACLE_BASE/admin//pfile/init.ora';
File created.

4. 替換與啟動

  • 將新生成的 spfile.ora 複製至 $ORACLE_HOME/dbs/(覆蓋舊文件)。
  • 若存在舊 init.ora,建議重命名備份。
  • SQL> STARTUP;(此時將自動讀取新 SPFILE)。

完整實戰日志(Windows 環境)

C:\> sqlplus /nolog
SQL> CONN / AS SYSDBA
Connected to an idle instance.

SQL> STARTUP PFILE='E:\Oracle_xe\app\Oracle\product\10.2.0\server\config\scripts\init.ora';
ORACLE instance started.
Total System Global Area  285212672 bytes
...
Database opened.

SQL> CREATE SPFILE='E:\Oracle_xe\app\Oracle\product\10.2.0\server\dbs\SPFILEXE1.ORA'
     FROM PFILE='E:\Oracle_xe\app\Oracle\product\10.2.0\server\config\scripts\init.ora';
File created.

SQL> STARTUP;
ORACLE instance started.
...
Database opened.

關鍵知識點總結

文件類型特點修改方式
PFILE (init.ora)文本文件,可直接編輯文本編輯器,重啟生效
SPFILE (spfileSID.ora)二進制,不可直接編輯ALTER SYSTEM SET ... SCOPE=SPFILE 或重建
  • CREATE PFILE FROM SPFILE:逆向導出文本參數文件,便於備份/遷移/對比。
  • SHOW PARAMETER:查看當前實例生效值(內存值),而非文件值。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved