クラウドで 伸びる人沈む人 |
|
|
|
Oracleのアーキテクチャとファイルの関係を知る
<概要> オラクルというソフトウェアを動かすためには、たくさんのファイルが必要です。たくさんありすぎて訳がわからなくなっている方も多いかもしれません。 何を隠そう、私も最初は訳がわからなかった。 インストール後に、たくさんのディレクトリとファイルができて、「なんじゃこれ?」という感じで、触ることもできませんでした。 だから、バックアップといえば、いつもエクスポートそしてインポート。 でもね、勉強していくと・・・・ 結果として、以下のことがわかるのです。 ●バックアップということに限ってみれば、覚えるファイルは5つだけで十分なのです。 ・パラメータ(初期設定)ファイル ・制御(コントロール)ファイル ・データファイル ・REDOログファイル ・アーカイブログファイル この5つのファイルとオラクルのアーキテクチャを学習しておけば、 バックアップの基本は押さえたことになります。 では、まずは5つのファイルのアーキテクチャについて、勉強していきましょう。 ではいってみます。 <1.パラメータ(初期設定)ファイル> いわゆる初期設定を定義しています。 メモリ領域の割当とか、書き込み可能フォルダとか、コントロールファイルの場所とか。 そんなことを設定しますね。 で、重要なのが、 ●「データベースが普通に運用されている間は、このファイルは変更されません。」 ということです。 だから、通常に運用している時は、設定を変更したときだけバックアップをとれば、それでいいわけです。 リアルタイムにバックアップを取得する必要など全然ありません。 さらに勘違いしやすいのが、 ●「このファイルは、サーバー稼動中も変更できてしまう」 ということです。 通常のサーバーを運用していると、初期設定ファイルを書き換えて、サーバーを再起動して、設定を反映させる。 そういうプロセスですね。逆にいうと、再起動しないと設定変更ができない。 例えば、ApacheやBindサーバーが、そういうつくりです。設定ファイル変更→再起動→設定反映 と。 でも、オラクルの場合、たぶんOracle8あたりから、サーバーを再起動しなくても設定変更できてしまうのです。 (Alter system という命令で、できてしまう) で、ややこしいのが、全部が全部、サーバー稼働中に設定変更できないのです。 やっぱり、再起動しないと設定変更が反映されないものもある。 そういうことなのです。だから、このことをしっかり覚えておかなければなりません。 具体的な話は後述します。 <2.制御(コントロール)ファイル> データベースの運用を管理するためのファイルです。だから、当然、運用中にどんどん変化するファイルです。 何を管理するのかというと、おもにはデータベースの整合性をもたせるための管理をしています。 簡単にいうと、こういうことです。 データベースの運用は作業の積み重ねですね。その作業は当然のことながら、整合性があわないと困ります。 データベースの中で、こっちでは作業を開始してしまっているのに、こっちでは何もやってないとか。 そんなことがおきないように、このファイルが制御しているというわけです。 だから、このファイルには作業の順番なんかが、記載されているわけです。とっても重要なファイルなのです。 パラメータファイルのように、一度設定すると、運用中は変化の無いファイルと違います。 ●当然、運用中にどんどん更新されるファイルです。 <3.データファイル> オラクル(Oracle)は、データベース管理のソフトウェアですから、通常使っていると、表(テーブル)のデータが増えたり減ったりします。 このデータファイルは、文字通り、そのデータが格納されているファイルです。 表(テーブル)のデータがここに入っていると覚えておきましょう。 データが入っているので、このファイルは、とにかくファイルのサイズがでかいです。 だから、このファイルの大きさなどを設定して、ディスクがパンクしたりしないようにするのですが、 まあ、その話は別の機会にでも。 <4.REDOログファイル> 制御(コントロール)ファイルで、作業の順番を記載するわけですが、 じゃあ、具体的に何をやったんだ?その作業記録は残っているのか? 当然、そう聞きたくなりますよね。その具体的な作業記録が、このREDOログファイルです。 とにかく作業するたびに、作業記録が、このREDOログファイルに追加されていきます。 でも永遠に追加され続けると、ファイルサイズがひたすら大きくなって困りますね。 そこで、ファイルがある程度の大きさになると、ファイルへの書き込みを停止します。 そして、新たに別のファイルに書き出すのです。 つまり、このREDOログファイルは複数あって、ひとつが現在作業を書き込みされているファイル。 (これをカレントファイルと呼びます。) 別のファイルは、お休み中。そんなかんじになっています。 で、カレントファイルがいっぱいになると、今までお休み中だったファイルに書き込みが開始されるわけです。 そして、今までカレントだったのものが、今度はお休みとなるわけです。 で、新たに書き出したファイルもいっぱいになると、また交代です。 こうして複数のファイルでローテーションを組んで、作業記録を残していくわけです。 ローテーションで残しているので、ローテーションの一巡目を過ぎると、昔の作業記録は、どんどん消去していきます。 つまり複数のREDOログファイル分の大きさ分しか、作業記録は残らないというわけです。 そんな仕組みになっています。 <5.アーカイブ(Archive)ログファイル> これからアーカイブログファイルの説明に入りますが、もう想像がつくのではないでしょうか。 REDOログファイルがローテーションで作業記録を残していった時に、昔の作業記録はどんどん削除されているわけです。 でも、昔の作業記録も永遠に残しておきたい。そうしたい場合もありますよね。 その記録を残しておくファイルが、アーカイブファイルです。まさに、archive(古書)という意味どおりです。 具体的には、カレントのREDOログファイルがいっぱいになって、 次のファイルに書き込みを開始する瞬間に、アーカイブファイルが作成されます。 だから、このファイルは永遠に増え続けるだけです。REDOログのようにローテーションするわけではありません。 ひたすら、作業記録を残し続ける。archiveする。 そう覚えておきましょう。 |