第4回:データベースレプリケーション (2/4)

近未来データベース
近未来データベース

第4回:データベースレプリケーション
著者:NTTデータ先端技術  鈴木 幸市   2005/9/9
前のページ  1  2   3  4  次のページ
データベースレプリケーションの方式

   データベースレプリケーションには、RAIDなどOSやハードウェアで行う以外に、大きく分けて次の2つの方式があります。
  1. 非同期マスタースレーブ
  2. 同期マルチマスター
非同期マスタスレーブ

   SQLの処理を行うマスターサーバは1つです。マスターでなされたデータの変更部分を、別のサーバ(スレーブ)に転送してデータベースのコピーを作ります。実装例として、Slony-Iなどがあります(図3)。

Slony-I
GBorg -- The Development website
http://gborg.postgresql.org/project/slony1/projdisplay.php
非同期マスタースレーブ方式のレプリケーション
図3:非同期マスタースレーブ方式のレプリケーション


同期マルチマスター

   SQLの処理を行うマスターサーバが複数あり、それぞれのマスターがデータベースの複製を持ちます(図4)。各マスターは別々にSQLを処理し、データの変更は即時にすべてのマスターのデータにも繁栄されます。実装例として、PostgresForestやPGClusterなどがあります。

PostgresForest
NTT DATA - サービス&プロダクト
http://www.nttdata.co.jp/services/postgresforest/index.html
同期マルチマスターでのデータベースレプリケーション
図4:同期マルチマスターでのデータベースレプリケーション

   また、最近Slony-Iを同期マルチマスターにしたSlony-IIの検討も行われています。


データベースの複製は難しい

   データベースの複製の方式が2つあるのは、データベースの複製を作ることがそれほど簡単ではないからです。その理由について解説します。

   上で示したどの方法でも、SQLを使ってデータベースのレプリケーションを行います。簡単に図5の例で説明しましょう。

データベースの複製は難しい
図5:データベースの複製は難しい
(画像をクリックすると別ウィンドウに拡大図を表示します)

   データベースの複製を作るには、アプリケーションから出されたSQLをすべてのレプリケーションサーバで実行させればいいのですが、問題はその実行順序です。

   図5では、2つのアプリケーションが同時に、同じデータを書き換えています。この実行順序は、それぞれのサーバで実行しているOSのスケジューラで決まってしまいます。

   同じSQLを2つのレプリケーションサーバに渡しただけでは、図5のサーバA、サーバBの2つの結果のどちらになるかは実行してみなければわからず、結果として2つのレプリケーションサーバのデータは違うものになってしまい、レプリケーションになりません。

   SQLの実行順序を同じにしたとしても、データベース内部でのデータの書き換えの順序まで同じになるようにしなければなりません。これがデータベースレプリケーションでもっとも難しいことなのです。

前のページ  1  2   3  4  次のページ


NTTデータ先端技術株式会社 鈴木 幸市
著者プロフィール
NTTデータ先端技術株式会社  鈴木 幸市
Unixにおける日本語ハンドリング、Oracleの移植、オブジェクトリレーショナルデータベースのエンジンの開発などに携わる。現在、NTTデータ先端技術にてLinux、PostgreSQLなどのオープンソースソフトウェアに関する技術を統括している。著書に「RDBMS解剖学」(翔泳社)、訳書に「オブジェクト指向データベース入門」(共立出版)など。


INDEX
第4回:データベースレプリケーション
 はじめに
データベースレプリケーションの方式
 データベースのレプリケーションを考えるために
 グループコミュニケーション
近未来データベース
第1回データベースを取り巻く状況
第2回データベースのスケールアウト(前半)
第3回データベースのスケールアウト(後半)
第4回データベースレプリケーション
第5回データベース技術者を育むために

人気記事トップ10

人気記事ランキングをもっと見る

企画広告も役立つ情報バッチリ! Sponsored

ClickHouse Cloudが実現した広告運用SaaS「ATOM」のデータ基盤革新、パフォーマンスを向上しながら、運用負荷とコストを削減 11月11日 6:20 AIで開発が加速する時代、品質保証はどう変わる? Tricentisが示すAIエージェント活用の実像 11月9日 6:45 悪用までの猶予が「1分」に迫るフロンティアAI時代に開発と本番を貫く脆弱性管理が必要 10月29日 8:30 欧州CRA対応とSBOM運用。AI生成コードのOSS混入問題の対策とは ――スニペット単位で検出する「FossID」「Insignary Clarity」によるSBOM運用 9月16日 6:40 PostgreSQLからTiDBへ、稼働中SaaSで進める段階的DB移行の実践と再設計への展望 9月7日 6:30 機能安全開発におけるGoogleTestの活用を支援!「Parasoft C/C++test CT」で実現する効率化&AI連携 4月14日 6:30 【CNDW2025】Grafanaが明かす「オブザーバビリティの哲学」ー最小限の労力で実用的なインサイトを得るには 1月23日 6:30 【CNDW2025】プロダクト急増に備える基盤刷新 ーウェルスナビがECSからEKSへの移行で得た知見とは 1月15日 6:30 【CNDW2025】250環境を5人で運用、構築時間は30分に ーKINTOテクノロジーズが語るインフラ基盤組織の作り方 2025年12月18日 6:30 新たな自動化で熱視線! AIエージェントの「推論能力」を支える2つのコンポーネントとは? 2025年11月28日 6:30