本連載は、企業の成長に不可欠な「データ活用」を推進していくために必要なデータ基盤の基礎を“あらためて”解説していきます。今回は、データベースシステムに求められる非機能要件について整理し、中でも優先度の高い可用性要件を満たすデータベースシステムの構成について解説します。【更新版】
システムの要求仕様には「機能要求」と「非機能要求」(*)があります。
機能要求とは、利用者の要求を満たすためにソフトウェアが実現しなければならないシステムの動作や処理内容のことです。一方の非機能要求とは、機能要求以外の要求仕様のことです。例えば、性能や信頼性(可用性)、セキュリティなどに関する要件を指します(表1)。
非機能要求 | 説明 |
---|---|
可用性 | システムがどれぐらい障害に強く、安定して稼働すべきか要求する項目。平均故障間隔(MTBF)や平均故障修復時間(MTTR)で表現される |
スケーラビリティ | ユーザー数や処理量の増加に伴う負荷の増大にどの程度対応できるかを要求する項目。ハードウェアの台数を増やして対応するスケールアウトとハードウェアを高性能なものに置き換えるスケールアップがある |
性能 | システムの応答速度や処理のキャパシティーに対する要件。処理の平均もしくは最大応答速度やスループット(単位時間当たりの処理量)で表現される |
セキュリティ | システムのデータ保全をどのようにすべきか要求する項目。監査証跡の保存や暗号化、アクセス制御といったものが挙げられる |
トランザクション | 関連する複数の処理を行った際、整合性を保持するか要求する項目。Oracle Databaseにはトランザクション機能があるので、この要件を満たす |
ユーザビリティ | インタフェースの使いやすさを、どの程度、誰をターゲットに作成するか要求する項目 |
インターオペラビリティ | 組織内や企業間などでのシステム同士の接続性要件 |
ポータビリティ | 異なるハードウェアやソフトウェア環境で動作することを保証する性能 |
保守性 | システムメンテナンスにどれほど柔軟に対応できるか示す項目 |
再利用性 | そのソフトウェアを他のシステムでも利用できるか示す項目 |
運用容易性 | 教育や高いスキルを必要とせず運用可能か示す項目 |
表1 非機能要求の一覧 |
データベースシステムにおいても、これらの非機能要求を実現するハードウェアやソフトウェア(RDBMS:リレーショナルデータベース管理システム)の機能をうまく取り込んだシステムを構築することが求められています。
今回は、中でも重要な項目となる「可用性」に注目し、その可用性を実現するためのデータベースシステムの構成を考察していきます。
データベースシステムの可用性でデータベース管理者(DBA)が考えるべきことは、「どのポイントの可用性を高めるか」です。
例えば、シングルインスタンス構成のOracle Databaseを例に考えてみましょう。
Oracle Databaseは、データを格納するデータファイルとその他のファイルで構成されるデータベース、その管理を行うプロセス、そして、メモリ領域のインスタンスで構成されます。これが、最も基本的な構成であるシングルインスタンス構成です(図1)。
シングルインスタンス構成では、インスタンスとデータベースが1対1の関係となっています。そのため、インスタンスが稼働するサーバでハードウェア障害が発生すると、ハードウェアが復旧するまでサービスを提供できなくなります。また、データベースを構成するファイル群が格納されているストレージに障害が発生すれば、バックアップから復旧させるまで同じくサービスを提供できなくなります。
この「サーバ」と「ストレージ」に対する可用性をどのように考えるかが、データベースシステムの可用性要件を満たす上で必要となる最初の観点となります。
Copyright © ITmedia, Inc. All Rights Reserved.