オラクル起動までのプロセス

オラクルデータベース(インスタンス)は完全に使用可能になるまでに 停止状態 ⇒ NOMOUNT 状態 ⇒ MOUNT 状態 ⇒ OPEN 状態(起動完了)の不可逆なステップがある。
反対に、完全な停止状態にする場合も同様に複数のプロセスがあるもののユーザーが操作できるステップはなく完全な停止するまでノンストップで行なわれる。例えば OPEN 状態から MOUNT 状態に遷移することはできない。

オラクルの起動プロセス図

STARTUP NOMOUNT

NOMOUNT のフェーズにおいては、パラメータファイル(pfile/spfile)の読み込み、SGA メモリ領域確保、バックグラウンド・プロセスも開始される。

このステップでは SGA のメモリの割り当てがおこなわれているため一部のパフォーマンス・ビューを参照することができるようになる。このフェーズではメモリ関連の初期化パラメータに誤った数値を指定して起動に失敗することが多い。

SQL> startup nomount
ORACLEインスタンスが起動しました。
 
Total System Global Area  234881024 bytes
Fixed Size                  1248260 bytes
Variable Size              83887100 bytes
Database Buffers          142606336 bytes
Redo Buffers                7139328 bytes
-- SGA メモリの総量とその内訳が表示される。
-- Fixed, Variable Size + Database Buffers + Redo Buffers = Total System Global Area
SQL> select name, value from v$parameter2;
NAME                           VALUE
------------------------------ ------------------------------
processes                      155
resource_limit                 TRUE
...
 
SQL> select * from v$database;
                   *
行1でエラーが発生しました。:
ORA-01507: データベースがマウントされていません。
 
SQL>SQL> select * from dba_tables;
                       *
行1でエラーが発生しました。:
ORA-01219: データベースがオープンしていません: 固定の表/ビューに対する問合せのみ可能です

STARTUP MOUNT / ALTER DATABASE MOUNT

MOUNT のフェーズにおいてはコントロールファイルを読み込む(パラメータファイル(pfile/spfile)に記述されている)。コントロールファイルの1つでもダメージを受けている場合には MOUNT 操作は失敗する。

SQL> startup mount  --  ← startup は SQL*Plus コマンドなのでセミコロンは無くてもよい
-- または、nomount 状態の場合は
SQL> alter database mount; -- ← alter database は SQL なのでセミコロンが必要
 
データベースが変更されました。
SQL> select name,status from v$datafile;
NAME                        STATUS
--------------------------- --------
/u03/.. ../system01.dbf     SYSTEM
/u03/.. ../undotbs01.dbf    ONLINE
/u03/.. ../sysaux01.dbf     ONLINE
/u03/.. ../users01.dbf      ONLINE
/u03/.. ../test01.dbf       ONLINE
...

コントロールファイルにはオラクルの物理的な構成(各種ファイル情報)が保存されている最重要ファイルの1つ。コントロールファイル内の物理情報はローディングされているだけで実際にオープンできるかまで関知していない。
データファイルなどの情報がローディングされているのでデータベースへのリストア/リカバリ処理を行なうこともできるフェーズ。

コントロール・ファイルが管理している情報(データベースの構造情報を管理する制御ファイル)

  • データベース名
  • データベースを作成したときのタイムスタンプ
  • 対応するデータファイルとREDO ログ・ファイルの名前と位置
  • 表領域情報
  • データファイルのオフライン範囲
  • ログ履歴
  • アーカイブログ情報
  • バックアップ・セットとバックアップ・ピースの情報
  • バックアップ・データファイルとREDO ログ情報
  • データファイルのコピーの情報
  • カレントのログ順序番号
  • チェックポイント 情報

STARTUP OPEN / ALTER DATABASE OPEN

OPEN のフェーズにおいては、コントロールファイルで指定された UNDO ファイル、データファイルがダメージを受けている場合には OPEN 操作は失敗する。

SQL> startup / startup open -- (オープンがデフォルト)
-- または、nomount、mount 済みの場合は
SQL> alter database open;
 
データベースが変更されました。

一時ファイル表領域の TEMP ファイル(≠datafile) が損失している場合には自動的に同サイズのファイルを再作成し起動する。(アラートログにエラーコードを伴わない通常メッセージが残り、起動コンソールには該当するメッセージ等の表示はなく普通に起動する:Oracle 10g R2)

このフェーズにまでくると SYSTEM 表 がオープンされることで データ・ディクショナリ を参照することができるようになる。

Windows 固有のプラットフォーム(サービス)

Windows の Oracle は Windows から提供されているサービスというプラットフォームで管理されている。

Windows上のオラクル
 


関連事項

オラクルが起動するまでのプロセスの関連トピックス

日本オラクル
■ 日本オラクル 株式会社
■ オラクルマスター資格 (オラクルマスターとは
■ Oracle Web セミナー