4. リスナー停止と既存セッション(Oracle Net Services)
リスナーはクライアントの初期接続要求を受けてサーバープロセスに引き渡す「受付係」で、接続確立後は一切関与しません。したがってリスナーを停止しても既存セッションは切れず、新規接続だけが失敗します(ORA-12541)。リスナーとインスタンスは独立していて、片方の起動・停止はもう片方に影響しない、という関係も頻出です。
7. NOT INとNULLの罠(集合演算子と副問合せ)
NOT INは「<> AND <> AND ...」と等価なので、副問合せの結果にNULLが1つでも含まれると全行が真になれず、結果は0行になります(エラーにはなりません)。INは「= OR = OR ...」なのでNULLが混ざっても影響を受けません。対処は副問合せにWHERE 列 IS NOT NULLを付けるか、NOT EXISTSへの書き換え。なお副問合せが0行(空集合)のときのNOT INは逆に全行返るので、「NULL入り」と「空」を混同しないことが重要です。
8. WITH CHECK OPTIONとWITH READ ONLY(スキーマオブジェクト)
WITH CHECK OPTIONはビューの定義条件に違反する行を作るINSERT/UPDATEを禁止し(違反時ORA-01402)、WITH READ ONLYは全DMLを禁止します(違反時ORA-42399)。どちらも制約するのは「そのビューを介した」操作だけで、基礎表への直接DMLは自由、SELECTはどちらでも可能です。CHECK OPTION付きでも条件の範囲内のDMLは実行できる(読取り専用になるわけではない)点と、エラー番号の対応がひっかけに使われます。
B. チェックポイント発生時に、チェックポイント情報を制御ファイルとデータファイルのヘッダーに記録する
C. チェックポイント発生時に、オンラインREDOログファイルをアーカイブする
D. チェックポイント発生時に、UNDO表領域の使用済み領域を解放する
解答を見る
正解: B
CKPTはチェックポイントの発生をDBWnに通知し、チェックポイント位置(SCN)を制御ファイルとデータファイルのヘッダーに記録する。データブロックそのものを書き込むのはDBWnであり、CKPT自身は書かない(A誤り)。アーカイブはARCnの役割(C誤り)。「CKPTは記録係、実際に書くのはDBWn」と覚える。
論理記憶構造
Oracleデータベースの論理記憶構造を大きいものから順に並べたものとして正しいものはどれですか。
A. 表領域 → セグメント → エクステント → データブロック
B. セグメント → 表領域 → データブロック → エクステント
C. 表領域 → エクステント → セグメント → データブロック
D. データブロック → エクステント → セグメント → 表領域
解答を見る
正解: A
論理記憶構造は大きい順に「表領域 ⊃ セグメント ⊃ エクステント ⊃ データブロック」の階層になる。表領域は1つ以上のセグメント(表や索引など)を含み、セグメントは1つ以上のエクステントから、エクステントは連続した複数のデータブロックから構成される。Dは小さい順であり、「大きい順」という問いの向きに注意する。
制御ファイル
制御ファイルに格納される情報として正しいものはどれですか。
A. SGAのサイズやプロセス数の上限など、インスタンスの構成を決める初期化パラメータの設定値
B. ユーザーが表に格納した行データそのものと、対応する索引のエントリ
C. 実行されたSQL文の解析結果と、オプティマイザが生成した実行計画
D. データベース名、データファイルとオンラインREDOログファイルの名前と位置、チェックポイント情報
解答を見る
正解: D
制御ファイルはデータベースの構成情報を記録する小さなバイナリファイルで、データベース名、データファイルやオンラインREDOログファイルの名前と位置、チェックポイント情報、バックアップ情報などを保持する。インスタンスがデータベースをマウントする際に読み込まれる。Aはパラメータファイル、Bはデータファイル、Cは共有プール(メモリ)に保持される情報である。