 |
|
前のページ 1 2 3 4 次のページ
|
 |
データベースレプリケーションの方式
|
データベースレプリケーションには、RAIDなどOSやハードウェアで行う以外に、大きく分けて次の2つの方式があります。
|
 |
非同期マスタスレーブ
|
SQLの処理を行うマスターサーバは1つです。マスターでなされたデータの変更部分を、別のサーバ(スレーブ)に転送してデータベースのコピーを作ります。実装例として、Slony-Iなどがあります(図3)。
|
 |
図3:非同期マスタースレーブ方式のレプリケーション
|
同期マルチマスター
|
SQLの処理を行うマスターサーバが複数あり、それぞれのマスターがデータベースの複製を持ちます(図4)。各マスターは別々にSQLを処理し、データの変更は即時にすべてのマスターのデータにも繁栄されます。実装例として、PostgresForestやPGClusterなどがあります。
|
 |
|
 |
図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データ先端技術株式会社 鈴木 幸市
Unixにおける日本語ハンドリング、Oracleの移植、オブジェクトリレーショナルデータベースのエンジンの開発などに携わる。現在、NTTデータ先端技術にてLinux、PostgreSQLなどのオープンソースソフトウェアに関する技術を統括している。著書に「RDBMS解剖学」(翔泳社)、訳書に「オブジェクト指向データベース入門」(共立出版)など。
|
|
|
|