データベースの設計や作成は、熟考のうえになされなければならない。配慮を欠いたデータベースは、必ず運用に支障をきたすだろう。では、どのような点に注意すべきだろうか?
前回は、データベースのインスタンスとその起動・停止方法についてお話しました。「インスタンス」とは、データベースシステムの単位を表す言葉でした。
次にOracleマイスターにとって必要なことは何でしょうか? それはデータベースの設計と作成です。データベースをOracleのインストール時に作成した方も多いと思いますが、デフォルトデータベースはあくまでも「勉強」や「お試し」用なのです。これは、実際に業務に使うにはロールバックの大きさやシステムの領域が不十分なので、実運用を始めたとたんに動かなくなってしまった、などという例を数え切れないほど耳にします。
データベース設計の検討事項
Oracleマイスターがデータベースを設計するときに、最低限考慮しなければならないポイントは以下のとおりです。
1.データベースの規模
設計するデータベースがどれほどの量のデータを格納する予定なのかということです。これにより、どの程度ディスクを使用するか見積もらなくてはなりません。
2.データ更新処理(トランザクション)の頻度と、その1回当たりの「大きさ」
データベースの更新処理がどの程度の規模で、どの程度の頻度で発生するのかということが設計に大きく影響します。1日に1度だけドカッとデータを入れ替えるだけで、ほとんどのユーザーは検索だけを行うようなデータベースもあるでしょう。また1分間(もしくは1秒間)に何十回と小さな更新処理が行われるような、コンビニのPOSレジシステムのようなデータベースも一般的です。このようなトランザクションの性質により、データベース設計は大きく変わってきます。
3.バックアップ計画
コンピュータを扱う人は、だれしも1度くらいはデータを消してしまったり、ディスクの故障などで痛い目に遭った経験があるでしょう。PCなら笑い話で済むかもしれませんが(もちろんそうでない場合もあるでしょうが)、大事なデータを扱うOracleマイスターにとっては笑い話では済みません。何はなくともバックアップですが、ただ単にバックアップをとればいいというものではありません。厳重にバックアップをとればとるほど「コスト」に跳ね返りますし、サービスレベルの低下(パフォーマンスの悪化やサービス時間の短縮)につながってしまいます。管理するデータの重要性に見合ったバックアップ計画を立てる必要があります。
4.運用計画
最後に大切なのが運用計画です。これは、どれくらいの頻度でデータベースを停止できるか、ということです。1日1回夜間に停止できるのか、3カ月に1回の定期点検のときだけなのか、はたまた1年365日まったく停止できないのか。これにより構成もバックアップ計画も大きく変わります。
例えば、1日1回データを入れ替えて、日中は検索だけ、というような場合は、更新処理の後にコールドバックアップ(データベースを停止してとるバックアップ)で十分です。また、ずっと停止できないのであれば、「アーカイブログモード」で運用していく必要があります(アーカイブログ運用については、後の回で詳しく述べる予定です)。
「データベースを設計する」とは、以上の点を考慮しながら「データベースを作成」し、「運用」していく計画を立てることなのです。
データベースの構成要素
データベースを設計し、作成するためには、データベースの構成要素をしっかりと理解しておかなくてはなりません。最初はなじみのない言葉が多くて分かりにくいかと思いますが、逆引き的に何度もそれぞれの要素の内容と役割を確認し、理解していきましょう。
データベースの構成要素には、大きく分けてOS(Linuxなど)にとって「ファイル」と認識されるものと、データベースの「内部」に作られるものに分けられます。
■OSの「ファイル」であるもの
- 初期パラメータファイル
- コントロールファイル
- REDOログファイル
- アーカイブログファイル
- データファイル
これらはOSにとってはただの「ファイル」であり、データベースだからといって(LinuxなどのOSにとって)特別なことはありません。よって、上記で述べた「コールドバックアップ」の場合は、これらのファイルすべてをバックアップすればよいことになります。つまり、データベースが停止している状態で単純にコピーコマンド(cp)やtarなどの通常のOSコマンドで、ほかのディスクやテープデバイスなどに退避しておけば十分というわけです。
■データベースの「内部」に作られるもの
- システム領域(システムテーブルスペース)
- システムテーブルとビュー
- ロールバックセグメント
- テンポラリテーブルスペース
- ユーザーテーブルスペース
これらの要素はデータファイルの中に作られます。テーブルやビューは、データファイルの中に作られたテーブルスペースの中に作成されます。
これらの構成要素は、「インスタンス」作成時にすべて作られなければなりません。次回から、それぞれについてもう少し詳しく見ていくことにします。
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- 連載:快速MySQLでデータベースアプリ!(全11回)
軽快な動作で知られるRDBMS、MySQLでDBアプリの構築を行う。MySQLのインストールに始まり、PerlやRubyなどのスクリプトでデータベースを操作する方法までを完全解説 - 連載:今から始める MySQL入門(連載中)
定番のLAMP(Linux+Apache+MySQL+PHP)構成でWebアプリケーション開発に挑戦! サンプルアプリの構築を進めながら、基礎知識や操作方法について詳しく解説する - 連載:Oracleマイスター養成講座(全6回)
本連載では、Oracleの管理・チューニング方法を紹介していく。これからOracleを始める人、そしてOracleをより深く理解したい人のための、一歩踏み込んだ実用講座 - 連載:DB2マイスター養成講座(全7回)
本連載では、DB2 UDBの実践的な運用・管理方法を紹介していく。DB2を利用するうえで必要な知識を、実運用を前提にDB2のプロが解説 - 特集:エンタープライズ市場に向かうMySQL 5.0[前編]
1月に公開された5.0アルファ版は大幅に拡張されており、エンタープライズ市場への進出を予感させる - 特集:Linuxで動くリレーショナルデータベース・カタログ
データベースサーバのOSとしてLinuxを採用するケースが増えている。Linuxで動作する7つの主なリレーショナルデータベースを紹介する。製品導入の際の参考にしてほしい