ORACLE MASTER資格の中級に位置付けられ、取得すればOracle技術者としてグローバルに認定される「ORACLE MASTER Silver Oracle Database 10g」。例題を利用してポイントを押さえ、確実な合格を目指そう!
前回「Oracleデータベースの制御ツールを使い倒す」に引き続き、データベースの制御について紹介します。
データベースの起動と停止における各種オプションが対象となります。インスタンスの情報を取得できるビューや各種トレースファイルに関しても理解しておきましょう。
データベースの起動では、次の3つの段階を経て起動が完了します。
1.インスタンス起動(NOMOUNT)
初期化パラメータファイルを読み込み、SGAを割り当て、バックグラウンドプロセスを起動することで、インスタンスが起動します。このとき、初期化パラメータCONTROL_FILESにて制御ファイルが識別されます。
2.データベースのマウント(MOUNT)
制御ファイルをオープンします。制御ファイル内に記録されているREDOログファイル、データファイルを識別します。
3.データベースのオープン(OPEN)
REDOログファイル、データファイルをオープンします。特権ユーザー(SYSDBA、SYSOPER)以外のユーザーの接続が可能になります。
SQL*Plusでは、STARTUPコマンドでデータベースを起動できます。引数を指定しない場合はデータベースのオープンまで行われます。STARTUP NOMOUNT、STARTUP MOUNTを使用することで、インスタンスのみの起動、マウントでの起動を行うことも可能です。
SQL> STARTUP ORACLEインスタンスが起動しました。 Total System Global Area 222298112 bytes Fixed Size 1288676 bytes Variable Size 142607900 bytes Database Buffers 75497472 bytes Redo Buffers 2904064 bytes データベースがマウントされました。 データベースがオープンされました。
データベースの停止方法には次の4種類があります。
ABORT処理で停止した場合、次回の起動時にインスタンスリカバリが必要であることに注意しましょう。その場合のインスタンスのリカバリ情報は、アラートログから確認することができます。
NORMAL | TRANSACTIONAL | IMMEDIATE | ABORT | |
---|---|---|---|---|
セッションが明示的に切断されるのを待つ | ○ | × | × | × |
トランザクションが明示的に終了するのを待つ | ○ | ○ | × | × |
チェックポイントを実行する | ○ | ○ | ○ | × |
データファイルをクローズする | ○ | ○ | ○ | × |
初期化パラメータには、インスタンスレベルで変更可能なものとセッションレベルで変更可能なもの、両方で変更可能なものがあります。V$PARAMETERビューでは、セッションレベルで変更した値が表示されます。
SQL> ALTER SYSTEM SET db_file_multiblock_read_count=16; システムが変更されました。 SQL> ALTER SESSION SET db_file_multiblock_read_count=8; セッションが変更されました。 SQL> SELECT name,value FROM v$parameter 2 WHERE name = 'db_file_multiblock_read_count'; NAME VALUE ------------------------------ ---------- db_file_multiblock_read_count 8
初期化パラメータは、すべてを調整する必要はありません。基本パラメータのみを調整すれば、最低限の動作は保証されます。拡張パラメータは特殊な要件の場合に使用します。
Oracleサーバの動作を確認するためのログファイルとして、アラートログファイルがあります。アラートログファイルには次のような情報が記録されます。
アラートログファイルとバックグラウンドプロセスが作成するトレースファイルは、BACKGROUND_DUMP_DEST初期化パラメータで指定したディレクトリ配下に生成されます。
SQL> show parameter background_dump_dest NAME TYPE VALUE ------------------------------------ ----------- -------------- background_core_dump string partial background_dump_dest string /u01/app/.../bdump SQL> !tail -100 /u01/app/.../bdump/alert_orcl.log Tue Nov 21 22:45:38 2006 Starting ORACLE instance (normal) LICENSE_MAX_SESSION = 0 LICENSE_SESSIONS_WARNING = 0 Picked latch-free SCN scheme 2 Using LOG_ARCHIVE_DEST_10 parameter default value as USE_DB_RECOVERY_FILE_DEST Autotune of undo retention is turned on. IMODE=BR ILAT =18 LICENSE_MAX_USERS = 0 SYS auditing is disabled ksdpec: called for event 13740 prior to event group initialization Starting up ORACLE RDBMS Version: 10.2.0.2.0. System parameters with non-default values: processes = 150 __shared_pool_size = 125829120 shared_pool_size = 117440512 __large_pool_size = 4194304 large_pool_size = 4194304 __java_pool_size = 4194304 java_pool_size = 4194304 __streams_pool_size = 8388608 streams_pool_size = 8388608 ‥‥
次回のインスタンス起動時にインスタンスリカバリが必要ではない停止方法を選択しなさい。
a.標準(NORMAL)
b.標準(NORMAL)、トランザクション(TRANSACTIONAL)
c.標準(NORMAL)、トランザクション(TRANSACTIONAL)、即時(IMMEDIATE)
d.標準(NORMAL)、即時(IMMEDIATE)、中断(ABORT)
正解:c
前回、宿題とした問題です。
データベースの停止には、次の4種類があります。
次回のインスタンス起動時にインスタンスリカバリが必要となるのは、中断(ABORT)の場合です。ABORTではチェックポイントもデータベースのクローズも行わないままインスタンスを停止しているため、インスタンスリカバリによるデータ整合の取り直しが必要になります。
アラートログファイルが作成される場所を指定する初期化パラメータを選択しなさい。
a.BACKGROUND_DUMP_DEST
b.USER_DUMP_DEST
c.ALERT_DUMP_DEST
d.LOG_DUMP_DEST
正解:a
アラートログファイルの作成場所は、BACKGROUND_DUMP_DEST初期化パラメータで指定します(正解a)。このディレクトリ配下にalert_$ORACLE_SID.logファイルが作成されます。
各種バックグラウンドプロセスが生成するトレースファイルも、このディレクトリに作成されます。
そのほかの選択肢の不正解の理由は次のとおりです。
●選択肢b:USER_DUMP_DEST初期化パラメータで指定するのは、ユーザートレースファイルの作成場所です。ユーザートレースファイルは、サーバプロセスにより生成されるファイルです。
●選択肢c、d:このような初期化パラメータは存在しません。
V$PARAMETERで表示される初期化パラメータ値の説明として適切なものを選択しなさい。
a.サーバパラメータファイルで指定された値
b.インスタンス起動時の値
c.セッションレベルで現在有効な値
d.システムレベルで現在有効な値
正解:c
初期化パラメータの情報を調べることのできるV$PARAMETERビューは、現在のセッションで設定されたパラメータ値を表示します。
そのほかの選択肢の不正解の理由は次のとおりです。
●選択肢a:サーバパラメータファイル(SPFILE)の値は、V$SPPARAMETERビューで確認できます。ISSPECIFIED列の値がTRUEであれば、サーバパラメータファイルに記述されていることを意味します。
●選択肢b:インスタンス起動時にデフォルト以外の値が設定された初期化パラメータとその値は、アラートログファイルのインスタンス起動時のログ内容で確認できます。
●選択肢d:システムレベルの値は、V$SYSTEM_PARAMETERビューで確認できます。
SQL> SELECT name,value FROM v$system_parameter 2 WHERE name = 'db_file_multiblock_read_count'; NAME VALUE ------------------------------ ---------- db_file_multiblock_read_count 16
次回は「記憶域の構造」を確認します。次の宿題を解いておいてください。
次のコマンドを確認してください。
SQL> DROP TABLESPACE tbs01 INCLUDING CONTENTS;
このコマンドの特徴を2つ選択しなさい。
a.表領域に含まれるセグメントが存在する場合はエラーとなる
b.表領域に含まれるセグメントを含めて、表領域の定義が削除される
c.表領域の定義とデータファイルが削除される
d.デフォルト一時表領域に設定されている表領域の場合はエラーとなる
IT資格試験の模擬問題をWebベースで学習できる@IT自分戦略研究所の新サービス「@IT資格攻略」では、「Silver DBA(Oracle10g)」をはじめOracle関連の資格をテーマとして取り上げています。「無料お試し版」もありますので、記事と併せてご覧ください。
Copyright © ITmedia, Inc. All Rights Reserved.