クラウドで 伸びる人沈む人 |
|
|
|
Oracle10gの制御(コントロール)ファイル
<概要> コントロールファイルは、データベースの運用を管理するためのファイルです。 (はじめてだと、初期設定ファイルだの制御ファイルだの混乱しそうですが) オラクルというデータベースのなかでは、あちこちで色々な作業が行われていますが、 「その作業の指揮命令系統を一手に担っているファイル」なのです。 具体的には、作業手順書や計画書が書かれていると思ってください。 だから、コントロールファイルは、とっても重要なファイルです。 破損や消去したりすれば、データベースがそのものが動かなくなります。 だから、きちっとミラーリングして二重運用でも三重運用でもしておかないといけないですね。 じゃあ、具体的にはどうするのか。ここでは、そんなことを書いていきますね。 では、いってみます。 <1.コントロールファイルの場所)> まず、コントロールファイルって、どこに格納されているのでしょうか? 以下のSQLをたたいてみましょう。 SQL> select name from v$controlfile ここで表示されたname が全てのコントロールファイルです。 もし、ひとつしか表示されなかったならば、あまりよろしくありません。二重運用していないということです。 そのひとつが破損すれば、おしまいです。 通常は、2つ以上のファイルで運用するようにします。そのファイルがお互いのバックアップとなるわけです。 だから、保存先はフォルダ、もっといえばハードディスクが別れて格納されているほうが望ましいですね。 何故って?だって、ひとつのファイルが壊れたり消失したりしても別のファイルは生きている可能性が高いですから。 わかった。じゃあ、どうやってコントロールファイルは登録するのか?変更は?削除は? では、次にそれをみていきましょう。 <2.コントロールファイルの登録、変更、削除> じつは、コントロールファイルの登録、変更、削除は、以下の書式で同じコマンドでできます。 SQL> ALTER SYSTEM SET control_files = 'ファイル1', 'ファイル2', ・・・ SCOPE=SPFILE 以下の例だと、AAAフォルダや、BBBフォルダにAAA.CTLとBBB.CTL というコントロールファイルを追加したことになります。 SQL> ALTER SYSTEM SET control_files = 'C:\ORACLE\PRODUCT\10.1.0\ORADATA\ORCL\CONTROL01.CTL', 'C:\ORACLE\PRODUCT\10.1.0\AAA\AAA.CTL', 'C:\ORACLE\PRODUCT\10.1.0\BBB\BBB.CTL' SCOPE = SPFILE ※ ちなみに、SCOPE = SPFILE というオプションをつけないとエラーになります。 これは、再起動しないと反映しません。という意味です。 逆にいうと、SCOPE=SPFILE がなくても、ALTER SYSTEM SET が実行できるものは、 その場で即反映するし、かつ、再起動しても反映している。ということなのです。 ややこしいですが、わかりますでしょうか。では、再起動にいってみましょう。 <3.再起動で設定を反映させる> で、再起動すれば、コントロールファイルの設定が反映するわけですが、 ここで重要な注意点があります。 新たに追加したコントロールファイルは、物理的に存在しなければなりません。 だから、シャットダウンした後に、既存のコントロールファイルをコピペしておきましょう。 上の例でいうと、既存のコントロールファイルが、CONTROL01.CTLで、 AAA.CTLとBBB.CTLが新しく追加したコントロールファイルです。 CONTROL01.CTL → AAA.CTL, BBB,CTL とコピペしておきます。 (ディレクトリは、上のALTER SYTEME で指定したところね。念のため) これで、準備が整いました。さあ、起動してみましょう。 <4.実行例:再起動で反映> SQL> shutdown immediate ここで、コントロールファイルのコピペを行う。(上の例のように、もとのコントロールファイルをコピペ) SQL> startup |