ORACLE Master Silver 無料サンプル

ORACLE Master Silver·1Z0-082Oracle公式ドキュメントの出典リンク付き・AI作成の問題演習

登録なしで解ける良問。「正解・解説を見る」で解説とひっかけが開きます。

※ サンプルは実際の例題です。各問の「正解・解説を見る」を開くと、正解・詳細解説・ひっかけが表示されます。 全 30 問のうち 30 問を無料公開しています。
Q1インスタンスとデータベース難易度 標準無料

Oracle Database における「インスタンス(instance)」と「データベース(database)」の関係の説明として、最も適切なものを選べ。(単一選択)

  1. Aインスタンスは SGA とバックグラウンドプロセス群からなる一時的な実体で、STARTUP/SHUTDOWN のたびに生成・消滅する。データベースはデータファイル・制御ファイル・REDOログファイル等の永続的な物理ファイル群であり、両者は別概念である
  2. Bデータベースはメモリ上にのみ存在し、インスタンスを SHUTDOWN すると全データが失われる
  3. Cインスタンスとデータベースは同じものを指す別名であり、Oracle のマニュアルでも区別なく使われる
  4. D1つのインスタンスが複数のデータベースをオープンすることはあっても、1つのデータベースを複数のインスタンスが共有することは Oracle では一切できない
正解・解説・誤答理由・ひっかけを見る▼ open
✓ 正解:AAI作成・独立検証済

解説

Oracle の基本アーキテクチャでは、インスタンスデータベースは明確に別の概念である。

  • インスタンスメモリ構造(SGA)バックグラウンドプロセス群の組み合わせ。STARTUP のたびに新しく確保・起動され、SHUTDOWN で消える一時的な実体である。
  • データベース=ディスク上に永続する物理ファイル群(データファイル・制御ファイル・REDOログファイル等)の集合。インスタンスを介さなくても、ファイルとして存在し続ける。

非 RAC(単一インスタンス)構成では、通常1つのインスタンスが1つのデータベースをマウント・オープンする 1:1 の関係になる。 一方 Oracle RAC(Real Application Clusters)構成では、複数のインスタンスが1つの共有データベースに同時アクセスする 1:N の関係が成立する。

この「インスタンス=メモリ+プロセス(揮発性)」「データベース=ディスク上のファイル(永続)」という区別は、Oracle アーキテクチャ全体の理解の出発点となる。

各誤答が違う理由
  • Bデータベースはディスク上の永続ファイル。SHUTDOWN で消えるのはインスタンス(メモリ+プロセス)であり、データベース(ファイル)はそのまま残る。両者を取り違えている。
  • C同義語ではない。インスタンス=メモリ+プロセス(揮発性)、データベース=ディスク上のファイル(永続)という明確な区別がある。
  • D逆の関係も成立する。Oracle RAC 構成では複数のインスタンスが1つの共有データベースに同時アクセスできる。「一切できない」は誤り。
ひっかけ: 「インスタンスとデータベースは同じもの(同義語)」という誤解(C)が最頻出。 また「1インスタンス:1データベースが常に絶対」という思い込み(D)も罠。RAC では複数インスタンスが1データベースを共有できる。
AIが作成し、独立した検証を経た解説です(有資格者による監修は経ていません)
Q2SGA(システムグローバル領域)難易度 標準無料

SGA(System Global Area)を構成するコンポーネントとして正しいものすべて選べ。(複数選択)

  1. Aデータベースバッファキャッシュ
  2. BREDOログバッファ
  3. C共有プール(Shared Pool)
  4. DPGA(各サーバープロセス専有のソート領域・カーソル状態)
正解・解説・誤答理由・ひっかけを見る▼ open
✓ 正解:AAI作成・独立検証済

解説

SGA(System Global Area)は、インスタンスの起動時に確保される共有メモリ領域で、 そのインスタンスに接続するすべてのサーバープロセス・バックグラウンドプロセスから共有される。主な構成要素は次のとおり。

  • データベースバッファキャッシュ:ディスクから読み込んだデータブロックをメモリ上にキャッシュする領域。
  • REDOログバッファ:コミット前後の変更内容(REDOエントリ)を一時的に保持するリングバッファ。LGWR がここから REDOログファイルへ書き出す。
  • 共有プール(Shared Pool):解析済み SQL・PL/SQL のライブラリキャッシュや、データディクショナリキャッシュを保持する。
  • ラージプール/Java プール/ストリームプール(設定時):RMAN バックアップ、共有サーバー、Java 実行、並列問合せ等で使う補助領域。

一方、PGA(Program Global Area)サーバープロセスごとに個別に割り当てられる非共有メモリであり、 ソート領域・カーソル状態・セッション変数等を保持する。SGA には含まれない点が本問の核心。

各誤答が違う理由
  • DPGA はサーバープロセスごとに個別確保される非共有メモリであり、SGA の一部ではない。SGA(共有)と PGA(専有)は対をなす別カテゴリ。
ひっかけ: 「メモリに関するものは全部 SGA」という粗い理解で、PGA(プロセス専有領域)まで SGA に含めてしまう誤り(D)が典型的な罠。 SGA=共有、PGA=専有という対比を押さえる。
公式ドキュメント・関連Database Concepts ― System Global Area
AIが作成し、独立した検証を経た解説です(有資格者による監修は経ていません)
Q3共有プール(ライブラリキャッシュ/データディクショナリキャッシュ)難易度 標準無料

あるセッションが SELECT * FROM hr.employees WHERE employee_id = 100; を初めて実行した際、Oracle は SQL 文を解析し、実行計画を生成した。同一の SQL 文(大文字小文字・空白まで完全一致)を別セッションが直後に実行したところ、解析コストが大幅に削減された(ソフトパース)。この挙動を支える共有プールの構成要素として最も適切なものを選べ。(単一選択)

  1. Aライブラリキャッシュ。解析済み SQL 文とその実行計画をキャッシュしており、完全一致の SQL 文が再実行されると解析・実行計画生成を省略できる(ソフトパース)
  2. Bデータベースバッファキャッシュ。SQL 文の解析結果ではなく、テーブルのデータブロックをキャッシュすることで再解析を省略する
  3. CREDOログバッファ。実行済み SQL の変更内容を保持しているため、同じ SQL の再解析が不要になる
  4. Dラージプール。RMAN バックアップや共有サーバーのセッションメモリ用の領域であり、通常の SQL 解析結果はここにキャッシュされない
正解・解説・誤答理由・ひっかけを見る▼ open
✓ 正解:AAI作成・独立検証済

解説

共有プール(Shared Pool)は主に2つのキャッシュから構成される。

  • ライブラリキャッシュ(Library Cache):解析済みの SQL 文・PL/SQL プログラム単位(プロシージャ・パッケージ等)とその実行計画をキャッシュする。同一テキストの SQL 文が再実行されると、ハッシュ値で一致を検出し、構文解析・実行計画生成を省略(ソフトパース)できる。
  • データディクショナリキャッシュ(行キャッシュ):表・列・索引・権限などのメタデータ(データディクショナリの行)をキャッシュし、解析時にディクショナリ表への物理アクセスを減らす。

本問のように「完全一致の SQL 文の再実行でパースコストが下がる」現象は、ライブラリキャッシュに解析済みカーソル(共有カーソル)がヒットしたことによる。 なお SQL 文のテキストが1文字でも異なる(バインド変数化されていないリテラルの違い等)とハードパースになりやすい点も併せて押さえる。

各誤答が違う理由
  • Bバッファキャッシュがキャッシュするのはデータブロックであり、SQL の解析結果ではない。パース省略に直接寄与するのはライブラリキャッシュ。
  • CREDOログバッファは変更(REDO)を保持する領域であり、SQL 解析結果のキャッシュとは無関係。パース省略には関与しない。
  • Dラージプールは RMAN・共有サーバー・並列問合せなど大きなメモリ割り当てが必要な用途向けの補助領域であり、通常の SQL 解析キャッシュの主体ではない。
ひっかけ: 「バッファキャッシュ(データブロックのキャッシュ)」との混同(B)。バッファキャッシュはデータブロック、ライブラリキャッシュはSQL/PL-SQLの解析結果という対象の違いを区別する。
公式ドキュメント・関連Database Concepts ― Shared Pool
AIが作成し、独立した検証を経た解説です(有資格者による監修は経ていません)
Q4データベースバッファキャッシュ難易度 標準無料

セッションが UPDATE hr.employees SET salary = salary * 1.05 WHERE department_id = 90; を実行して COMMIT; した直後の、データベースバッファキャッシュ内の該当ブロックの状態として最も適切なものを選べ。(単一選択)

  1. A該当ブロックはバッファキャッシュ内でダーティブロックとしてマークされたままである可能性が高く、COMMIT 自体はデータファイルへの即時書き戻しを保証しない。ディスクへの反映は DBWn が別途行う
  2. BCOMMIT の完了と同時に、Oracle はそのブロックを必ずディスクのデータファイルへ書き戻してから制御を戻す
  3. COracle には「ダーティブロック」という概念は存在せず、変更されたブロックも未変更ブロックと区別なくバッファキャッシュに保持される
  4. Dダーティブロックは COMMIT と同時にバッファキャッシュから即座に削除(エイジアウト)され、以後は必ずディスクから再読込される
正解・解説・誤答理由・ひっかけを見る▼ open
✓ 正解:AAI作成・独立検証済

解説

データベースバッファキャッシュは、ディスクから読み込んだデータブロックのコピーを保持する SGA の領域である。 ブロックには ピンされている/使用されていない(unused) といった状態のほか、変更を受けたブロックはダーティ(dirty)としてマークされる。

UPDATE によってメモリ上のブロックが変更されると、そのブロックはダーティブロックになる。 変更内容はまず REDOログバッファに記録され、COMMIT 時に LGWR が REDOログファイルへ書き込むが、 データブロック自体(バッファキャッシュ内のダーティブロック)をディスクのデータファイルへ書き戻すのは DBWn の仕事であり、COMMIT のタイミングとは非同期である。

つまり、COMMIT 直後でも、そのダーティブロックはまだバッファキャッシュに残ったまま(ディスクへの書き戻し未完了)であることが多い。 これが Oracle の「高速コミット(fast commit)」の仕組み=コミット時に保証されるのは REDOログの永続化であって、データファイルへの即時反映ではないという重要な性質である。

各誤答が違う理由
  • BCOMMIT が同期的に保証するのは REDOログの書き込みであり、データブロックのディスク書き戻しではない。書き戻しは DBWn が非同期に行う。
  • C変更を受けたブロックは明確にダーティブロックとして区別・管理される(DBWn の書き出し対象を判別するために必要な区分)。
  • DCOMMIT でブロックが即座にキャッシュから削除されるわけではない。LRU アルゴリズムに基づき、必要になるまでキャッシュに残り続けることが多い。
ひっかけ: 「COMMIT = ディスクのデータファイルに即座に反映される」という誤解(B・C)が最頻出。COMMIT が保証するのは REDOログの書き込みであり、 データブロックのディスク反映(DBWn によるチェックポイント/LRU 契機の書き出し)は別のタイミングで非同期に行われる。
公式ドキュメント・関連Database Concepts ― Database Buffer Cache
AIが作成し、独立した検証を経た解説です(有資格者による監修は経ていません)
Q5REDOログバッファ難易度 高無料

LGWR(ログライタ)が REDOログバッファの内容を REDOログファイルへ書き出すトリガーとして、正しいものをすべて選べ。(複数選択)

  1. Aトランザクションが COMMIT されたとき
  2. BREDOログバッファが 1/3 満杯になったとき、または約1MBのREDOが蓄積されたとき
  3. C3秒ごとのタイムアウト、または DBWn がダーティバッファを書き出す前(Write-Ahead Logging)
  4. D読み取り専用の SELECT 文が実行されたとき
正解・解説・誤答理由・ひっかけを見る▼ open
✓ 正解:AAI作成・独立検証済

解説

REDOログバッファは SGA 内の小さなリングバッファで、変更(REDOエントリ)を一時的に保持する。 このバッファの内容を REDOログファイルへ書き出すのが LGWR(Log Writer)バックグラウンドプロセスであり、次のいずれかの条件で書き出しをトリガーする。

  • COMMIT の発行:トランザクションが COMMIT されると、LGWR は該当セッションの REDO を同期的にディスクへ書き込む(コミットが完了したと応答を返す前に書き込みを保証する=耐久性の担保)。
  • REDOログバッファが 1/3 満杯になったとき:バッファがあふれる前に定期的にフラッシュする。
  • REDOログバッファに約1MBのREDOが蓄積されたとき:容量ベースのしきい値。
  • 3秒ごと(タイムアウト):上記の条件に達していなくても、一定間隔で書き出す。
  • DBWn がダーティバッファをディスクへ書き出す前:Write-Ahead Logging の原則により、対応する REDO が先にディスクへ書かれていることを保証するため、DBWn は書き出し前に LGWR に先行書き込みを要求する。

一方、単純な SELECT(読み取り専用の問合せ)は REDOを生成しないため、LGWR の書き出しトリガーにはならない。

各誤答が違う理由
  • D読み取り専用の SELECT は REDO エントリを生成しないため、LGWR の書き出しをトリガーする条件には該当しない。
ひっかけ: 「SELECT でも何らかの理由で LGWR が動く」という誤解(読み取り専用は REDO を生成しない)。 また「DBWn が先に書き込みを完了させてから LGWR が REDO を書く」という順序の逆転も罠=正しくはWrite-Ahead Logging=REDO が先
AIが作成し、独立した検証を経た解説です(有資格者による監修は経ていません)
Q6PGA(プログラムグローバル領域)難易度 標準無料

PGA(Program Global Area)に関する説明として最も適切なものを選べ。(単一選択)

  1. APGA はサーバープロセス(またはバックグラウンドプロセス)1つごとに確保される非共有メモリで、ソート領域やカーソル状態など、そのプロセス固有の情報を保持する
  2. BPGA はインスタンス起動時に1つだけ確保され、すべてのセッションのサーバープロセスから共有・参照される
  3. CPGA には REDOログバッファと共有プールが含まれ、SGA と同様にインスタンス全体で1つの領域として管理される
  4. DPGA はディスク上の永続ファイルであり、インスタンスを再起動してもその内容は保持される
正解・解説・誤答理由・ひっかけを見る▼ open
✓ 正解:AAI作成・独立検証済

解説

PGA(Program Global Area)は、サーバープロセス(またはバックグラウンドプロセス)1つにつき1つ確保される非共有メモリ領域である。 主に次のようなセッション固有・プロセス固有の情報を保持する。

  • ソート領域(sort area)ORDER BYGROUP BY・ハッシュ結合等で使う作業領域。
  • セッション情報・カーソル状態:オープン中のカーソルの実行状態など。
  • スタック領域:セッションのローカル変数など。

SGA がすべてのプロセスから共有されるのに対し、PGA はそのプロセス自身だけがアクセスできる点が本質的な違いである。 専用サーバー(dedicated server)構成では、クライアント接続ごとに専用サーバープロセスが起動し、それぞれが自分専用の PGA を持つ。

サイズは自動 PGA 管理(PGA_AGGREGATE_TARGET)によってインスタンス全体で動的に調整されるのが一般的である。

各誤答が違う理由
  • B「すべてのプロセスから共有される」のは SGA の性質。PGA はプロセスごとに個別に確保される非共有メモリである。
  • CREDOログバッファと共有プールは SGA の構成要素であり、PGA には含まれない。PGA と SGA の内容を取り違えている。
  • DPGA は他のインスタンスメモリ構造と同様揮発性のメモリであり、ディスク上の永続ファイルではない。プロセス終了とともに解放される。
ひっかけ: 「PGA は全セッションで共有される」という誤解(B)。共有されるのは SGA であり、PGA はプロセスごとに専有される点が対比の核心。
AIが作成し、独立した検証を経た解説です(有資格者による監修は経ていません)
Q7DBWn(データベースライタ)難易度 標準無料

DBWn(Database Writer)プロセスがダーティバッファをディスクへ書き出す契機として、正しいものをすべて選べ。(複数選択)

  1. Aチェックポイントが発生したとき
  2. Bダーティバッファ数が閾値を超え、空きバッファが不足してきたとき
  3. C3秒ごとのタイムアウト、または表領域の OFFLINE化・正常な SHUTDOWN 時
  4. Dトランザクションが COMMIT されるたびに毎回同期的に
正解・解説・誤答理由・ひっかけを見る▼ open
✓ 正解:AAI作成・独立検証済

解説

DBWn(Database Writer, DBW0 等)は、データベースバッファキャッシュ内のダーティブロック(変更済みで未反映のブロック)を データファイルへ書き出すバックグラウンドプロセスである。書き出しは主に次の契機で発生する。

  • チェックポイント(checkpoint)の発生時:CKPT がチェックポイントを起動すると、DBWn は該当するダーティバッファをディスクへ書き出す。
  • ダーティバッファ数が閾値を超えたとき:空きバッファが不足してくると、サーバープロセスが新しいブロックをキャッシュに読み込む前に DBWn へ書き出しを要求する。
  • 3秒ごとのタイムアウト:定期的にも書き出しを行う。
  • 表領域の OFFLINE化・読み取り専用化、正常な SHUTDOWN 等:該当ファイルの整合性を確保するために書き出す。

重要な点として、DBWn の書き出しは COMMIT のタイミングとは同期しないCOMMIT 時に同期的に書き込みが保証されるのは REDOログ(LGWR の仕事)であり、 DBWn によるデータブロックのディスク反映は遅延して(非同期に)行われるのが Oracle の設計の要点である(バッファキャッシュの効果を最大化するため)。

各誤答が違う理由
  • DDBWn の書き出しは COMMIT に同期しない。COMMIT 時に同期的に書き込まれるのは REDOログ(LGWR)であり、データブロックの反映は非同期・遅延書き込みが基本。
ひっかけ: 「COMMIT のたびに DBWn が書き出す」という誤解(D)が最頻出。COMMIT で保証されるのは REDOログの書き込みだけであり、 データブロックの書き出しは DBWn がチェックポイント等の契機で非同期に行う。
AIが作成し、独立した検証を経た解説です(有資格者による監修は経ていません)
Q8LGWR(ログライタ)難易度 高無料

DBWn が、あるダーティバッファ(変更済みブロック)をディスクのデータファイルへ書き出そうとしている。このとき Oracle が必ず守る「書き込み順序」の原則として最も適切なものを選べ。(単一選択)

  1. Aあるデータブロックの変更に対応する REDOエントリが REDOログファイルへ書き込まれるまで、DBWn はそのダーティブロックをデータファイルへ書き出さない(Write-Ahead Logging)
  2. BDBWn と LGWR は完全に独立して動作し、どちらの書き込みが先になっても Oracle の整合性・リカバリ可能性には影響しない
  3. Cデータブロックの書き込みが常に REDOエントリの書き込みより先に行われ、後から REDOログが追いつく形で整合性が保たれる
  4. DREDOログファイルへの書き込みは ARCHIVELOG モードのときのみ発生し、NOARCHIVELOG モードでは DBWn の書き出し前の順序保証も存在しない
正解・解説・誤答理由・ひっかけを見る▼ open
✓ 正解:AAI作成・独立検証済

解説

Oracle は障害からの回復可能性(リカバラビリティ)を保証するため、Write-Ahead Logging(先行書き込みログの原則)を採用している。

具体的には、あるデータブロックへの変更に対応する REDOエントリが REDOログファイルへ書き込まれる前に、そのデータブロック自体(ダーティバッファ)をディスクへ書き出してはならないという順序が保証される。

  • DBWn がダーティバッファを書き出そうとするとき、対応する REDO がまだディスクに書かれていなければ、DBWn は LGWR に先に REDO を書き込ませてから自分の書き出しを行う。
  • これにより、仮に書き出し中にクラッシュが発生しても、ディスク上には「変更後のデータブロック」より先に「その変更を再現できる REDO」が必ず存在する状態が保たれ、整合性のあるリカバリが可能になる。

もし逆順(データブロックが先、REDOが後)で書き込まれると、書き出し直後にクラッシュした場合、その変更を再現する REDO が無いままデータブロックだけが変更された状態でディスクに残り、リカバリで矛盾が生じ得る。

各誤答が違う理由
  • B完全に独立ではない。DBWn はダーティブロックを書き出す前に、対応する REDO がディスクへ書かれていることを保証する必要があり、順序が規定されている。
  • C順序が逆。正しくはREDOが先、データブロックが後(Write-Ahead Logging)。データブロックが先だとクラッシュ時にリカバリの矛盾が生じ得る。
  • DREDOログファイルへの書き込みは ARCHIVELOG/NOARCHIVELOG いずれのモードでも発生する(アーカイブするかどうかが違うだけ)。Write-Ahead Logging の順序保証もモードに関わらず適用される。
ひっかけ: 「DBWn と LGWR はどちらが先でも問題ない(独立して非同期に動く)」という誤解(B)。両者は完全に無関係ではなく、Write-Ahead Logging の原則で順序が規定されている。
AIが作成し、独立した検証を経た解説です(有資格者による監修は経ていません)
Q9CKPT(チェックポイントプロセス)難易度 標準無料

CKPT(チェックポイントプロセス)の役割として最も適切なものを選べ。(単一選択)

  1. ACKPT はチェックポイント発生時にダーティバッファを直接ディスクのデータファイルへ書き出す
  2. BCKPT はチェックポイント発生時に、制御ファイルと各データファイルヘッダーへチェックポイント情報(SCN等)を記録し、DBWn の書き出しと連携してインスタンスリカバリに必要な情報を維持する
  3. CCKPT はユーザーセッションが COMMIT するたびに起動し、REDOログバッファの内容を REDOログファイルへ書き出す
  4. DCKPT はデータベースの整合性チェック(ブロック破損検査)を定期的に行い、破損を検知すると自動修復する
正解・解説・誤答理由・ひっかけを見る▼ open
✓ 正解:BAI作成・独立検証済

解説

CKPT(Checkpoint Process)は、チェックポイントの発生時に制御ファイルとデータファイルヘッダーを更新するバックグラウンドプロセスである。

  • チェックポイントとは、「SGA 内のダーティバッファをデータファイルへ書き出す」処理と、その結果を制御ファイル・各データファイルヘッダーへ記録する処理を伴うイベントである。
  • 実際にダーティバッファをディスクへ書き出すのは DBWnの仕事であり、CKPT 自身はデータブロックの書き出しは行わない。CKPT の役割は、チェックポイントが完了したという事実(チェックポイント SCN 等)を制御ファイルとデータファイルヘッダーに記録・シグナルすることに限定される。
  • この記録により、インスタンスリカバリ時に「どの SCN 以降の REDO を適用すればよいか」を判断できる(チェックポイント以前の変更はすでにデータファイルへ反映済みとみなせる)。
各誤答が違う理由
  • Aダーティバッファの実際の書き出しは DBWn の仕事。CKPT はデータブロックそのものの書き出しは行わない。
  • CREDOログバッファをREDOログファイルへ書き出すのは LGWR の役割。CKPT はREDOの書き出しは行わない。
  • Dブロック破損の検査・修復は CKPT の役割ではない(RMAN の検証機能やブロックメディアリカバリ等、別の仕組み)。CKPT はチェックポイント情報の記録に専念する。
ひっかけ: 「CKPT がダーティバッファをディスクへ書き出す」という誤解(A)が最頻出。書き出し自体は DBWnが行い、CKPT は制御ファイル/データファイルヘッダーの更新に専念する役割分担を区別する。
AIが作成し、独立した検証を経た解説です(有資格者による監修は経ていません)
Q10SMON(システムモニタープロセス)難易度 標準無料

SMON(System Monitor Process)の役割として正しいものをすべて選べ。(複数選択)

  1. Aインスタンスクラッシュ後の起動時に、REDOログを適用してロールフォワードし、その後、未コミットトランザクションをロールバックする(インスタンスリカバリ)
  2. B不要になった一時セグメントの領域を解放する
  3. C辞書管理表領域における隣接する空きエクステントを結合(coalesce)する
  4. D異常終了したユーザープロセスを検出し、そのプロセスが保持していたロックを解放してセッションをクリーンアップする
正解・解説・誤答理由・ひっかけを見る▼ open
✓ 正解:AAI作成・独立検証済

解説

SMON(System Monitor Process)は、インスタンス全体のメンテナンスを担うバックグラウンドプロセスで、主な役割は次のとおり。

  • インスタンスリカバリ(instance recovery):異常終了(SHUTDOWN ABORT・インスタンスクラッシュ等)の後、次回起動(STARTUP)時に SMON が REDOログを適用してロールフォワード(前進リカバリ)を行い、続いて未コミットのトランザクションをロールバックする。
  • 一時セグメントの領域解放:不要になった一時セグメントの領域を回収する。
  • 空きエクステントの結合(coalesce):辞書管理表領域(dictionary-managed tablespace)における隣接する空きエクステントを結合し、断片化を解消する。

一方、ユーザープロセスの強制切断・セッションのクリーンアップ(デッドロック検出後の異常セッションの後始末等)は主に PMON(Process Monitor)の役割であり、SMON の主要機能ではない。

各誤答が違う理由
  • Dこれは主に PMON(Process Monitor)の役割。SMON はインスタンス全体の(プロセス単位ではなく)リカバリ・領域メンテナンスを担う。
ひっかけ: SMON と PMON の役割の取り違えが最頻出。SMON=インスタンス全体のリカバリ・領域メンテナンスPMON=個別プロセス/セッションの後始末という粒度の違いを区別する。
AIが作成し、独立した検証を経た解説です(有資格者による監修は経ていません)
Q11必須バックグラウンドプロセス(DBWn/LGWR/CKPT/SMON/PMON)難易度 標準無料

STARTUP によってインスタンスが起動されると、いくつかのバックグラウンドプロセスが必須として常に起動される。次のうち、Oracle Database インスタンスにおいて必須のバックグラウンドプロセスとは言えないものを選べ。(単一選択)

  1. ADBWn(Database Writer)
  2. BLGWR(Log Writer)
  3. CARCn(Archiver Process)
  4. DSMON(System Monitor)
正解・解説・誤答理由・ひっかけを見る▼ open
✓ 正解:CAI作成・独立検証済

解説

Oracle インスタンスには、STARTUP 時に必ず起動される必須(mandatory)バックグラウンドプロセスがある。代表的なものは次の5つである。

  • PMON(Process Monitor):プロセス障害の後始末。
  • SMON(System Monitor):インスタンスリカバリ・領域メンテナンス。
  • DBWn(Database Writer):ダーティバッファのディスク書き出し。
  • LGWR(Log Writer):REDOログバッファの書き出し。
  • CKPT(Checkpoint Process):チェックポイント情報の記録。

これに対し、ARCn(Archiver Process)データベースが ARCHIVELOG モードのときにのみ起動されるオプションのプロセスであり、 NOARCHIVELOG モードのインスタンスでは起動されない。つまり ARCn は「常に必須」のプロセスではなく、アーカイブREDOログモードに依存する条件付きプロセスである。

各誤答が違う理由
  • ADBWn は STARTUP 時に常に起動される必須プロセス。ダーティバッファの書き出しに不可欠。
  • BLGWR は必須プロセス。REDOログバッファの書き出しはコミットの耐久性保証に不可欠であり、常に起動される。
  • DSMON は必須プロセス。インスタンスリカバリ等のために常に起動される。
ひっかけ: 「バックグラウンドプロセスは全部いつも動いている」という思い込み(ARCn を必須プロセスに含めてしまう誤り)。ARCn はARCHIVELOGモード時のみという条件付きである点が本問の核心。
AIが作成し、独立した検証を経た解説です(有資格者による監修は経ていません)
Q12データベースバッファキャッシュ(LRUアルゴリズム)難易度 高無料

データベースバッファキャッシュにおけるブロックの管理方式に関する説明として、最も適切なものを選べ。(単一選択)

  1. Aバッファキャッシュは概ね LRU アルゴリズムで管理され、最近アクセスされていないクリーンなブロックが置き換え候補になる。ダーティブロックは DBWn によってディスクへ書き出されるまでは置き換え(再利用)の対象にならない
  2. Bダーティブロックであっても、最も長くアクセスされていなければ内容を破棄してそのまま新しいブロックで上書きされる
  3. Cバッファキャッシュ内のブロックはすべて先入れ先出し(FIFO)方式で管理され、最初に読み込まれたブロックから順に置き換えられる
  4. Dバッファキャッシュにはサイズ上限がなく、読み込まれたブロックは置き換えられることなく無制限にメモリへ蓄積され続ける
正解・解説・誤答理由・ひっかけを見る▼ open
✓ 正解:AAI作成・独立検証済

解説

データベースバッファキャッシュ内のブロックは、大まかにLRU(Least Recently Used)アルゴリズムに基づくリストで管理される。

  • ブロックが読み込まれ・アクセスされるとMRU 端(最近使用された側)に置かれ、しばらくアクセスされないブロックは徐々にLRU 端(最も使用されていない側)へ移動していく。
  • 新しいブロックをキャッシュへ読み込む必要が生じると、サーバープロセスはLRU 端に近い、変更されていない(クリーンな)ブロックを優先して置き換え候補にする。
  • ダーティブロック(変更済みで未反映)はそのままでは置き換えの対象にならず、置き換える前にDBWn によってディスクへ書き出されてから初めて解放・再利用される。
  • 大きな全表スキャン(フルテーブルスキャン)で読み込まれたブロックは、通常のブロックとは異なる扱い(LRU リストの末端寄りに置かれる等)を受け、他の頻繁にアクセスされるブロックを不必要に追い出さないよう配慮される。
各誤答が違う理由
  • Bダーティブロックはディスクへ未反映の変更を含むため、破棄すると変更が失われる。DBWn による書き出しが完了するまでは再利用できない。
  • COracle のバッファキャッシュは FIFO ではなく LRU(最近の使用状況)に基づくアルゴリズムで管理される。
  • Dバッファキャッシュのサイズは DB_CACHE_SIZE 等で有限に設定されており、上限に達すれば LRU に基づき古いブロックが置き換えられる。無制限ではない。
ひっかけ: 「ダーティブロックもそのまま LRU で追い出されて消える」という誤解(B)。ダーティブロックはDBWn がディスクへ書き出してからでないと再利用(上書き)できない点が核心。
AIが作成し、独立した検証を経た解説です(有資格者による監修は経ていません)
Q13インスタンスとデータベース(物理構造)難易度 標準無料

Oracle データベースを構成する物理ファイルとして正しいものをすべて選べ。(複数選択)

  1. Aデータファイル
  2. B制御ファイル
  3. CオンラインREDOログファイル
  4. DSGA(共有プール・データベースバッファキャッシュ等)
正解・解説・誤答理由・ひっかけを見る▼ open
✓ 正解:AAI作成・独立検証済

解説

Oracle データベース(ディスク上に永続する実体)は、主に次の物理ファイル群から構成される。

  • データファイル:表・索引などのデータを格納する。
  • 制御ファイル(control file):データベースの物理構造(ファイル名・場所)、データベース名、タイムスタンプ、チェックポイント情報等のメタデータを保持する小さなバイナリファイル。STARTUP 時に必ず必要。
  • REDOログファイル(オンラインREDOログファイル):REDOログバッファからLGWRによって書き出される、変更履歴(REDOエントリ)を記録する循環利用のファイル群。

これらに対し、SGA(共有プール・バッファキャッシュ等)メモリ構造であり、インスタンスの一部としてメモリ上にのみ存在する。SHUTDOWN すると解放され、ディスク上のファイルとしては存在しない。

各誤答が違う理由
  • DSGA はメモリ構造でありインスタンス側の構成要素。ディスク上に永続する物理ファイルとしての「データベース」には含まれない。
ひっかけ: 「SGA もデータベースの一部としてディスクに保存される」という誤解(D)。SGA はあくまでインスタンス(メモリ)側の構造であり、データベース(ディスク上の物理構造)には含まれない。
AIが作成し、独立した検証を経た解説です(有資格者による監修は経ていません)
Q14共有プール(サイズ不足の兆候)難易度 高無料

本番システムで、同じ構造の SQL 文(リテラル値だけが異なりバインド変数化されていない)が大量に発行され続けた結果、共有プールの空き容量が逼迫し、既存のキャッシュ済みカーソルが頻繁に追い出される事象が発生した。この状況の説明として最も適切なものを選べ。(単一選択)

  1. Aバインド変数を使わずリテラル値を直接埋め込んだ SQL 文は、値が異なるたびに別の SQL 文として扱われて新規にハードパースされる。これが大量に発生すると共有プール(ライブラリキャッシュ)を圧迫し、他の解析済みカーソルの追い出しを招く
  2. Bこの現象はデータベースバッファキャッシュの不足が原因であり、共有プールとは無関係である
  3. Cリテラル値が異なっていても、SQL 文の構造(WHERE句の列やテーブル)が同じであれば Oracle は自動的に同一カーソルとして再利用するため、ハードパースは発生しない
  4. Dこの現象は REDOログバッファの不足が原因であり、LOG_BUFFER の値を大きくすることで解決する
正解・解説・誤答理由・ひっかけを見る▼ open
✓ 正解:AAI作成・独立検証済

解説

共有プールのライブラリキャッシュは、SQL文のテキストが完全一致する場合にのみ解析結果(共有カーソル)を再利用できる(ソフトパース)。 リテラル値がそのまま埋め込まれた SQL(バインド変数を使わない SQL)は、値が変わるたびに別の SQL 文として扱われ、新規にハードパースされる

この結果:

  • 大量のユニークな SQL 文が次々とライブラリキャッシュに登録され、共有プールの空き容量を圧迫する。
  • 空き容量が不足すると、Oracle は使用頻度の低いキャッシュ済みオブジェクト(他の解析済みカーソル等)をエイジアウト(追い出し)し、次回それらが必要になったときに再度ハードパースが発生する。
  • これは典型的な「バインド変数の未使用によるライブラリキャッシュのスラッシング」であり、CPU 負荷増大とラッチ競合(library cache latch 等)を招く。

対策としては、アプリケーション側でバインド変数を使用する、または CURSOR_SHARING 初期化パラメータ(FORCE 等)でリテラルを自動的にバインド変数化する方法がある。

各誤答が違う理由
  • B本問の現象(SQL カーソルの追い出し)はライブラリキャッシュ(共有プール)の圧迫が原因。バッファキャッシュはデータブロックのキャッシュであり、この事象の主因ではない。
  • C既定(CURSOR_SHARING=EXACT)では、リテラル値まで完全一致しないと同一カーソルとして再利用されない。構造が同じでも値が違えば別カーソル扱い。
  • DREDOログバッファは変更内容を保持する領域であり、SQL 解析結果のキャッシュとは無関係。本事象の原因ではない。
ひっかけ: 「共有プールが小さいから増やせば根本解決する(サイズだけの問題)」という誤解。SHARED_POOL_SIZE 拡大は緩和にはなるが、根本原因はバインド変数の未使用であり、サイズ拡大だけでは同じ問題が再燃し得る。
AIが作成し、独立した検証を経た解説です(有資格者による監修は経ていません)
Q15SMON(インスタンスリカバリの2段階)難易度 高無料

ある単一インスタンス構成の DB サーバーが、ハードウェア障害でクラッシュ(インスタンスも OS も異常終了)した。その後サーバーを再起動し、Oracle を STARTUP したところ、正常にオープンできた。この間に自動的に行われたインスタンスリカバリの流れとして最も適切なものを選べ。(単一選択)

  1. ASTARTUP 時に SMON が自動的に、①REDOログを適用してクラッシュ時点までロールフォワードし、②その後、未コミットのトランザクションをUNDOでロールバックする。DBA の手動操作は不要
  2. B未コミットのトランザクションのロールバックだけが行われ、ロールフォワード(REDOの適用)は発生しない
  3. Cデータファイルが破損している可能性を考慮し、RMAN による全データファイルのリストアが自動的に実行されてからロールフォワードが行われる
  4. DDBA が RECOVER DATABASE コマンドを手動で実行しない限り、Oracle は起動せずエラーで停止する
正解・解説・誤答理由・ひっかけを見る▼ open
✓ 正解:AAI作成・独立検証済

解説

インスタンスリカバリSTARTUP 時に SMON が自動的に実行)は、2段階で構成される。

  • ① ロールフォワード(前進リカバリ):最後にディスクへ反映されていた時点(最終チェックポイント)以降の REDOログ(オンラインREDOログファイル)を適用し、クラッシュ直前のコミット済み・未コミットを問わずすべての変更をデータファイルへ再現する。これにより、クラッシュ時点でメモリ上にしかなかった変更(ダーティバッファの内容)を復元する。
  • ② ロールバック(後退リカバリ):ロールフォワードによって復元されたデータの中には、クラッシュ時点でまだコミットされていなかったトランザクションの変更も含まれる。これらは UNDO 情報を使ってロールバックし、コミット済みの一貫した状態に戻す。

この一連の処理は SMON が自動的に行い、通常は DBA が明示的に何かを実行する必要はない(メディアリカバリ=データファイル喪失時のリストア&リカバリとは別物)。

各誤答が違う理由
  • Bロールバックの前に、まずロールフォワード(REDO適用)でクラッシュ直前の状態まで復元する必要がある。ロールバックのみでは不十分。
  • C本問はインスタンスクラッシュ(データファイル自体は無事)を想定しており、データファイルのリストアは不要。それが必要なのはメディア障害(ファイル喪失)の場合。
  • D通常のインスタンスクラッシュからの回復(インスタンスリカバリ)はSTARTUP だけで SMON が自動実行する。RECOVER DATABASE の手動実行が必要なのはメディアリカバリの場面。
ひっかけ: 「ロールバックだけ行われる(ロールフォワードは不要)」という誤解(B)。ロールフォワードが先、ロールバックが後という順序と、両方が必要である点が核心。 また「DBA が手動でコマンドを実行しないと復旧しない」という誤解(D)も罠=STARTUP だけで SMON が自動実行する。
AIが作成し、独立した検証を経た解説です(有資格者による監修は経ていません)
Q16インスタンスとデータベース(プロセス構造)難易度 標準無料

クライアントアプリケーションが Oracle Database に接続し、SELECT 文を発行して結果を受け取るまでの流れに関わるプロセスの説明として、最も適切なものを選べ(専用サーバー〔dedicated server〕構成を前提とする)。(単一選択)

  1. Aクライアント接続時に起動される専用のサーバープロセスが、SQL 文の解析・実行、必要なデータブロックのバッファキャッシュへの読み込みを行い、結果をクライアントへ返す。このサーバープロセスは専用の PGA を持つ
  2. BSQL 文の解析・実行は DBWn が行い、その結果を LGWR がクライアントへ送信する
  3. Cすべてのクライアントの SQL 実行は共通の1つのバックグラウンドプロセス(CKPT)が順番に処理する
  4. Dサーバープロセスは存在せず、SGA が直接クライアントとソケット通信して結果を返す
正解・解説・誤答理由・ひっかけを見る▼ open
✓ 正解:AAI作成・独立検証済

解説

専用サーバー(dedicated server)構成では、クライアントが接続するとそのクライアント専用のサーバープロセスが1つ起動される。

  • サーバープロセス(server process)は、クライアントが発行した SQL 文の解析・実行・データの取得を行い、必要であればデータベースバッファキャッシュにデータブロックを読み込み、結果をクライアントへ返す。サーバープロセスは自分専用の PGA を持つ。
  • これに対し、バックグラウンドプロセス(DBWn, LGWR, CKPT, SMON, PMON 等)は、インスタンス全体の維持・保守を行うインスタンス起動時に立ち上がる別種のプロセス群であり、個々のクライアントの SQL 実行そのもの(解析・実行)は行わない。

つまり「クライアントの SQL を直接処理するのはサーバープロセス」「インスタンス全体の維持(書き出し・リカバリ等)を行うのがバックグラウンドプロセス」という役割の分離が Oracle プロセスアーキテクチャの基本である。

各誤答が違う理由
  • BDBWn はダーティバッファのディスク書き出し、LGWR は REDOログの書き込みを担うプロセスであり、いずれも SQL 文の解析・実行やクライアントへの結果送信は行わない。
  • CCKPT はチェックポイント情報の記録を担うプロセスであり、クライアントの SQL 実行とは無関係。専用サーバー構成ではクライアントごとにサーバープロセスが個別に処理する。
  • DSGA はメモリ構造であり、それ自体がクライアントと通信することはない。通信・SQL処理を担うのはサーバープロセス(OSプロセス)である。
ひっかけ: 「SQL文の解析・実行も DBWn や LGWR などのバックグラウンドプロセスが行う」という誤解(B・C)。個々の SQL 実行を担うのはサーバープロセスであり、バックグラウンドプロセスはインスタンス全体の保守に専念する、という役割分担を区別する。
AIが作成し、独立した検証を経た解説です(有資格者による監修は経ていません)
Q17SGA(自動共有メモリ管理)難易度 高無料

あるインスタンスで SGA_TARGETMEMORY_TARGET を使わず、SHARED_POOL_SIZEDB_CACHE_SIZE 等の個別コンポーネントサイズを手動で明示的に設定している。この構成に関する説明として最も適切なものを選べ。(単一選択)

  1. ASHARED_POOL_SIZEDB_CACHE_SIZE のように個別コンポーネントのサイズを明示指定した場合、それぞれのサイズは固定され、Oracle が自動的にコンポーネント間でメモリを再配分することはない
  2. B個別パラメータを指定していても、Oracle は常にワークロードを監視して共有プールとバッファキャッシュの間でメモリを自動的に再配分する
  3. Cこのような手動設定は Oracle Database 19c ではサポートされておらず、必ず SGA_TARGETMEMORY_TARGET のいずれかを設定しなければインスタンスは起動できない
  4. D個別パラメータを明示指定した場合でも、SGA 全体のサイズ上限だけは自動的に OS の空きメモリに応じて拡張される
正解・解説・誤答理由・ひっかけを見る▼ open
✓ 正解:AAI作成・独立検証済

解説

Oracle の SGA コンポーネント(共有プール・バッファキャッシュ・ラージプール等)のサイズ管理には複数のモードがある。

  • 手動共有メモリ管理SHARED_POOL_SIZEDB_CACHE_SIZE 等の個別パラメータを DBA が明示的に指定する方式。この場合、各コンポーネントのサイズは指定された値に固定され、Oracle が自動的にコンポーネント間でメモリを融通することはない。
  • 自動共有メモリ管理(ASMM)SGA_TARGET を設定すると、共有プール・バッファキャッシュ等のサイズを Oracle がワークロードに応じて自動的に再配分する。
  • 自動メモリ管理(AMM)MEMORY_TARGET を設定すると、SGA と PGA の間でもメモリが自動的に配分される(さらに大きな粒度の自動化)。

本問のように個別パラメータを明示指定している構成では、共有プールが不足してもバッファキャッシュの余剰メモリを自動的に融通することはない。DBA が各パラメータを手動で調整する必要がある。

各誤答が違う理由
  • B自動再配分(ASMM)が働くのは SGA_TARGET を設定した場合。個別パラメータをすべて明示指定している構成では、そのような自動融通は行われない。
  • C個別コンポーネントサイズの手動指定は現在もサポートされる有効な設定方式であり、それだけでインスタンスは起動できる。
  • D手動管理では SGA 全体のサイズも指定(または各コンポーネントの合計)に基づき、OS の空きメモリに応じて自動拡張されることはない。
ひっかけ: 「個別サイズを指定していても Oracle が自動で最適配分してくれる」という誤解。自動再配分が働くのは SGA_TARGET(ASMM)や MEMORY_TARGET(AMM)を設定した場合のみであり、個別パラメータ手動指定では固定サイズのまま動かない。
AIが作成し、独立した検証を経た解説です(有資格者による監修は経ていません)
Q18REDOログバッファ vs オンラインREDOログファイル難易度 標準無料

「REDOログバッファ」と「オンラインREDOログファイル」の違いに関する説明として、最も適切なものを選べ。(単一選択)

  1. AREDOログバッファは SGA 内のメモリ領域で変更を一時的に保持し、LGWR がその内容をディスク上のオンラインREDOログファイル(物理ファイル)へ書き出す。前者は揮発性、後者は永続的である
  2. BREDOログバッファとオンラインREDOログファイルは同じものを指す別名であり、どちらもディスク上に存在する
  3. CオンラインREDOログファイルの内容がまずディスクに書かれ、その後 LGWR がそれを読み込んで REDOログバッファ(メモリ)へコピーする
  4. DREDOログバッファのサイズは DB_CACHE_SIZE パラメータで制御され、バッファキャッシュと同一のメモリ領域を共有する
正解・解説・誤答理由・ひっかけを見る▼ open
✓ 正解:AAI作成・独立検証済

解説

両者は名前が似ているが、それぞれメモリ構造物理ファイルという別の層に属する。

  • REDOログバッファSGA 内のメモリ領域で、変更(REDOエントリ)が発生するたびに一時的にそこへ書き込まれる小さなリングバッファ。サイズは LOG_BUFFER 初期化パラメータで制御され、通常は数MB程度と小さい。
  • オンラインREDOログファイルディスク上の物理ファイルで、LGWR が REDOログバッファの内容を書き出す先。複数のログファイルをグループとして循環利用(ログスイッチ)する。

流れとしては:変更発生 → REDOログバッファ(メモリ)に記録 → LGWR がオンラインREDOログファイル(ディスク)へ書き出し、という順序になる。 REDOログバッファは揮発性(インスタンス障害で失われる)だが、書き出し済みのオンラインREDOログファイルはディスク上に永続し、リカバリの拠り所となる。

各誤答が違う理由
  • B同義語ではない。REDOログバッファはメモリ(SGA)、オンラインREDOログファイルはディスク上の物理ファイルという別の層に属する。
  • C順序が逆。変更はまずREDOログバッファ(メモリ)に記録され、その後 LGWR がオンラインREDOログファイル(ディスク)へ書き出す。
  • DREDOログバッファのサイズは LOG_BUFFER パラメータで制御される。DB_CACHE_SIZE はデータベースバッファキャッシュのサイズ制御用であり、別のメモリ領域。
ひっかけ: 「REDOログバッファとオンラインREDOログファイルは同じもの(同義語)」という誤解(B)。前者はメモリ(SGA)、後者はディスク上の物理ファイルという層の違いを区別する。
AIが作成し、独立した検証を経た解説です(有資格者による監修は経ていません)
Q19起動の段階(MOUNT)難易度 標準無料

STARTUP MOUNT でデータベースをマウント状態にした際に読み込まれるファイルとして正しいものを選べ。

  1. A制御ファイル(データファイル・REDOログの所在情報を含む)のみ。データファイル自体はまだオープンされない
  2. B制御ファイルとすべてのデータファイル
  3. C初期化パラメータファイルのみ。制御ファイルはOPEN段階まで読み込まれない
  4. DREDOログファイルの内容そのもの
正解・解説・誤答理由・ひっかけを見る▼ open
✓ 正解:AAI作成・独立検証済

解説

MOUNT段階では、初期化パラメータ CONTROL_FILES に指定された制御ファイルをオープンし、 その中に記録されているデータファイルとREDOログファイルの所在・名前・状態を読み取る。 ただし、この段階ではデータファイル自体はまだオープンされていない

MOUNT状態は主に、データファイルのリネーム・追加、REDOログの構成変更、アーカイブモードの切り替え (ALTER DATABASE ARCHIVELOG/NOARCHIVELOG)、リカバリ実行前の準備など、 データベース全体に影響する構造変更をデータファイルをオープンする前に行いたい場面で使われる。

各誤答が違う理由
  • BデータファイルがオープンされるのはOPEN段階であり、MOUNT段階ではまだオープンされない。
  • C初期化パラメータファイルの読み込みは前段のNOMOUNTで既に完了している。MOUNTで新たに読むのは制御ファイル。
  • DMOUNTで読むのは制御ファイルに記録されたREDOログの「所在情報」であって、REDOログファイルの中身(REDOレコード)ではない。
ひっかけ: 「MOUNTで制御ファイルを読む=データファイルの中身にもアクセスできる」と誤解しやすいが、MOUNTで読むのは制御ファイルに記録されたデータファイルの所在情報だけ。データファイル自体をオープンして中身(表領域のデータ)にアクセスできるのは次のOPEN段階から。
コマンド例と想定される挙動(未実行)
SQL>STARTUP MOUNT
ORACLE instance started.
Database mounted.
(この状態でSELECT * FROM V$DATAFILE;は成功するが、一般ユーザーの表への問い合わせはORA-01219等で失敗する)
AIが作成し、独立した検証を経た解説です(有資格者による監修は経ていません)
Q20起動の段階(OPEN)難易度 標準無料

STARTUP(引数なし・デフォルト)でデータベースがOPEN状態になった際に完了している処理として、正しくないものを選べ。

  1. Aすべての表領域が自動的に読み取り専用(READ ONLY)へ変更される
  2. BオンラインのデータファイルとREDOログファイルがオープンされる
  3. C必要であればインスタンス・リカバリ(クラッシュリカバリ)が自動的に実行される
  4. D一般ユーザーがデータベースに接続し、SQL文を実行できるようになる
正解・解説・誤答理由・ひっかけを見る▼ open
✓ 正解:AAI作成・独立検証済

解説

STARTUP(引数省略時)は NOMOUNT → MOUNT → OPEN の3段階を連続実行する。 OPEN段階では、制御ファイルに記録されたすべてのオンラインデータファイルとREDOログファイルがオープンされ、 必要であればインスタンス・リカバリ(クラッシュリカバリ)が自動実行され、一般ユーザーの接続・SQL実行が可能になる。

一方、読み取り専用(read-only)表領域の作成やオフライン化はDBAが任意に行うSQL操作であり、 OPENという「段階」自体が自動的にすべての表領域を読み取り専用へ変更するわけではない。 表領域のオンライン/オフライン状態は制御ファイルに記録された既存の状態がそのまま引き継がれるだけである。

各誤答が違う理由
  • BこれはOPEN段階で実際に行われる正しい処理であり、「正しくないもの」を選ぶ本問の答えにはならない。
  • Cクリーンでないシャットダウン(SHUTDOWN ABORT等)の後、OPEN段階でREDOログを使ったクラッシュリカバリが自動実行されるのは正しい挙動。
  • DOPEN状態こそが通常運用(一般ユーザー接続可)の状態であり、これは正しい記述。
ひっかけ: 「OPEN=全部整った状態」という言葉のイメージから、表領域の読み取り専用化のようなDBAの明示的操作まで自動で起きると誤読しやすい。OPEN段階が自動で行うのは「データファイル/REDOログのオープン」「必要ならクラッシュリカバリ」「接続受付開始」の3点に限られる。
コマンド例と想定される挙動(未実行)
SQL>STARTUP
ORACLE instance started.
Database mounted.
Database opened.
(Database opened. の表示後、一般ユーザーの接続とSELECT/DML実行が可能になる)
AIが作成し、独立した検証を経た解説です(有資格者による監修は経ていません)
Q21SHUTDOWN の4モード比較難易度 標準無料

SHUTDOWNの各モードに関する記述のうち、正しいものをすべて選べ。

  1. ASHUTDOWN NORMALは、すでに接続している全ユーザーが自発的に切断するまで待つ
  2. BSHUTDOWN IMMEDIATEはチェックポイントを実行するクリーンシャットダウンであり、次回起動時にクラッシュリカバリは不要
  3. CSHUTDOWN TRANSACTIONALは、実行中のトランザクションの完了を待たず即座に切断する
  4. DSHUTDOWN ABORTは次回起動時に自動的にクラッシュリカバリ(インスタンス・リカバリ)が行われる
正解・解説・誤答理由・ひっかけを見る▼ open
✓ 正解:AAI作成・独立検証済

解説

SHUTDOWN には4モードあり、待つ対象が段階的に厳しくなる。

  • NORMAL(デフォルト):新規接続を禁止し、全接続ユーザーが自発的に切断するまで待つ。最も時間がかかりうる。
  • TRANSACTIONAL:新規接続を禁止し、実行中のトランザクションが完了するのを待ってから切断・停止する(タイムアウトは無く、COMMIT または ROLLBACK されるまで待ち続ける)。
  • IMMEDIATE:現在のSQL文の完了は待たず(コミットされていないトランザクションはロールバック)、即座にユーザーを切断してシャットダウンする。ただし停止前にクリーンなチェックポイント処理は行われる
  • ABORT:チェックポイントもロールバックも行わず、インスタンスを強制終了する。次回起動時にクラッシュリカバリが必要になる。

NORMAL/TRANSACTIONAL/IMMEDIATEはいずれもクリーンシャットダウン(次回起動時にインスタンスリカバリ不要)である点が共通する。

各誤答が違う理由
  • CTRANSACTIONALはむしろ逆で、実行中のトランザクションが完了するのを待ってから切断する点が特徴。即座に切断するのはIMMEDIATE/ABORT側の性質。
ひっかけ: 「IMMEDIATE=即時=乱暴」というイメージから ABORT と混同しやすいが、IMMEDIATEはチェックポイントを実施するクリーンシャットダウンであり、次回起動にクラッシュリカバリを要さない。乱暴で次回リカバリが要るのはABORTだけ。
コマンド例と想定される挙動(未実行)
SQL>SHUTDOWN IMMEDIATE
Database closed.
Database dismounted.
ORACLE instance shut down.
(正常終了のログ。ABORTの場合はこのようなクリーンな終了メッセージ列にならず即座に停止する)
AIが作成し、独立した検証を経た解説です(有資格者による監修は経ていません)
Q22SHUTDOWN ABORT後の起動難易度 高無料

SHUTDOWN ABORT でインスタンスを強制停止した直後に、通常の STARTUP コマンドを実行した場合の挙動として正しいものを選べ。

  1. AOPEN段階でREDOログによるロールフォワードと、未コミット変更のロールバックが自動実行され、正常にOPENする
  2. Bデータファイルが破損した扱いになり、RMANによるメディア・リカバリ(RESTORE/RECOVER)を先に行わない限りSTARTUPは失敗する
  3. C未コミットのトランザクションもすべてコミット済みとして扱われ、データが失われずに残る
  4. DNOMOUNT状態までしか起動できず、MOUNT・OPENへ進めるには制御ファイルの再作成が必要
正解・解説・誤答理由・ひっかけを見る▼ open
✓ 正解:AAI作成・独立検証済

解説

SHUTDOWN ABORT はチェックポイントやロールバックを行わずインスタンスを即座に停止するため、 コミット済みだがまだデータファイルへ書き込まれていない変更(REDOログにのみ記録された変更)や、 未コミットのトランザクションがデータファイル上に不整合として残った状態になる。

この状態でも通常の STARTUP は問題なく実行できる。OPEN段階でOracleは自動的に インスタンス・リカバリ(クラッシュリカバリ)を行い、①オンラインREDOログを使って、コミット済み・未コミットを問わずクラッシュ直前までのすべての変更をロールフォワード(前進適用)し、 ②その後、未コミットだった変更をロールバック(UNDOを使って取り消し)することで、データベースを一貫した状態に自動的に戻す。 特別なRMANやDBA操作を追加で行う必要はない。

各誤答が違う理由
  • BABORTはデータファイル自体を破損させるものではない。物理的破損が無い限りクラッシュリカバリ(インスタンス・リカバリ)で自己修復し、メディア・リカバリは不要。
  • C逆である。ロールフォワードではコミット済み・未コミットを問わず全変更がいったん再適用され、その後 UNDO によって未コミットの変更だけがロールバックされて取り消される。
  • D制御ファイルは無事であり、通常のSTARTUPで自動的にMOUNT・OPENまで進む。制御ファイルの再作成が必要になるのは制御ファイル自体を紛失・破損した場合の別シナリオ。
ひっかけ: 「ABORTは危険=手動でのメディア・リカバリ(バックアップからのリストア)が必要」と過剰反応しやすいが、これはクラッシュリカバリ(インスタンス・リカバリ)で自動解決される範囲であり、データファイル自体が壊れていない限りメディア・リカバリ(RMAN RESTORE/RECOVER)は不要。
コマンド例と想定される挙動(未実行)
SQL>STARTUP
ORACLE instance started.
Database mounted.
Database opened.
(内部でロールフォワード→ロールバックが自動実行され、メッセージ上は通常起動と同様にDatabase opened.まで到達する)
AIが作成し、独立した検証を経た解説です(有資格者による監修は経ていません)
Q23STARTUP FORCE の用途難易度 標準無料

STARTUP FORCE の説明として最も適切なものを選べ。

  1. A稼働中のインスタンスがあれば強制停止(SHUTDOWN ABORT相当)してから起動し直す、停止+起動を1コマンドにまとめたもの
  2. B破損したデータファイルを自動的に修復してから起動するコマンド
  3. C読み取り専用モードでデータベースを強制的にOPENするコマンド
  4. D初期化パラメータの整合性チェックを無視して常にデフォルト値で起動するコマンド
正解・解説・誤答理由・ひっかけを見る▼ open
✓ 正解:AAI作成・独立検証済

解説

STARTUP FORCE は、実質的に 「稼働中インスタンスがあれば SHUTDOWN ABORT で強制停止し、続けて STARTUP を実行する」のと等価なコマンドである。

通常のSTARTUPは、インスタンスが既に起動中(NOMOUNT/MOUNT/OPENいずれかの状態)だとエラーになり実行できない。 しかし障害対応時などで「インスタンスがどの状態で止まっているか分からない・SHUTDOWNが通常モードで応答しない」といった状況では、 STARTUP FORCE 一発で「強制停止→起動」をまとめて行える。DBAが状況の切り分けに手間取らずに済む実務上便利なショートカットである。

各誤答が違う理由
  • Bデータファイルの物理的破損の修復はメディア・リカバリ(RMANのRESTORE/RECOVER等)の役割であり、STARTUP FORCEにその機能はない。
  • C読み取り専用でOPENするのは STARTUP MOUNT の後に ALTER DATABASE OPEN READ ONLY を実行する場合の話であり、FORCEの意味とは無関係。
  • DFORCEは初期化パラメータの検証を無視する機能ではない。あくまで「稼働中インスタンスの強制停止+再起動」の意味。
ひっかけ: 「FORCE」という語感から「壊れたデータベースを強制的に修復するコマンド」と誤解しやすいが、これはあくまで停止→起動を1コマンドにまとめた操作であり、データファイルの破損を修復する機能ではない(破損の修復にはメディア・リカバリが別途必要)。
コマンド例と想定される挙動(未実行)
SQL>STARTUP FORCE
(内部でSHUTDOWN ABORT相当の停止 → STARTUP相当の起動が連続実行され、最終的にDatabase opened.まで到達する)
AIが作成し、独立した検証を経た解説です(有資格者による監修は経ていません)
Q24SPFILE と PFILE の起動時優先順位難易度 高無料

デフォルトの場所に spfile${ORACLE_SID}.orainit${ORACLE_SID}.ora の両方が存在する状態で、パラメータ指定なしの STARTUP を実行した場合にOracleが読み込むファイルとして正しいものを選べ。

  1. Aspfile${ORACLE_SID}.ora(SPFILE)が優先して読み込まれ、init${ORACLE_SID}.oraは読まれない
  2. Binit${ORACLE_SID}.ora(PFILE)が優先して読み込まれ、spfile${ORACLE_SID}.oraは読まれない
  3. C両方のファイルの内容がマージされ、重複するパラメータはPFILE側の値が採用される
  4. 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が作成し、独立した検証を経た解説です(有資格者による監修は経ていません)
Q25ALTER SYSTEM の SCOPE 句難易度 高無料

ALTER SYSTEM SET 文の SCOPE 句に関する記述のうち、正しいものをすべて選べ(SPFILEで起動しているインスタンスを前提とする)。

  1. ASCOPE=MEMORYで変更した値は、インスタンスを再起動すると元の値に戻る
  2. BSCOPE=SPFILEで変更した場合、実行中のインスタンスには即時反映されず次回起動時から有効になる
  3. C静的パラメータ(起動時にしか変更できないパラメータ)はSCOPE=MEMORYで即座に動的変更できる
  4. DPFILEのみで起動している場合でもSCOPE=SPFILEを指定してSPFILEへ書き込める
正解・解説・誤答理由・ひっかけを見る▼ open
✓ 正解:AAI作成・独立検証済

解説

ALTER SYSTEM SET parameter = value SCOPE = { MEMORY | SPFILE | BOTH } の各値の意味は次の通り。

  • SCOPE=MEMORY実行中インスタンスのメモリ上のみに反映。SPFILEには書き込まれないため、次回再起動すると元の値に戻る
  • SCOPE=SPFILESPFILEにのみ書き込む。実行中インスタンスには反映されない=次回起動時から有効になる。静的パラメータ(起動時にしか変更できないパラメータ)を変更する際はこちらを使う。
  • SCOPE=BOTH:現在のインスタンスとSPFILEの両方に反映(動的パラメータのみ指定可)。PFILEで起動している場合はSPFILEが無いためこの指定はエラーになる。

SCOPE省略時、SPFILEで起動していればデフォルトは BOTH として扱われる。

各誤答が違う理由
  • C静的パラメータはメモリ上でも動的に変更できない。変更するにはSCOPE=SPFILEでSPFILEに書き込み、インスタンスを再起動する必要がある。
  • DPFILE起動時はSPFILE自体が使われていない(存在しても無視されている)ため、SCOPE=SPFILE/BOTHの指定はエラーになる。
ひっかけ: 「動的パラメータならどのSCOPEを指定してもよい」と思いがちだが、静的パラメータはSCOPE=SPFILE(または起動していないPFILE編集)でしか変更できない。静的パラメータに対してSCOPE=MEMORYやBOTHを指定すると「静的パラメータのためSCOPE指定が無効」等のエラーになる。
コマンド例と想定される挙動(未実行)
SQL>ALTER SYSTEM SET open_cursors=500 SCOPE=MEMORY;
System altered.
(インスタンス再起動後にopen_cursorsを確認すると、SPFILE未反映のため元の値に戻っている)
AIが作成し、独立した検証を経た解説です(有資格者による監修は経ていません)
Q26静的パラメータと動的パラメータの違い難易度 標準無料

「静的(static)初期化パラメータ」の説明として最も適切なものを選べ。

  1. ASPFILEへの書き込みはできるが、変更内容は次回インスタンス再起動後にしか反映されないパラメータ
  2. BPFILEでは変更できず、SPFILE運用時にしか一切変更できないパラメータ
  3. C一度設定すると二度と値を変更できないパラメータ
  4. Dデフォルト値のみが許され、ユーザーによる値の指定自体ができないパラメータ
正解・解説・誤答理由・ひっかけを見る▼ open
✓ 正解:AAI作成・独立検証済

解説

初期化パラメータは V$PARAMETER ビューの ISSYS_MODIFIABLE 列で分類できる。

  • 動的パラメータISSYS_MODIFIABLE = IMMEDIATE または DEFERRED。稼働中のインスタンスに対して ALTER SYSTEM でその場(または新規セッションから)反映できる。
  • 静的パラメータISSYS_MODIFIABLE = FALSEALTER SYSTEM SET ... SCOPE=SPFILE(または直接PFILEを編集)でファイルに書き込むことはできるが、その変更が実際に効くのは次回インスタンス再起動後で、稼働中のインスタンスの動作には一切影響しない。

代表例として CONTROL_FILES(制御ファイルの場所)は静的パラメータであり、実行中に制御ファイルの場所を差し替えることはできない。

各誤答が違う理由
  • B静的パラメータもPFILEならテキストエディタで自由に編集できる。「静的」の意味は起動中インスタンスに対する即時反映ができないことであり、PFILE編集の可否とは関係ない。
  • C静的パラメータも再変更は可能。ただし変更の反映に「インスタンス再起動」が必要という点が動的パラメータとの違い。
  • D静的パラメータもユーザーが任意の値を指定できる。制約は「反映タイミングが次回起動後」である点のみ。
ひっかけ: 「SCOPE=SPFILEで変更を受け付けた=即座に効果がある」と誤解しやすいが、静的パラメータはファイルへの書き込みが成功するだけで、稼働中インスタンスの挙動は変更前のまま。反映されるのは次回の起動以降。
コマンド例と想定される挙動(未実行)
SQL>SELECT name, isses_modifiable, issys_modifiable FROM v$parameter WHERE name='control_files';
NAME           ISSES_MODIFIABLE  ISSYS_MODIFIABLE
control_files  FALSE             FALSE
(ISSYS_MODIFIABLE=FALSEが静的パラメータであることを示す)
公式ドキュメント・関連Oracle Database 19c Reference — V$PARAMETER
AIが作成し、独立した検証を経た解説です(有資格者による監修は経ていません)
Q27CREATE SPFILE FROM PFILE難易度 標準無料

次のコマンドの目的として正しいものを選べ。

1  CREATE SPFILE FROM PFILE='/u01/app/oracle/product/19/dbs/initorcl.ora';
  1. A指定したPFILEの内容から、バイナリ形式のSPFILEを新規に生成する
  2. B新しいデータベース(新しいデータファイル・制御ファイル一式)を作成する
  3. C稼働中のインスタンスの初期化パラメータをメモリ上で即座に書き換える
  4. D既存のSPFILEを削除し、PFILE運用へ切り替える
正解・解説・誤答理由・ひっかけを見る▼ open
✓ 正解:AAI作成・独立検証済

解説

CREATE SPFILE FROM PFILE は、指定したテキスト形式の PFILEの内容を読み取り、それに基づいてバイナリ形式のSPFILEを新規作成するコマンドである。 逆方向(SPFILEからPFILEを生成)も CREATE PFILE FROM SPFILE で行える。

典型的な利用場面は、①これまでPFILEのみで運用していたインスタンスをSPFILE運用へ移行したい時、 ②SPFILEが破損・誤設定されて起動できなくなった際に、事前にバックアップしておいたPFILE(テキストなので直接編集・復旧しやすい)から 正常なSPFILEを作り直す時、の2つ。

このコマンド自体は現在稼働中のインスタンスのパラメータをその場で変更するものではない。あくまでファイルを生成するだけであり、 次回のSTARTUPからそのSPFILEが使われる。

各誤答が違う理由
  • B本コマンドは初期化パラメータファイルの生成のみを行い、データファイルや制御ファイルなどデータベース本体には一切関与しない。データベース作成はCREATE DATABASE文の役割。
  • C稼働中インスタンスのメモリ上パラメータを即時変更するのはALTER SYSTEM SET ... SCOPE=MEMORY(またはBOTH)の役割。本コマンドはファイル生成のみでインスタンスの現在の挙動には影響しない。
  • D本コマンドは新しいSPFILEを作る操作であり、逆にPFILE運用へ切り替えたい場合はSPFILEを使わずSTARTUP PFILE=...で明示起動する運用に変える必要がある(本コマンドの目的とは逆)。
ひっかけ: コマンド名に「CREATE」と付くため「新しいデータベースを作成する」ものと誤解しやすいが、これは初期化パラメータファイルの形式変換(PFILE→SPFILE)であり、データベース自体には一切影響しない。
コマンド例と想定される挙動(未実行)
SQL>CREATE SPFILE FROM PFILE='/u01/app/oracle/product/19/dbs/initorcl.ora';
File created.
($ORACLE_HOME/dbs/spfileorcl.ora が新規作成される。稼働中インスタンスのパラメータ値はこの時点では変化しない)
AIが作成し、独立した検証を経た解説です(有資格者による監修は経ていません)
Q28アラートログの役割難易度 標準無料

アラートログ(Alert Log)に関する記述として最も適切なものを選べ。

  1. ASTARTUP/SHUTDOWN、ログスイッチ、構造変更、重大エラー等、インスタンス全体に関わる重要イベントを時系列で記録する
  2. B全ユーザーが実行したSQL文とその実行結果を1件ずつすべて記録する
  3. Cパフォーマンス統計(待機イベントの集計値やSQL実行計画)を記録する専用ログ
  4. D1つのデータベースに対して複数のインスタンスがある場合でも、全インスタンス共通で1つだけ生成される
正解・解説・誤答理由・ひっかけを見る▼ open
✓ 正解:AAI作成・独立検証済

解説

アラートログ(alert_${ORACLE_SID}.log、19c以降はXML形式のログも同時出力される)は、 データベース・インスタンス全体に関わる重大なイベントを時系列で記録する中心的なログファイルである。

記録される代表的な内容:

  • STARTUP/SHUTDOWNの実行と、その際に使用された初期化パラメータの一覧(デフォルト値以外)
  • ログスイッチ(REDOログの切り替え)の発生
  • 表領域・データファイルの作成/追加/リサイズなどの構造変更
  • ORA-00600(内部エラー)やORA-07445などの重大エラー、ブロック破損の検出
  • チェックポイント関連の情報や、リカバリ処理の実施状況

アラートログは1インスタンスにつき1つで、DBAが障害調査・稼働状況確認の際に最初に確認する基本のログである。 個々のセッションのSQL文やSQL実行結果までは記録しない(それは監査証跡やSQLトレースの領域)。

各誤答が違う理由
  • B個々のSQL文の記録はアラートログの役割ではない。SQLの実行詳細はSQLトレースや監査(Audit)機能で扱う。
  • C待機イベント集計やSQL実行計画の記録はAWR(Automatic Workload Repository)やSTATSPACK、V$系動的パフォーマンスビューの領域であり、アラートログの主目的ではない。
  • D逆で、アラートログはインスタンスごとに個別に生成される(例:RACであれば各インスタンスにそれぞれ1つずつ)。
ひっかけ: 「重大なログ=全SQL文が記録される」と誤解しやすいが、アラートログはインスタンスレベルのイベントを記録するものであり、通常のユーザーが実行した個々のSQL文(SELECT/DML)は記録されない。個々のSQL実行の詳細はSQLトレース(トレースファイル)や監査機能の役割。
コマンド例と想定される挙動(未実行)
alert_orcl.log の抜粋例:
Starting ORACLE instance (normal)
...
ARCH: STARTING ARCH PROCESSES
Thread 1 opened at log sequence 152
  Current log# 2 seq# 152 mem# 0: /u01/.../redo02.log
...
(SQL文そのものは記録されず、インスタンス起動・ログスイッチ等のイベントのみが記録される)
AIが作成し、独立した検証を経た解説です(有資格者による監修は経ていません)
Q29ADR(Automatic Diagnostic Repository)の構成難易度 高無料

ADR(Automatic Diagnostic Repository)に関する記述として最も適切なものを選べ。

  1. A初期化パラメータDIAGNOSTIC_DESTを起点に、trace/・incident/・alert/等のサブディレクトリでアラートログやトレースファイルを一元管理するディレクトリ体系
  2. Bアラートログファイルそのものの別名にすぎず、実体は1つのテキストファイルである
  3. CV$DIAG_INFOビューの内部データを保持するメモリ上の一時領域であり、インスタンス停止で消える
  4. DパラメータBACKGROUND_DUMP_DESTとUSER_DUMP_DESTを個別に設定して初めて有効化される11g以前からの仕組み
正解・解説・誤答理由・ひっかけを見る▼ open
✓ 正解:AAI作成・独立検証済

解説

ADRは、初期化パラメータ DIAGNOSTIC_DEST を起点にしたディレクトリ階層で診断情報を一元管理する仕組みである。 基本構造は次の通り。

  • $DIAGNOSTIC_DEST/diag/rdbms/<db_unique_name>/<instance_name>/ を1つのADRホームとする
  • その下に trace/(アラートログ・バックグラウンド/サーバープロセスのトレースファイル)、incident/(重大障害=インシデントごとの診断データ一式)、alert/(XML形式アラートログ)、cdump/ などのサブディレクトリが自動的に作られる

ADRの導入以前は初期化パラメータ BACKGROUND_DUMP_DESTUSER_DUMP_DEST でトレース出力先をそれぞれ個別指定していたが、 11g以降はこれらがDIAGNOSTIC_DESTに統合され、DBAが診断ファイルを探し回らずに済むよう一元化されている。 ADRの操作には adrci(ADRコマンドラインインタフェース)を使う。

各誤答が違う理由
  • BADRはアラートログだけでなく、トレースファイル・インシデントパッケージ・コアダンプなど複数種の診断情報を格納するディレクトリ体系全体を指す。単一ファイルではない。
  • CADRはディスク上のディレクトリ体系であり永続化される。V$DIAG_INFOはADRの各ディレクトリパスを確認するための動的パフォーマンスビューにすぎず、ADR自体がメモリ上の一時領域という説明は誤り。
  • D逆で、ADRは11g以降にBACKGROUND_DUMP_DEST/USER_DUMP_DESTを統合する形でDIAGNOSTIC_DEST一本化として導入されたもの。個別設定が前提という説明は誤り。
ひっかけ: 「ADR=アラートログそのものの別名」と誤解しやすいが、ADRはアラートログを含む診断データ全体(トレースファイル・インシデントパッケージ・コアダンプ等)を格納するディレクトリ体系であり、アラートログはその中の1コンポーネントに過ぎない。
コマンド例と想定される挙動(未実行)
adrci&gt;show homes
ADR Homes:
diag/rdbms/orcl/orcl
(DIAGNOSTIC_DEST配下に diag/rdbms/&lt;db_unique_name&gt;/&lt;instance&gt;/ の階層でtrace・incident・alert等が格納されている)
AIが作成し、独立した検証を経た解説です(有資格者による監修は経ていません)
Q30トレースファイルの種類(バックグラウンド/サーバープロセス)難易度 標準無料

Oracleが生成する診断用トレースファイルに関する記述として正しいものを選べ。

  1. Aバックグラウンドプロセスのトレースとサーバープロセスのトレース(SQLトレース含む)は別々のファイルとして出力される
  2. BSQL_TRACEを有効化しなくても、全セッションの全SQL文が常にトレースファイルへ自動記録される
  3. Cトレースファイルは1インスタンスにつき1ファイルのみで、全プロセスの情報が1つに集約される
  4. Dtkprofはトレースファイルを生成するコマンドであり、生成後の解析には別ツールが必要
正解・解説・誤答理由・ひっかけを見る▼ open
✓ 正解:AAI作成・独立検証済

解説

トレースファイルは大きく2種類に分けられる。

  • バックグラウンドプロセスのトレースPMONSMONDBWnLGWR などのバックグラウンドプロセスが、 自身が検知した問題や処理内容を記録する。異常終了時に多くの情報を残す。
  • サーバープロセスのトレース:ユーザーセッションに対応するサーバープロセスが、 SQL_TRACE(または DBMS_MONITORDBMS_SESSION.SET_SQL_TRACE)を有効にした際に、 そのセッションが実行したSQL文の解析・実行・フェッチの統計情報を記録する。パフォーマンス調査(tkprofでの整形が定番)に使う。

いずれもADRの trace/ ディレクトリに、${ORACLE_SID}_${プロセス種別}_${プロセスID}.trc のような命名規則で出力される。

各誤答が違う理由
  • BSQLトレースはDBMS_MONITOR等で明示的に有効化しない限り出力されない。常時全SQL文が自動記録されるわけではない。
  • Cトレースファイルはプロセス(PMON・SMON・各サーバープロセス等)ごとに個別のファイルとして生成される。1ファイルへの集約ではない。
  • D逆で、tkprofは既に生成されたSQLトレースファイル(.trc)を人間が読みやすい形式に整形・解析するツールである。生成そのものはSQL_TRACE等の有効化によって行われる。
ひっかけ: 「トレースファイル=1種類の汎用ログ」と考えがちだが、実際はプロセス(バックグラウンド/サーバー)ごとに個別のトレースファイルが生成される。SQLトレースはセッション単位で有効化しない限り出力されず、常時全SQL文が記録されているわけではない。
コマンド例と想定される挙動(未実行)
$ADR_HOME/trace/ の例:
orcl_pmon_12345.trc      (バックグラウンドプロセスPMONのトレース)
orcl_ora_23456.trc       (SQL_TRACE有効化中のサーバープロセスのトレース。tkprof orcl_ora_23456.trc output.txt で整形可能)
AIが作成し、独立した検証を経た解説です(有資格者による監修は経ていません)

無料サンプルはここまでです。全問に挑戦するには6ヶ月アクセスパス(1回払い・自動更新なし)をご利用ください。ログインすると、間違えた問題だけを集めて復習できます。

料金プランを見る