次のページはじめに今回はレプリケーションを取り上げます。レプリケーションとはどのようなものかを解説し、次にPostgreSQLとMySQLそれぞれが持つレプリケーションの基本構造を解説します。レプリケーションとはRDBMSでいうプリケーションとは、ある1つのデータベースをまったく同じ内容で複製し、複製したデータベース(レプリカ)をネットワーク上に複数配置する機能です。レプリケーションにて作成した複製のデータベースは、様々な目的に活用できます。次にその使用例を紹介します。目的の1つには、バックアップデータとしての活用があります。テープ装置などの外部記憶装置にバックアップデータを作成するかわりに、他のサーバ上のディスク内にデータベースを複製し、それをバックアップデータとします。障害発生時には、バックアップデータとして作成した複製データベースを本番データベースとして使用し、障害復旧のための時間を短縮する効果があります。その他にも、処理性能の向上を目的として複製データベースを活用することもできます。アプリケーションからのデータベースに対するアクセスをいくつかの複製データベースに分散させ、本番データベースに対する処理の負荷を低減することができます。負荷分散効果があるのは検索処理のみです。レプリケーションしているすべてのデータベースは同じ内容であるため、検索処理はどれか1つのデータベースに対して行えば正しい結果を得ることができますが、更新処理はすべてのデータベースに結果を反映する必要があるため、負荷の分散が難しいからです。レプリケーションの方式レプリケーションには、マルチマスタ方式とマスタスレーブ方式の2つがあります。次にこの2つの方式を示します。本番データベースに対する更新がすべての複製データベースに遅延なく反映され、常に同じデータを格納する方式です。よって、本番/複製を問わずにすべてのデータベースは更新/検索ともに可能です。マスタスレーブ方式1つの本番データベースと複数の複製データベースの構成となり、本番データベースをマスタ、複製データベースをスレーブと呼びます。アプリケーションからの更新はマスタデータベースが受付け、マスタデータベースの更新データが順次スレーブデータベースに反映される方式です。よって、スレーブデータベースは検索用途に限定されます。表1:レプリケーションの方式マルチマスタ方式にてレプリケーションが行われている状況では、アプリケーションはどのデータベースにアクセスしても同一の結果を得ることができます。一方のマスタスレーブ方式は、マスタデータベースとスレーブデータベースでは内容が異なる状態になることがあります。このようにマルチマスタ方式のレプリケーションの方が、マスタスレーブ方式に比べ優れているように思われます。マルチマスタ方式は遅延することなくすべてのデータベースを更新する必要があるため、レプリケーションしていない状態に比べて更新性能が劣化する可能性があったり、各データベースの整合性確保のために複雑な仕組みが必要であったりするなどのマイナス面もあります。シニアスペシャリスト。日本タンデムコンピューターズ(現日本HP)を経て、2003年よりNTTデータにてOSS分野に参画。日頃はオリジナルOSSの開発や、OSSを用いたシステム構築への技術支援に従事。「RDBMS解剖学」(翔泳社)を共著。この記事の評価をお聞かせくださいボタンをクリックしますとウインドウが開きます。