SPFILE と PFILE の起動時優先順位難易度 高無料
デフォルトの場所に spfile${ORACLE_SID}.ora と init${ORACLE_SID}.ora の両方が存在する状態で、パラメータ指定なしの STARTUP を実行した場合にOracleが読み込むファイルとして正しいものを選べ。
- Aspfile${ORACLE_SID}.ora(SPFILE)が優先して読み込まれ、init${ORACLE_SID}.oraは読まれない
- Binit${ORACLE_SID}.ora(PFILE)が優先して読み込まれ、spfile${ORACLE_SID}.oraは読まれない
- C両方のファイルの内容がマージされ、重複するパラメータはPFILE側の値が採用される
- Dどちらのファイルも読み込まれず、全パラメータがOracleのデフォルト値で起動する
正解・解説・誤答理由・ひっかけを見る▼ open
✓ 正解:AAI作成・独立検証済
解説
STARTUP でファイルを明示指定しない場合、Oracleはデフォルトの場所($ORACLE_HOME/dbs など)で
次の優先順位でファイルを探索する。
- ①
spfile${ORACLE_SID}.ora(サーバーパラメータファイル・バイナリ形式) - ②
spfile.ora - ③
init${ORACLE_SID}.ora(テキスト形式PFILE)
両方存在する場合は①のSPFILEが優先され、PFILEは読まれない。
SPFILEは ALTER SYSTEM で動的に変更・永続化できる点がPFILE(テキストエディタで手動編集するのみ)との大きな違いであり、
この優先順位ゆえに現在のOracle運用ではSPFILEの使用がデフォルト・推奨とされる。
- B優先順位が逆。デフォルト探索ではSPFILEが最優先で、SPFILEが存在すればPFILEは読まれない。
- C2つのファイルがマージされることはない。どちらか一方(優先順位に従いSPFILE)だけが読み込まれる。
- Dデフォルトの場所に有効なSPFILEまたはPFILEが存在すれば必ずどちらか一方が読み込まれる。両方無視されることはない。
ひっかけ: 「テキスト形式のPFILEの方が古くから存在する=優先される」と考えがちだが、優先順位は逆でSPFILEが最優先。PFILEが読まれるのはSPFILEが存在しないか、
STARTUP PFILE=... のように明示的にPFILEを指定した場合に限られる。コマンド例と想定される挙動(未実行)
SQL>STARTUP
($ORACLE_HOME/dbs/spfile${ORACLE_SID}.ora が存在すればそれが読み込まれ、init${ORACLE_SID}.oraは無視される)AIが作成し、独立した検証を経た解説です(有資格者による監修は経ていません)