0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Oracle DBの起動シーケンスの理解 ~後輩にしてあげたいOracleの小話~

Posted at

前置き

Oracleの起動シーケンスは基本中の基本。
これをもう少し掘り下げて、ただの知識ではなく使える知識になるように後輩に話してみました。

オラクルデータベースの起動状態の遷移

Oracleを使っている人なら以下の4つの状態は誰でも知ってますね。

  • SHUTDOWN
    • 何も起動していない停止状態
  • NOMOUNT
    • インスタンスが起動している状態
  • MOUNT
    • データベースをマウントしている状態
  • OPEN
    • データベースを利用できる状態

どうしてこんなシーケンス?

では、どうしてこんな風に状態遷移して起動するのでしょうか?
1つずつ順を追って説明します。

SHUTDOWN

インスタンスが存在しない状態。
インスタンスはオラクルのバックグラウンドプロセスとそれが確保しているメモリを指します。
要はOS上のオラクルのプロセス群です。

NOMOUNT

処理をするためにはインスタンスを起動する必要があります。
このインスタンスのみを起動した状態がNOMOUNTになります。

インスタンスは前述の通りバックグラウンドプロセスメモリのセットです。

・どれくらいメモリを確保するのか
・どこにログを出す場所
・DBのファイル(正確には制御ファイル)の場所

など、プロセスについて色々指定したいことがあります。それらをまとめたものが初期化パラメータファイルです。

プログラムで固定値にすることなく、柔軟にニーズに合った資源割り当てをしたプロセスの起動のために、
初期化パラメータファイルを読み込んでオラクルはインスタンス起動をしています。

MOUNT

プロセス(インスタンス)が起動すると、そのプロセスで自在にファイルを扱えます。
オラクルだけでなく、コンピュータ全般そいういうものですね。

データベースはインスタンスで扱うデータファイルを指します。
初期化パラメータファイル制御ファイルの場所が記載されています。
制御ファイルにはデータベースのファイルの場所や停止時のDBの状態などが記されています。

起動したプロセスが指定されたデータファイルをすべてつかむところまで完了するとMOUNT状態になります。

OPEN

ファイルをつかんだら制御ファイルの情報とデータファイルの状態を比較します。
ここで制御ファイルとデータファイルの間に不整合がないことが確認できるとOPEN状態になります。

不整合を解消(リカバリ)をしないとOPENはできません。

#状態遷移に着目してまとめ

状態にフォーカスして説明するのが一般的ですが、
私は状態遷移をベースにして理解をしています。

こうすることで、トラブルが起きた時にどこを調べるかがとらえやすくなるからです。

SHUDTOWN ⇒ NOMOUNT

  • 初期化パラメータファイルを読み込んでインスタンスを起動を完了させる。
  • ここで失敗するケースは以下が考えられる
    • 初期化パラメータファイルが見つからない
    • 初期化パラメータファイルの設定が誤っている
    • プロセス起動やメモリ割り当てのためのOSリソースの不足

NOMOUNT ⇒ MOUNT

  • 初期化パラメータファイルから制御ファイルを探し、制御ファイルからデータベースファイルをつかむところまで完了させる。
  • ここで失敗するケースは以下が考えられる
    • 初期化パラメータで指定した場所に制御ファイルがない
    • 制御ファイルが破損している
    • 制御ファイルに指定されているデータファイルがない

MOUNT ⇒ OPEN

  • データファイルをチェックして問題なければ全てのユーザにDBを開放する。
  • 前回のDB停止がクラッシュの場合クラッシュリカバリ(主にコミットしていない更新のロールバック)を行う。
  • 問題がある場合には自動ないしはDBA作業でリカバリをして起動させる必要がある
  • ここで失敗するケースは以下が考えられる
    • データファイルの不整合
    • 不整合の解消に必要なREDOログ/アーカイブログがない
    • DBリストアをしたため、リカバリ(障害直前までのアーカイブログの適用)が必要

それぞれのシーケンスで何をするかを覚えておくことは障害調査に必須です。
是非整理して覚えておきたいですね。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?