Oracleデータベースの起動と停止を押さえよう:ORACLE MASTER Silver DBA講座(4)
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種類があります。
- 標準(NORMAL)
- トランザクション(TRANSACTIONAL)
- 即時(IMMEDIATE)
- 中断(ABORT)
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サーバの動作を確認するためのログファイルとして、アラートログファイルがあります。アラートログファイルには次のような情報が記録されます。
- 発生するすべての内部エラー(ORA-600)、ブロック破損エラー(ORA-1578)、デッドロックエラー(ORA-60)
- データベースの起動と停止、表領域の追加と削除、変更、ALTER DATABASE、ALTER SYSTEMコマンドといった管理作業
- デフォルト値以外に設定された初期化パラメータ(インスタンス起動時)
アラートログファイルとバックグラウンドプロセスが作成するトレースファイルは、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 ‥‥
問題
問題1
次回のインスタンス起動時にインスタンスリカバリが必要ではない停止方法を選択しなさい。
a.標準(NORMAL)
b.標準(NORMAL)、トランザクション(TRANSACTIONAL)
c.標準(NORMAL)、トランザクション(TRANSACTIONAL)、即時(IMMEDIATE)
d.標準(NORMAL)、即時(IMMEDIATE)、中断(ABORT)
正解:c
解説
前回、宿題とした問題です。
データベースの停止には、次の4種類があります。
- 標準(NORMAL)
すべてのユーザーセッションの停止後、チェックポイントを行い、データベースをクローズする。その後データベースのアンマウントを行い、インスタンスを停止する - トランザクション(TRANSACTIONAL)
すべてのトランザクションの停止後、セッションを切断し、チェックポイントを行い、データベースをクローズする。その後データベースのアンマウントを行い、インスタンスを停止する - 即時(IMMEDIATE)
すべてのセッションを切断し(トランザクションはロールバック)、チェックポイントを行い、データベースをクローズする。その後データベースのアンマウントを行い、インスタンスを停止する - 中断(ABORT)
インスタンスを強制終了する
次回のインスタンス起動時にインスタンスリカバリが必要となるのは、中断(ABORT)の場合です。ABORTではチェックポイントもデータベースのクローズも行わないままインスタンスを停止しているため、インスタンスリカバリによるデータ整合の取り直しが必要になります。
問題2
アラートログファイルが作成される場所を指定する初期化パラメータを選択しなさい。
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:このような初期化パラメータは存在しません。
問題3
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関連の資格をテーマとして取り上げています。「無料お試し版」もありますので、記事と併せてご覧ください。
- リカバリ機能でOracleデータベースを復活させる
- Oracleデータベースのバックアップを取得する
- Oracleのバックアップ/リカバリの仕組みとは?
- Oracleでの問題発生を予防する
- Oracleのパフォーマンスを最適化する
- ロックでOracleのデータを守り、競合を防ぐ
- UNDO管理でOracleのデータを守る
- Oracle共有サーバ接続を利用する
- Oracleのネットワークのクライアント側構成を知る
- Oracleのネットワークのサーバ側構成とは?
- 監査でOracleデータベースのセキュリティ管理
- パスワード管理でOracleデータベースを守る
- PL/SQLを使いこなしてデータベース管理
- Data PumpとSQL*Loaderによるデータのロード
- SQLでのデータ操作方法を覚えよう
- Oracleデータベースのオブジェクトを管理する
- 権限とロールで効果的なユーザー管理を
- Oracleユーザーを作成してみよう
- Oracleデータベースの記憶域はどうなっている?
- Oracleデータベースの起動と停止を押さえよう
- Oracleデータベースの制御ツールを使い倒す
- 便利なツールでOracleデータベース作成
- Oracleを適切にインストールするには
Copyright © ITmedia, Inc. All Rights Reserved.