とあるITエンジニアたちの備忘録

新米エンジニア5人がお送りする、ちょっとためになる話

~データベースの起動~

みなさん、こんにちは。
どうも、さいばーきゃっとです。

 

今回は、データベースの起動について、解説していきます。

一言で「データベースを起動する」というと、パソコンを起動させる時のように物理的なスイッチを使用して、起動させることを思い浮かべる方は多いと思います。(実は僕もその一人でした。)

実は、データベースを起動するには、SYSDBA権限またはSYSIPER権限を持ったユーザでOracleデータベースに接続する必要があります。

さらに、「データベースを起動する」までには4つ段階があり、簡単に説明すると「インスタンスを起動して、データベースをオープンする」一連があります。

 

データベースの起動の仕組み

データベースを起動すると、データベース内部では以下の段階を経てデータベースが使用な可能状態になります。

f:id:cloudy0901:20161018065125p:plain

SHUTDOWN→NOMOUNT(インスタンスの起動)

この段階では、内部的に以下の処理が実行されます。

  • 初期化パラメータファイルの読み込み
  • SGAの割り当て
  • バックグラウンドプロセスの起動
  • アラートログファイル、トレースファイルのオープン

 

NOMOUNT→MOUNT(データベースのマウント)

この段階では、内部的に以下の処理が実行されます。

  • 制御ファイルのオープン
  • 制御ファイルに記載されている、データファイルとREDOログファイルの名前とステータス情報の取得

 

MOUNT→OPEN(データベースのオープン)

この段階では、内部的に以下の処理が実行されます。

  • データファイルのオープン
  • REDOログファイルのオープン

なお、データベースが「OPEN」状態になると、SYSDBA、SYSOPERなどの管理権限をもたない、一般ユーザーもデータベースにアクセスできるようになります。