TOPサーバ構築・運用> はじめに
徹底比較!! PostgreSQL vs MySQL
徹底比較!! PostgreSQL vs MySQL

第4回:レプリケーションの比較
著者:NTTデータ   藤塚 勤也   2006/5/22
1   2  3  4  次のページ
はじめに

   今回はレプリケーションを取り上げます。まずレプリケーションとはどのようなものかを解説し、次にPostgreSQLとMySQLそれぞれが持つレプリケーションの基本構造を解説します。
レプリケーションとは

   RDBMSでいうプリケーションとは、ある1つのデータベースをまったく同じ内容で複製し、複製したデータベース(レプリカ)をネットワーク上に複数配置する機能です。レプリケーションにて作成した複製のデータベースは、様々な目的に活用できます。次にその使用例を紹介します。


レプリケーションの目的

   目的の1つには、バックアップデータとしての活用があります。テープ装置などの外部記憶装置にバックアップデータを作成するかわりに、他のサーバ上のディスク内にデータベースを複製し、それをバックアップデータとします。

   障害発生時には、バックアップデータとして作成した複製データベースを本番データベースとして使用し、障害復旧のための時間を短縮する効果があります。

   その他にも、処理性能の向上を目的として複製データベースを活用することもできます。アプリケーションからのデータベースに対するアクセスをいくつかの複製データベースに分散させ、本番データベースに対する処理の負荷を低減することができます。

   ただし、負荷分散効果があるのは検索処理のみです。なぜなら、レプリケーションしているすべてのデータベースは同じ内容であるため、検索処理はどれか1つのデータベースに対して行えば正しい結果を得ることができますが、更新処理はすべてのデータベースに結果を反映する必要があるため、負荷の分散が難しいからです。


レプリケーションの方式

   レプリケーションには、マルチマスタ方式とマスタスレーブ方式の2つがあります。次にこの2つの方式を示します。

マルチマスタ方式
本番データベースに対する更新がすべての複製データベースに遅延なく反映され、常に同じデータを格納する方式です。よって、本番/複製を問わずにすべてのデータベースは更新/検索ともに可能です。

マスタスレーブ方式
1つの本番データベースと複数の複製データベースの構成となり、本番データベースをマスタ、複製データベースをスレーブと呼びます。アプリケーションからの更新はマスタデータベースが受付け、マスタデータベースの更新データが順次スレーブデータベースに反映される方式です。よって、スレーブデータベースは検索用途に限定されます。

表1:レプリケーションの方式

   マルチマスタ方式にてレプリケーションが行われている状況では、アプリケーションはどのデータベースにアクセスしても同一の結果を得ることができます。一方のマスタスレーブ方式は、マスタデータベースとスレーブデータベースでは内容が異なる状態になることがあります。

   このようにマルチマスタ方式のレプリケーションの方が、マスタスレーブ方式に比べ優れているように思われます。しかし、マルチマスタ方式は遅延することなくすべてのデータベースを更新する必要があるため、レプリケーションしていない状態に比べて更新性能が劣化する可能性があったり、各データベースの整合性確保のために複雑な仕組みが必要であったりするなどのマイナス面もあります。

1   2  3  4  次のページ


NTTデータ  藤塚 勤也
著者プロフィール
株式会社NTTデータ   藤塚 勤也
基盤システム事業本部 オープンソース開発センタ シニアスペシャリスト。
日本タンデムコンピューターズ(現日本HP)を経て、2003年よりNTTデータにてOSS分野に参画。日頃はオリジナルOSSの開発や、OSSを用いたシステム構築への技術支援に従事。「RDBMS解剖学」(翔泳社)を共著。

INDEX
第4回:レプリケーションの比較
はじめに
  PostgreSQLとMySQLのレプリケーション
  PostgresForestの構成
  MySQL標準レプリケーション機能の構造