Shoeisha Technology Media

EnterpriseZine(エンタープライズジン)

EnterpriseZine(エンタープライズジン)

テーマ別に探す

12c R2ではじめるOracle Databaseのシャーディング

2017/03/13 06:00

 DBOnlineの読者ならシャーディングという言葉をご存知の方が多いでしょう。複数のサーバを使用して単一の論理データベースを構成する手法のことです。特長は、各サーバがハードウェアを共有することなく論理データベースを構成できる点にあります。そのため、必要に応じて後からサーバを追加し、ハードウェアの制限がない大規模なスケールが可能となります。シャーディングはオープンソースのデータベースで使用されるケースが多いですが、Oracle DatabaseでもOracle Database 12c Release 2(以下、12c R2)からシャーディングの機能が提供されました。今回は、Oracle Databaseのシャーディングについて機能と特長をご紹介します。

 一般的にシャーディングのメリットとして挙げられるのが「スケーラビリティ」です。シャーディングを構成する各サーバには単一の物理データベース(以下、シャード)が存在します。例えば、システムをスモールスタートしてデータ量やアクセス数の増加に合わせ、後からシャードを追加することができます。また、セール期間など一時的な高負荷が予測されるようなシステムでは、シャードを一定期間だけ追加して後から削除することもできるため、柔軟な構成が可能となります。

 サーバを用意してデータベースを都度作成するよりも、ボタン一つで簡単にサーバやデータベースを用意できるクラウド環境で利用するのに適したアーキテクチャと言えます。

 12cの“c”はクラウドを表しており、Oracle社はクラウドと相性がいいアーキテクチャを12c R2で実装したのではないでしょうか。

図1:シャーディングのメリット1
図1:シャーディングのメリット1

 その他にシャーディングのメリットとして挙げられるのが「可用性」です。シャーディング構成の場合、それぞれのサーバは独立して存在しているため、単一のサーバに障害が発生してもその他のサーバは影響を受けることがありません。そのため、障害が発生していないサーバへアクセスする処理は継続できます。図2のように、障害範囲を極小化することで高い可用性を得ることができます。

図2:シャーディングのメリット2
図2:シャーディングのメリット2

 では、シャーディングを利用する場合、一般的にどのような課題が考えられるでしょうか。以下にいくつか例を挙げます。

  •  データを全シャードで均等に分散するための事前設計やデータ挿入が必要となる
  •  データに接続するためには、欲しいデータがどのシャードに格納されているかを把握する必要がある
  •  複数台のシャードを構成するのに多くの手間と時間が発生する
  •  シャードを追加した際は新しいシャードにデータが格納されていないため、データを分散しなければいけない

 シャーディングを利用する場合はアプリケーションからの接続方法やデータの配置方法などいくつかの課題にぶつかります。

図3:シャーディングの課題
図3:シャーディングの課題

※この続きは、会員の方のみお読みいただけます(登録無料)。


著者プロフィール

  • 川合 裕太(カワイ ユウタ)

     株式会社アシスト データベース技術本部  入社以来フィールド・エンジニアとしてデータベース・システムの構築、Oracle Database Appliance環境構築などを担当。その他、Oracle教育セミナーの講師を経験し、現在はOracle Exadata Database Machine担...

バックナンバー

連載:Oracle Database 12cR2のすべて
All contents copyright © 2007-2017 Shoeisha Co., Ltd. All rights reserved. ver.1.5