Oracleは起動する際に、必要な設定を準備しながら起動します。
起動準備には3ステップあります。
- NOMOUNT
- MOUNT
- OPEN
NOMOUNT→MOUNT→OPENという順で起動します。この流れをみていきます。
NOMOUNT
まず、Oracleは初期化パラメータファイルを読み込んでインスタンスを起動します。
初期化パラメータファイルとはPFILEもしくはSPFILEのことですね。各種設定値が記されたファイルです。
この初期化パラメータファイルを読み込んだ状態がNOMOUNT状態です。
つまり、NOMOUNT状態とはOracle設定値を読み込むステップです。
MOUNT
次にOracleは制御ファイルを読み込みます。CONTROL.CTLの事です。
制御ファイルはデータファイルやREDOログファイルの名前やパスを記したファイルです。この状態がMOUNT状態です。
つまり、MOUNT状態とはOracleファイルの関連付けるステップです。
OPEN
最後にOracleはデータファイル、REDOログファイルを読み込んでデータベースとして使用可能状態になります。これがOPEN状態です。
つまり、OPEN状態とはデータファイルをOPENしてデータベースを使用可能にするステップです。
Oracleファイル読み込みのステップ
このようにOracleは、初期化パラメータファイル→制御ファイル→データベースファイル・ログファイルと3ステップで順番にファイルを読み込んでアプリケーションを起動します。
- NOMOUNT・・・初期化パラメータファイル
- MOOUNT・・・制御ファイル
- OPEN・・・データベースファイル・ログファイル
Oracle以外のアプリケーションでそのアプリケーションが起動するステップなんて知らないし覚える必要もないですよね?でもOracleは覚えないといけませんよ。
なぜでしょうか?それは主に障害発生時にこの仕組みを利用するからです。詳細は後述します。
起動オプションのコマンドの使い方
では、コマンドを使ってOracleを起動してみましょう。まず、コマンドプロンプトでSQL PLUSをSYSDBA権限で起動します。
-- sysdba権限でsqlplusに接続する SQLPLUS / AS SYSDBA
-- NOMOUNTで起動する STARTUP NOMOUNT
-- MOUNTで起動する STARTUP MOUNT
-- OPENする STARTUP
これでOracleが起動しました。このSTARTUPコマンドだけの場合ははOPEN状態=データベースが使える状態です。
NOMOUNT、MOUNT状態で起動する場合は、STARTUPの後ろにMOUNT、NOMOUNTをつけるだけです。
これでNOMOUNT・MOUNT・OPENの3モードで起動できました。
NOMOUNT、MOUNTの使い方は?
通常はOPENのみを使用します。ではNOMOUNT・MOUNTはいつ使うのでしょうか?
Oracleが起動しない原因は?
例えば、NOMOUNT・MOUNTは障害時に使います。Oracleが起動しない障害が発生したとします・・・あせってしまいますが、そんな時に使います。
OPENで起動しないのならMOUNT状態で起動してみます。
MOUNTで起動できたとしたら、NOMOUNT、MOUNTには問題ありません。NOMOUNT→MOUNT→OPENの順で起動するので、NOMOUNT、MOUNTはOKです。
つまりOPEN時に何らかの障害が発生していると予想できます。OPENで使用するファイルとは・・・「データファイルやREDOログファイルがあやしいぞ」ということがわかります。
NOMOUNT、MOUNTはこのように障害の切り分けに使う事があります。
Oracleの起動(NOMOUNT・MOUNT・OPEN)のまとめ
- OracleはNOMOUNT→MOUNT→OPENという順で起動します
- STARTUPコマンドにオプションを指定することでこの3モードで自由に起動できます
- NOMOUNT、MOUNTは障害発生時によく使います
以上、Oracleno起動モードであるNOMOUNT・MOUNT・OPENの解説でした。
コメント