←ホームへ戻る




問1 ..................................................................................................

下記のコマンドにて、ユーザセッションを強制終了します。
空欄に必要となる情報をすべて選びなさい。

ALTER SYSTEM KILL SESSION '______';

a. ユーザ名
b. プロセスID
c. シリアル番号
d. セッションID
e. ユーザのパスワード
      

→回答と解説



問2 ..................................................................................................

JOB_HIST表のデータブロックに行移行や行連鎖が発生しているかどうかを
確認するために使用する SQL文として正しいものを選びなさい。

a. SELECT num_rows, blocks, chain_cnt FROM dba_tables WHERE table_name = 'JOB_HIST';
b. SELECT num_rows, blocks, chain_cnt FROM dba_segments WHERE table_name = 'JOB_HIST';
c. SELECT num_rows, blocks, chain_cnt FROM dba_extents WHERE table_name = 'JOB_HIST';
d. SELECT num_rows, blocks, chain_cnt FROM dba_objects WHERE table_name = 'JOB_HIST';
e. SELECT num_rows, blocks, chain_cnt FROM dba_tab_columns WHERE table_name = 'JOB_HIST';
      

→回答と解説



問3 ..................................................................................................

プロファイルによりユーザのパスワード管理を行います。
下記の条件に合う文として正しいものを選びなさい。

○条件
パスワード失効後、ユーザが最初にログインしてからパスワードを変更するまでの猶予
期間を5日とする(期間内にパスワードを変更しない場合アカウントがロックされる)。

a. CREATE PROFILE user_prof_01 LIMIT PASSWORD_REUSE_TIME unlimited PASSWORD_LIFE_TIME 5;
b. CREATE PROFILE user_prof_01 LIMIT PASSWORD_REUSE_TIME unlimited PASSWORD_LOCK_TIME 5;
c. CREATE PROFILE user_prof_01 LIMIT PASSWORD_REUSE_TIME unlimited PASSWORD_REUSE_TIME 5;
d. CREATE PROFILE user_prof_01 LIMIT PASSWORD_REUSE_TIME unlimited PASSWORD_GRACE_TIME 5;
      

→回答と解説



問4 ..................................................................................................

専用サーバ接続の場合、ユーザからの接続要求を受取ったリスナーが行う処理として
正しいものを1つ選びなさい。

a. リスナーは、受取ったSQL 文を実行する
b. リスナーは、ディスパッチャに要求を渡す
c. リスナーは、SMONに要求を渡す
d. リスナーは、サーバープロセスを生成する
e. リスナーは、PMONを生成する
      

→回答と解説



問5 ..................................................................................................

INSERT文の処理の流れについて、正しい順になっているものを選びなさい。

1. SQL 文の構文や権限をチェックする
2. 変更前後の値をREDOログバッファへ記録
3. データベースバッファキャッシュ内に該当するデータが存在しない場合、
   データファイルからデータブロックとUNDOブロック(存在する場合)をデータベース
   バッファキャッシュに読み込む
4. データベースバッファキャッシュ内に該当するデータが存在するかチェックする
5. ユーザプロセスがサーバプロセスにINSERT文を送り解析要求。
6. 再利用可能な実行計画が見つけられない場合、解析を行い実行計画を作成し、共有プールに保存する
7. 共有プール内に再利用可能な実行計画が存在するかチェックする
8. 変更の対象行をロック
9. データベースバッファキャッシュ内でUNDOセグメントの該当行に、変更前の値を書き換える
10. データブロックを更新
11. DBWRがデータファイルへ、LGWRがREDOログファイルへデータを書き込む


a. 5-1-7-6-8-4-3-9-2-10-11
b. 5-1-7-6-2-9-8-4-3-10-11
c. 5-1-7-6-2-9-4-3-8-10-11
d. 5-1-7-6-4-3-8-2-9-10-11
e. 5-1-7-6-4-3-2-9-8-10-11
      

→回答と解説



問6 ..................................................................................................

ユーザSCOTT は、 EMP表に対し「with grant option」付きでINSERT権限が与えられています。
SCOTT が JOHNに EMP表のINSERT権限を付与した後、 DBAがSCOTT の権限を取り消しました。
この場合、当てはまる現象を下記から選びなさい。

a. SCOTTがINSERTしたデータが、 EMP表から削除される
b. SCOTT及びJOHNがINSERTしたデータが、 EMP表から削除される
c. EMP表に対し、SCOTTはINSERTできないが、JOHNはINSERTできる
d. EMP表に対し、SCOTTおよびJOHN両方とも、INSERTできなくなる
e. DBA が行った権限取り消しはエラーとなる
      

→回答と解説



問7 ..................................................................................................

インスタンスの起動について、初期化パラメタを読み込むタイミングとして
正しいものを選びなさい。

a. データベースの起動時(NOMOUNT状態)
b. データベースのマウント時(MOUNT状態)
c. データベースのオープン時(OPEN状態)
d. データベースのクローズ時
e. 初期化パラメタは、必要な時に随時読み込む
      

→回答と解説



問8 ..................................................................................................

データベースバッファキャッシュ内のデータがディスクに書き出されるタイミング
として正しくないものを2つ選びなさい。

a. バッファキャッシュの 1/3がいっぱいになった時
b. タイムアウト発生時
c. ログスイッチ発生時
d. チェックポイント発生時
e. 共有プールのフラッシュ時
      

→回答と解説



問9 ..................................................................................................

データベース表領域とデータファイルの関係について、正しいものを選びなさい。

a. 1つの表領域は、1つのデータファイルで構成される
b. 複数の表領域で、1つのデータファイルを使用する事ができる
c. 1つのデータファイルは、複数の表領域を含む事ができる
d. 1つの表領域は、複数のデータファイルを含む事ができる
      

→回答と解説



問10 ................................................................................................

下記のCREATE USER 文にてユーザを作成しました。ユーザ ADMに割り当てられるプロファ
イルとして正しいものを選びなさい。

CREATE USER ADM IDENTIFIED BY ADM;

a. ADM
b. DBA
c. DEFAULT
d. SYSTEM
e. 割り当てられない
      

→回答と解説



回答と解説(問1)・・・答え:c,d
ユーザセッションを強制終了するには、alter system kill session文を使用します。
セッションが終了されると、バックグラウンドプロセスであるPMONがユーザの現行トラン
ザクションをロールバックし、ユーザが所有していたロックをすべて解除し、ユーザが保
持していたリソースはすべて開放されます。
ユーザが処理を行っている最中にセッションが終了された場合、ユーザには即時エラーが
返ります。また、ユーザが接続しているだけの状態の場合、V$SESSION のSTATUS列に
KILLEDとマークされ、次回処理を行おうとした際にエラーが返ります。

alter system kill session 'セッションID, シリアル番号';

セッションIDとシリアル番号は、V$SESSIONディクショナリビューから取得できます。

例:SCOTTユーザの現在のセッションを強制終了する
select SID, SERIAL#, STATUS from V$SESSION where USERNAME='SCOTT';

SID SERIAL# STATUS
--- ------- -------
 10      15 INVALID

1行が選択されました。

alter system kill session '10,15';
システムが変更されました。
      



回答と解説(問2)・・・答え:a
ANALYZE コマンド、または DBMS_STATS.GATHER_TABLE_STATSプロシージャにて統計情報を収集し、
DBA_TABLESビューの CHAIN_CNT列を確認することで、その表の行連鎖と行移行の行数を確認でき
ます。以下は、 ANALYZEコマンドを使用した例です。

SQL> ANALYZE TABLE hr.job_hist COMPUTE STATISTICS;
SQL> SELECT num_rows, blocks, chain_cnt
       FROM dba_tables
      WHERE owner = 'HR'
        AND table_name = 'JOB_HIST';


尚、行連鎖・行移行とは、どちらもデータブロック内に1行が収まらない状況であり、例えば
1行のデータを参照する際に移行元のブロックに加え、移行先ブロックも参照する必要がある
等、余分なディスクI/O が必要となり、パフォーマンス低下の原因ともなります。
      



回答と解説(問3)・・・答え:d
各パラメタの説明は以下の通りです。

FAILED_LOGIN_ATTEMPTS:アカウントがロックされるまでのログイン失敗回数
PASSWORD_LIFE_TIME   :パスワード有効日数
PASSWORD_REUSE_TIME  :パスワードを再使用できるようになるまでの日数
PASSWORD_REUSE_MAX   :パスワードを再使用できるようになるまでの変更回数
PASSWORD_LOCK_TIME   :ログインが指定回数以上失敗した後にユーザアカウントが
                       ロックされる期間(日数)
PASSWORD_GRACE_TIME  :パスワード失効後、最初のログインが成功してからパスワード
                       を変更するまでの猶予期間日数
PASSWORD_VERIFY_FUNCTION :パスワードの複雑さを検証するPL/SQLファンクション
      



回答と解説(問4)・・・答え:d
専用サーバ接続の場合、ユーザプロセス(SQL*Plus等)からの接続要求をリスナーが
受取ると、新たに専用サーバープロセスを生成し、専用サーバープロセスの接続を継
承します。もし、共有サーバ接続の場合は、接続要求をディスパッチャに渡します。

専用サーバー接続の場合は、ユーザプロセスと専用サーバープロセスが1対1の関係
になりますが、共有サーバ接続の場合は、複数ユーザプロセスからの接続を1つのデ
ィスパッチャで処理することができます。
      



回答と解説(問5)・・・答え:d
INSERT・UPDATE・DELETE文の処理は、下記のようになります。

(1)解析フェーズ
・ユーザプロセスがサーバプロセスにINSERT文を送り解析要求
・SQL 文の構文や権限をチェック
・共有プール内に再利用可能な実行計画が存在するかチェックする
・再利用可能な実行計画が見つけられない場合、解析を行い実行計画を作成し、共有プールに保存

(2)実行フェーズ
・データベースバッファキャッシュ内に該当するデータが存在するかチェック
・データベースバッファキャッシュ内に該当するデータが存在しない場合、データファイル
  からデータブロックとUNDOブロック(存在する場合)をデータベースバッファキャッシュに読み込む
・変更の対象行をロック
・変更前後の値をREDOログバッファへ記録
・データベースバッファキャッシュ内でUNDOセグメントの該当行に、変更前の値を書き換える
・データブロックを更新
・DBWRがデータファイルへ、LGWRがREDOログファイルへデータを書き込む
      



回答と解説(問6)・・・答え:d
with grant option句付きで権限付与されたユーザは、他のユーザやロールにその権限を
付与・取り消しする事ができます。

※オブジェクト権限の付与
GRANT オブジェクト権限 ON オブジェクト名
   TO {ユーザ | ロール | PUBLIC} [WITH ADMIN OPTION];


with grant option句付きで付与されたオブジェクト権限が取り消されると、そのユーザ
が他のユーザに付与したオブジェクト権限もカスケードして取り消されます。

※オブジェクト権限の取り消し
REVOKE オブジェクト権限 ON オブジェクト名
  FROM {ユーザ | ロール | PUBLIC} [CASCADE CONSTRAINTS];


よって、 DBAによりSCOTTから EMP表へのINSERT権限が取り消されると、
JOHNの EMP表へのINSERT権限も取り消されることになります。
ただし、それまでにINSERTしたデータが消されることはありません。
      



回答と解説(問7)・・・答え:a
データベース起動時の3つの状態を下記に示します。

1)NOMOUNT
・初期化パラメタファイル読込(*1)
・SGA 割り当て
・バックグラウンドプロセス開始
・トレースファイルとALERT ファイルのオープン

2)MOUNT
・制御ファイルオープン(データファイルとREDOログファイルの名前&状態を取得)
・すでに開始したインスタンスにデータベースの関連付け

3)OPEN
・データファイル・REDOログファイルオープン

*1)PFILE 指定がない場合デフォルトを検索し、見つからない場合はデータベース開始しない


よって、初期化パラメタは最初の段階で読み込まれます。
      



回答と解説(問8)・・・答え:a,e
DBWnがバッファをディスクに書き出すタイミングは下記になります。

※タイムアウト(3秒毎)
DBWnはタイムアウトのメカニズムを使い、3秒ごとに LRUリストから使用済みリストに
使用済みバッファを移動し、使用済みリストから書き出すべきデータブロックを調べる。

※チェックポイント
チェックポイントの発生がLGWRからDBWnに通知されると、DBWnは LRUリストから使用済
みリストに使用済みバッファをコピーし、使用済みリストからデータブロックを書き出す。

※表領域のOFFLINE、BEGIN BACKUP
表領域をオフラインにするとき(IMMEDIATE オプションを除く)や、バックアップモード
にする場合、DBWnは LRUリストから使用済みリストにその表領域の使用済みバッファをコ
ピーし、使用済みリストからデータブロックを書き出す。

※データベースの停止
データベースを停止すると(ABORT オプションを除く)チェックポイントが行われる為、
DBWnは LRUリストから使用済みリストに使用済みバッファをコピーし、使用済みリストか
らデータブロックを書き出す。

※オブジェクトの削除
オブジェクトの削除前に、DBWnはオブジェクトの使用済みブロックをディスクへフラッシュする。


細かい説明部分については、GOLDの試験範囲を含んでいますので多少難しいかもしれま
せんが、どのようなタイミングでバッファがディスクに書き出されるかは覚えましょう。
上記より、選択肢bとdは消えます。
「b.タイムアウト発生時」
「d.チェックポイント発生時」
選択肢cは、チェックポイント発生時にはログスイッチが発生するので、こちらも消えます。
「c.ログスイッチ発生時」

よって、正解はaとeになります。
      



回答と解説(問9)・・・答え:d
データファイルとは、OS上の物理的なファイルです。表領域は一つ以上のデータファイル
で構成され、表領域を拡大するには、データファイルのサイズを変更するか、またはファ
イルを追加します。
      



回答と解説(問10)・・・答え:c
データベースが作成されると、Oracleサーバは自動的にデフォルトプロファイルを作成
します。特定のプロファイルが明示的に割当てられないユーザに、暗黙的にデフォルト
プロファイルが割当てられます。(初期状態では、リソースの制限が無制限)

例:ユーザ(david)へのuser_profプロファイル割り当て
CREATE USER david IDENTIFIED BY david
DEFAULT TABLESPACE data
TEMPORARY TABLESPACE temp
QUOTA 10M ON data
PROFILE user_prof;

例:ユーザ(scott)へのuser_profプロファイル割り当て
ALTER USER scott PROFILE user_prof;

※割当ては、現在接続中のセッションには影響しません
      












Copyright © 2006 mari. All rights reserved.