keyword 12 冗長化構成
データベースを用いる業務システムにおいては、障害が発生すると業務を継続できなくなり、ビジネス的に損害が発生することとなります。そうならないように、障害が発生しても業務を継続できるようにシステムを設計しなければなりませんが、アプリケーション上の対策には限界があります。そのため、各種のハードウェアの冗長化の考え方が導入されています。冗長化とは、最低限必要な量より多めに設備を用意しておき、一部の設備が故障してもサービスを継続して提供できるようにシステムを構築することを指します。
冗長化には各種ありますが、ディスクにおいてはデータのミラーリングや分散化して高速化や安全性の向上を図るRAID(Redundant Arrays of Independent〔Inexpensive〕 Disks)があります。RAIDにはいくつかの種類がありますが、主なRAIDについて取り上げます。
RAID0
複数のディスクを組み合わせ、ディスクに対する読み書きの処理を複数のディスクに対して同時並行的に実行することで、アクセス速度を高速化します。これを「ストライピング」とも呼びます(図25)。RAID0には、耐障害性が良くないという欠点があります。構成しているディスクのうち1台でも壊れてしまうと、壊れたところだけではなく全体への検索が不可能となります。

RAID1
複数のディスクを用意し、同一のデータを複数のディスクに書き込み、一方のディスクが故障しても、他方で処理を続行できるようにするものです。これを「ミラーリング」とも呼びます(図26)。RAID1の欠点としては、実際の格納サイズの2倍分のディスクが必要になる点が挙げられます。

RAID5
耐障害性の向上と高速化の条件を見たした構成です。RAID0のように各ディスクに分散してデータの書き込みを行ないますが、付け加えてディスク故障時に記録データの修復を行なうための「パリティ」と呼ばれる冗長コードを合わせて作成します。このパリティを各ディスクに分散して配置します。ディスクの故障時にパリティによってデータを修復します(図27)。RAID5の欠点は、実際のデータのサイズに付け加え、パリティ分のデータのサイズが必要となる点です。

RAID0+1
RAID0/1/5はそれぞれ異なるメリットとデメリットを持っていて万能とは言えません。そこでRAIDを組み合わせた技術が考えられました。組み合わせることにより、デメリットを軽減することが目的です。ここでRAID0+1を紹介します(図28)。この組み合わせのRAIDでは、RAID1により耐障害性を、またRAID0により高速化を実現します。ただし必要となるデ
ィスクの台数は最低でも4台となります。また、データベースにおいては、マシンを2台用意しておいて1台が故障した場合、もう1台のほうに切り替えるスタンバイデータベース(データガードと呼ぶ場合もある)もあります。

データベースを通常業務を行なうプライマリデータベースと障害に備えて待機させておく、スタンバイデータベースを構築しておきます。特定の間隔でプライマリデータベースに発生したログ情報をスタンバイデータベースに転送し更新することにより、スタンバイデータベース側も最新の状態に維持します。プライマリデータベースに障害が発生して使用できなくなった場合、スタンバイデータベースをプライマリデータベースに変更して業務が継続できるようにします。これを「フェイルオーバー」と言います(図29)。

レプリケーション
またレプリケーションと呼ばれる考え方もあります。レプリケーションとは負荷分散機能の1つです。あるデータベースとまったく同じ内容の複製(レプリカ)をネットワーク上に複数配置し、通信回線や1台1台のコンピュータにかかる負荷を軽減する仕組みです。例えば、東京周辺の人は東京のデータベースを検索し、大阪周辺の人は大阪にあるデータベースを検索します。
マスターデータベースとレプリカは、ネットワークを通じて互いにデータを交換し合い、常に内容が一致するようになっています。1箇所でデータを更新すると、マスターとすべてのレプリカに自動的に更新内容が伝わり適用されるように組まれます。この機能により、たとえ特定のデータベースがダウンしていても、正常に稼動しているほかのデータベースに接続できれば処理を継続できる可能性があるわけです(図30)。

クラスタ構成
また、クラスタ構成という考え方もあります。これは複数のコンピュータを接続し、専用のクラスタソフトを導入することにより、ネットワーク上から見るとあたかも1つのコンピュータのように処理を実行可能なシステム構成を指します。障害に強く処理も高速化されています。この考え方をデータベースレベルにも適用したものがクラスタ化データベースで、OracleではRAC(Real Application Clusters)として提供されています。
RACは、複数台のマシンとその複数台にまたがる共有ディスクを用意します。各マシンのメモリ部分でそれぞれインスタンスを動作させます。データベースの部分は共有ディスク上に構築し、各インスタンスと連携できるようにします。1台のマシンがダウンして、そのマシンのインスタンスが使用できなくなったら、もう1台のインスタンスに処理を転送して処理を継続できます。このRACはスタンバイデータベースなどと比較すると、マシンがフルに使用され、拡張性も高いので最近注目を浴びてきています(図31)。

さらに、ネットワークの二重化などもあります。いずれにせよ冗長化を行なうと必要な設備が増えるためにコストは増えますが、障害時の影響が大きい企業の基幹システムや決済系システムなどでは安定したサ
ービス提供のために、ごく一般的に各種の冗長化構成が採用されています。
以上、本パートでは基本キーワードをピックアップし解説してきましたがいかがでしたでしょうか。やや難しいものもあったかと思います。
冒頭でも説明しましたが、データベースにまつわるキーワードはほかにもたくさんあります。ここで取り上げたキーワードをベースにして、ほかのキーワードもゆっくりで構いませんので、勉強していってください。
