http://www.shift-the-oracle.com/inside/oracle-startup-process.html Oracle の状態には *停止状態 *NOMOUNT 状態 *MOUNT 状態 *OPEN状態(起動完了) がある。 {{img oracle_startup.png}} !!!STARTUP NOMOUNT NOMOUNT のフェーズにおいては、パラメータファイル(pfile/spfile)の読み込み、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 操作は失敗する。 コントロールファイルにはオラクルの物理的な構成(各種ファイル情報)が保存されている最重要ファイルの1つ。 データベースへのリストア/リカバリ処理を行なうこともできるフェーズ。 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 ... コントロール・ファイルが管理している情報(データベースの構造情報を管理する制御ファイル) *データベース名 *データベースを作成したときのタイムスタンプ *対応するデータファイルと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 表 がオープンされることで データ・ディクショナリ を参照することができるようになる。 {{category2 データベース,Oracle}}