Pfile (文本參數文件)
- 默認名:
init.ora (如 initTEMPDB.ora)
- 可用記事本/vi 直接編輯
- 位置:
$ORACLE_HOME/database/ (Windows) 或 $ORACLE_BASE/admin//pfile/
- 啟動時讀取,修改需重啟實例生效 (動態參數除外)
SPfile (服務器參數文件,二進制)
- 默認名:
spfile.ora
- 不可直接文本編輯,只能通過:
① EM 修改後轉換
② ALTER SYSTEM SET ... SCOPE=SPFILE
- 位置:
$ORACLE_HOME/database/
- 實例啟動優先讀取 SPfile,缺失才讀 Pfile
- 支持動態參數線上生效 (
SCOPE=MEMORY/ BOTH)
核心參數詳解 (節選 initTEMPDB.ora)
| 參數 | 值 | 含義 |
| compatible | 9.0.0 | 數據庫兼容版本,升級前必調 |
| db_name | TEMPDB | 數據庫名稱 |
| db_domain | MYNET | 域名,構成全局名 TEMPDB.MYNET |
| control_files | 3 路徑 | 控制文件多路徑冗余 |
| undo_management | AUTO | 自動撤消管理 (9i 新特性) |
| undo_tablespace | UNDOTBS | 撤消表空間名 |
| db_block_size | 4096 | 數據塊大小 4K,創建後不可變 |
| db_cache_size | 86749184 | 數據緩存 82.7 MB |
| shared_pool_size | 63868928 | 共享池 60.9 MB |
| java_pool_size | 52428800 | Java 池 50 MB |
| large_pool_size | 10485760 | 大池 10 MB (共享服務器/RMAN) |
| processes | 150 | 最大進程數,影響會話上限 |
| open_cursors | 300 | 單會話最大游標數 |
| log_archive_dest_1 | LOCATION=... | 歸檔目標目錄 |
| log_archive_start | true | 啟用自動歸檔 |
| sort_area_size | 524288 | 排序區 512 KB |
| timed_statistics | TRUE | 收集 OS 計時統計,利於調優 |
| fast_start_mttr_target | 300 | 目標恢復時間 300 秒 |
Pfile vs SPfile 對比表
| 維度 | Pfile | SPfile |
| 格式 | 文本 | 二進制 |
| 編輯方式 | 文本編輯器 / EM 導出 | EM / ALTER SYSTEM |
| 默認文件名 | init.ora | spfile.ora |
| 默認路徑 | $OH/database/ 或 $OB/admin/SID/pfile/ | $OH/database/ |
| 啟動優先級 | 低 | 高 (優先讀取) |
| 動態修改持久化 | 不支持 | 支持 (SCOPE=SPFILE/BOTH) |
互轉命令
-- Pfile → SPfile
CREATE SPFILE FROM PFILE;
-- SPfile → Pfile
CREATE PFILE FROM SPFILE;
最佳實踐
- 生產環境強制使用 SPfile,享受動態參數持久化。
- 參數變更流程:EM 修改 → 生成腳本 → 變更窗口執行 → 驗證
V$PARAMETER。
- 保留 Pfile 備份 (
CREATE PFILE FROM SPFILE) 供緊急手工啟動。
- 關鍵靜態參數 (
DB_BLOCK_SIZE/COMPATIBLE/DB_NAME) 嚴禁動態修改。