クラウドで 伸びる人沈む人 |
|
|
|
Oracle10gの起動実験 mount状態とは何か、実験してみる
<概要> オラクルの起動は、SQL> startup SQL> startup mount SQL> startup nomount とあります。DBA管理者の方は、マウント状態にして色々作業をすると思います。 では、このマウント状態とは一体なんなのでしょうか? 具体的に言うと、どのファイルまで読み込んでいるのでしょうか? ちょっと実験してみました。 <1.ファイルの確認> オラクルの起動に必要なファイルは、以下の4つです。 ・初期設定ファイル ・コントロールファイル ・REDOログファイル ・データファイル 初期設定ファイルは、 C:\ORACLE\PRODUCT\10.1.0\DB_1\DATABASE\ 他のファイルは、 C:\ORACLE\PRODUCT\10.1.0\ORADATA\ORCL にあると思います。(orclは、デフォルトのSIDですので、各自読み替えてください) で、ここで復習しておきたいのが、以下のことです。 初期設定ファイルには、コントロールファイルの場所が記述されています。 コントロールファイルには、データファイルとREDOログファイルの場所が記述されています。 <2.マウント状態の起動を検証する> ●初期設定ファイルには、コントロールファイルのファイル名が記述されています。(実際に、初期設定ファイルを開いてみるとわかります) ファイル名だけ記載されているのなら、コントロールファイルは、その内容が無茶苦茶であっても 初期設定ファイルに記述されたファイル名で存在さえすれば、マウントで起動するのか? という疑問がわきました。 ということで、初期設定ファイルのファイル名をそのままに、ファイルの中身を 適当に変更して起動してみました。 SQL> startup mount ORA-00205: error in identifying controlfile, check alert log for more info エラーが出ました。やっぱりコントロールファイルの中身をみているようですね。 では、どこまで中身を見ているのでしょうか。 色々実験した結果、以下のことがわかりました。 初期設定ファイルには、db_name と control_file というパラメータがあります。 このパラメータとコントロールファイルの中身が一致していないと、mountで起動することができません。 では、コントロールファイルに記述されているデータファイル名とREDOログファイル名は、 どうなのでしょうか。次の実験にいってみましょう。 <3.データファイルとREDOログファイルは存在しなくても、マウント起動できる> ●次に、だったらREDOログファイルとデータファイルは存在しなくても、 mountの起動ができるのではないか?ということです。 以下の画面のように、REDOログファイルとデータファイルを削除して、 コントロールファイルだけにしてmountで起動してみました。 SQL> startup mout ORACLE instance started. Total System Global Area 171966464 bytes Fixed Size 787988 bytes Variable Size 145750508 bytes Database Buffers 25165824 bytes Redo Buffers 262144 bytes Database mounted. どうやら、うまくいったようです。 <4.マウント状態の結論> 初期設定ファイルとコントロールファイルが存在しないとマウント状態で起動できない。 データファイルとREDOログファイルが存在しなくとも、マウント状態で起動できる。 参考 SQL> startup nomount は、初期設定ファイルだけで起動します。コントロールファイルは必要ありませんでした。 |