PR

非同期レプリケーション!

2008年7月24日(木)
SRA OSS, Inc. 日本支社 マーケティング部

注意点

 設定に入る前に2つの点について注意してください。

 1つ目が「レプリケーションのタイムラグ」です。先ほど説明したように、Slony-Iのレプリケーションは非同期であるため、更新がスレーブに反映されるまでにタイムラグがあります。

 pgpool-IIの負荷分散先がSlony-Iのスレーブであった場合、自分でINSERTしたデータであっても直後にSELECTすると存在しない可能性があります。

 もし、このようなタイムラグを許容できないクエリがある場合は、「第3回:レプリケーション&負荷分散!(http://www.thinkit.co.jp/article/98/3/)」で紹介した負荷分散をさせたくない場合と同様、SELECT文の先頭にコメントを付けます(実際の文字列は何でも構いません)。こうすると、負荷分散先に関係無く、SELECT文をマスタに対して実行します。

 2つ目が「DML以外のクエリ」です。pgpool-IIのレプリケーションはクエリ自体をレプリケーションするため、CREATE TABLEやALTER TABLEなどのDML以外のクエリもレプリケーションすることができますが、Slony-Iは、INSERT、UPDATE、DELETEなどのテーブルに対して行われたデータの変更しかレプリケーションしません。

 Slony-Iでのレプリケーションするテーブルの追加の方法については、Slony-Iのマニュアルをご覧ください。

 次からはいよいよ、設定方法について説明していきましょう。

pgpool.confの設定とSlony-Iの設定

 では、pgpoolAdminからpgpool.confの設定を以下のように行いましょう。

・「Replication」セクションの「replication_mode」のチェックを外す
・「Others」セクションの「master_slave_mode」をチェックする
・「Others」セクションの「load_balance_mode」をチェックする

 ここまでの設定が終わったら、画面最下部の「更新」ボタンを押します。

 次はSlony-Iの設定です。本連載ではSlony-Iの機能の詳細までは解説しませんが、設定までの簡単な流れを紹介します。「第3回:レプリケーション&負荷分散!(http://www.thinkit.co.jp/article/98/3/)」と同様、同じマシン上のポート5432と5433で2つのPostgreSQLが起動しているものとします。

 ではSlony-Iをインストールします。Slony-IのWebサイト(http://slony.info)からslony1-1.2.14.tar.bz2をダウンロードし展開します。今回は、Slony-Iに付属のPerlで書かれた管理スクリプト群を使うので、configureのオプションに--with-perltoolsを付加します。

$ ./configure --with-pgconfigdir=/usr/local/pgsql/bin --with-perltools
$ make && make install

 そして、/usr/local/etcにslon_tools.confを作成します(図2)。このファイルの設定内容については、同じディレクトリにあるslon_tools.conf.sampleを確認してください。

著者
SRA OSS, Inc. 日本支社 マーケティング部
SRA OSS, Inc. 日本支社マーケティング部では、PostgreSQL/PowerGresのサポート、コンサルティング、販売を中心にビジネス展開しています。pgpoolのサポートやpgpoolを使った大規模システムのコンサルティングの実績もあります。http://www.sraoss.co.jp/

Think IT会員サービス無料登録受付中

Think ITでは、より付加価値の高いコンテンツを会員サービスとして提供しています。会員登録を済ませてThink ITのWebサイトにログインすることでさまざまな限定特典を入手できるようになります。

Think IT会員サービスの概要とメリットをチェック

他にもこの記事が読まれています