[pgcluster: 735] Re: 部分レプリケーションについて

mitani mitani @ sraw.co.jp
2005年 3月 15日 (火) 11:05:18 JST


三谷@広島です.

> 構成
>  C1:クラスタサーバ1(マスタ)
> OS:Redhat 9
> DB:PostgreSQL 8.0.1
> PGCluster:PGCluster-1.3.0c
>  R1:レプリケーションサーバ
> OS:Redhat 9
> DB:PostgreSQL 8.0.1
> PGCluster:PGCluster-1.3.0c
>  ロードバランサは使用せず。
>  合計:2台

これはPGClusterのクラスタDB以外にPostgreSQL8.0.1を起動しているということ
でしょうか?
レプリケーションを行うためには,PostgreSQLにレプリケーション用のパッチを
あてる必要があります.(つまりそれがPGClusterのクラスタDBです)
素のPostgreSQLではレプリケーションできませし,レプリケーションサーバから
のレプリケーション要求も正しく処理することができません.

> 1.上記の構成での部分レプリケーションは可能でしょうか?
C1とR1のクラスタDBに「部分レプリケーション」の設定は可能です.

> 2.部分レプリケーションは、クラスタ間同士のみ可能で、
> クラスタ〜レプリケーション間では、不可能でしょうか?
C1内のクラスタDBとPostgreSQLのことを言われているのであれば,それはできま
せん.部分レプリケーション等,レプリケーションに関する設定はPGClusterの
クラスタDBに対してのみ有効です.

> 3.クラスタ〜レプリケーション間で、可能な場合、レプリケー
> ション側での、レプリケーションしないテーブルの更新は
> どの様に行えばよいのでしょうか?
部分レプリケーションは,レプリケーションしないテーブルを指定するものです.
更新等はそのクラスタDBに直接行います.

例えば...あまり良い例ではないかもしれませんが,

全国に40箇所ある支店毎にクラスタDBがあるとします.
支店のDBには
・「商品マスタテーブル」
・「売上げ記録テーブル」
・「売上げ集計テーブル」
があるとします.
で,「商品マスタ」と「売上げ集計」はレプリケーションし,「売上げ記録テー
ブル」はレプリケーションしないもの(部分レプリケーションの対象)とします.

レプリケーションしない「売り上げ」のデータは,各支店でそれぞれのクラスタ
DBに直接登録します.例えば,札幌支店の売上げは札幌支店のクラスタDBに随時
登録し,那覇支店の売上げは那覇支店のクラスタDBに随時登録します.
この「売上げ記録」は日毎に合計を「売上げ集計」に追加します.すると,全社
のクラスタDBに反映されます.また,「商品マスタ」は本社で更新すると全社の
クラスタDBに反映されます.

こんな感じで,「個々の売上げ」のように全国で大量に発生する更新処理は分散
し,更新頻度が少なく,参照頻度が多い「集計」や「商品マスタ」テーブルだけ
をレプリケーションすることでセッション負荷を分散することができます.

といった使い方を(部分レプリケーションは)想定しています.

仮定が多くて判り難かったですか?

=============================
STATUS:Windows対応調査中...
三谷 篤<mitani @ sraw.co.jp>
=============================




pgcluster メーリングリストの案内