データベースの設計や作成は、熟考のうえになされなければならない。配慮を欠いたデータベースは、必ず運用に支障をきたすだろう。では、どのような点に注意すべきだろうか?
前回は、データベースのインスタンスとその起動・停止方法についてお話しました。「インスタンス」とは、データベースシステムの単位を表す言葉でした。
次にOracleマイスターにとって必要なことは何でしょうか? それはデータベースの設計と作成です。データベースをOracleのインストール時に作成した方も多いと思いますが、デフォルトデータベースはあくまでも「勉強」や「お試し」用なのです。これは、実際に業務に使うにはロールバックの大きさやシステムの領域が不十分なので、実運用を始めたとたんに動かなくなってしまった、などという例を数え切れないほど耳にします。
Oracleマイスターがデータベースを設計するときに、最低限考慮しなければならないポイントは以下のとおりです。
設計するデータベースがどれほどの量のデータを格納する予定なのかということです。これにより、どの程度ディスクを使用するか見積もらなくてはなりません。
データベースの更新処理がどの程度の規模で、どの程度の頻度で発生するのかということが設計に大きく影響します。1日に1度だけドカッとデータを入れ替えるだけで、ほとんどのユーザーは検索だけを行うようなデータベースもあるでしょう。また1分間(もしくは1秒間)に何十回と小さな更新処理が行われるような、コンビニのPOSレジシステムのようなデータベースも一般的です。このようなトランザクションの性質により、データベース設計は大きく変わってきます。
コンピュータを扱う人は、だれしも1度くらいはデータを消してしまったり、ディスクの故障などで痛い目に遭った経験があるでしょう。PCなら笑い話で済むかもしれませんが(もちろんそうでない場合もあるでしょうが)、大事なデータを扱うOracleマイスターにとっては笑い話では済みません。何はなくともバックアップですが、ただ単にバックアップをとればいいというものではありません。厳重にバックアップをとればとるほど「コスト」に跳ね返りますし、サービスレベルの低下(パフォーマンスの悪化やサービス時間の短縮)につながってしまいます。管理するデータの重要性に見合ったバックアップ計画を立てる必要があります。
最後に大切なのが運用計画です。これは、どれくらいの頻度でデータベースを停止できるか、ということです。1日1回夜間に停止できるのか、3カ月に1回の定期点検のときだけなのか、はたまた1年365日まったく停止できないのか。これにより構成もバックアップ計画も大きく変わります。
例えば、1日1回データを入れ替えて、日中は検索だけ、というような場合は、更新処理の後にコールドバックアップ(データベースを停止してとるバックアップ)で十分です。また、ずっと停止できないのであれば、「アーカイブログモード」で運用していく必要があります(アーカイブログ運用については、後の回で詳しく述べる予定です)。
「データベースを設計する」とは、以上の点を考慮しながら「データベースを作成」し、「運用」していく計画を立てることなのです。
データベースを設計し、作成するためには、データベースの構成要素をしっかりと理解しておかなくてはなりません。最初はなじみのない言葉が多くて分かりにくいかと思いますが、逆引き的に何度もそれぞれの要素の内容と役割を確認し、理解していきましょう。
データベースの構成要素には、大きく分けてOS(Linuxなど)にとって「ファイル」と認識されるものと、データベースの「内部」に作られるものに分けられます。
■OSの「ファイル」であるもの
これらはOSにとってはただの「ファイル」であり、データベースだからといって(LinuxなどのOSにとって)特別なことはありません。よって、上記で述べた「コールドバックアップ」の場合は、これらのファイルすべてをバックアップすればよいことになります。つまり、データベースが停止している状態で単純にコピーコマンド(cp)やtarなどの通常のOSコマンドで、ほかのディスクやテープデバイスなどに退避しておけば十分というわけです。
■データベースの「内部」に作られるもの
これらの要素はデータファイルの中に作られます。テーブルやビューは、データファイルの中に作られたテーブルスペースの中に作成されます。
これらの構成要素は、「インスタンス」作成時にすべて作られなければなりません。次回から、それぞれについてもう少し詳しく見ていくことにします。
Copyright © ITmedia, Inc. All Rights Reserved.