連載
» 2006年12月26日 00時00分 公開

ORACLE MASTER Silver DBA講座(4):Oracleデータベースの起動と停止を押さえよう

ORACLE MASTER資格の中級に位置付けられ、取得すればOracle技術者としてグローバルに認定される「ORACLE MASTER Silver Oracle Database 10g」。例題を利用してポイントを押さえ、確実な合格を目指そう!

[有限会社 G.F.インフィニティ (Project - ∞)]

 前回「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関連の資格をテーマとして取り上げています。「無料お試し版」もありますので、記事と併せてご覧ください。



Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。