PostgreSQLのレプリケーション設定

Webコンテンツの一部をPostgreSQLからプロバイドしていますが、やっつけで作った環境なのでPostgreSQLが単一障害点になっています。つまり、サービスしているPostgreSQLが落っこちたらサービス止まってしまう。

なのでPostgreSQLを多重化するためにPostgreSQL9.1でレプリケーションを実現します。本番環境に入れる前にまずは試験環境で設定がちゃんとできるか、またちゃんとデータをレプリカしてくれるか実験。

マスタ(試験)に本番環境のデータを投入。

なにやら使ってないデータベースがあるようなので、全部Drop。本番環境でdumpallしたファイルを投入。

マスタでいろいろ設定

postgresql.conf

以下の設定を追加。スタンバイサーバのアドレスを指定してもOKだと思う。面倒なのでアスタリで。

listen_addresses = '*'

あとアーカイブログの設定なども。

synchronous_standby_names='sr1'
archive_mode=on
archive_command = 'test ! -f /usr/local/pgsql/archive/%f && cp %p /usr/local/pgsql/archive/%f'
wal_level = host_standby
max_wal_senders = 4 

synchronous_standby_namesは後で設定する同期スタンバイサーバの識別子。スタンドバイサーバのrecovery.confで設定をいれるんですが、同じ文字列にしてあげます。
アーカイブログの出力先(上記例だと/usr/local/pgsql/archive)はinitdb後でも存在しないので、手動で作ってあげる。

% mkdir /usr/local/pgsql/archive
pg_hba.conf

レプリカ通信を許可する。Howtoだと別にユーザをつくって云々とかってあるんですが、これも面倒なので既存ユーザで。パスワードとかも別にいいよね。

host replication postgres  192.168.1.0/24  trust

ここまで設定ファイルを編集したら、pg_ctlで再起動。

% /usr/local/pg_ctl restart

ベースバックアップ実行

これがわかりにくい表現だとおもうな。スタンバイサーバとマスタサーバを同期させる。
スタンバイサーバ側にPostgreSQL9.1をインストールして、initdbなどを実施する前にこれを実施してマスタとのデータ同期をとる。
スタンバイサーバで実行します。-Dで指定しているディレクトリがあるとエラ−になるのでがっつり削除。

$  /usr/local/pgsql/bin/pg_basebackup -h 192.168.1.1 \
  -p 5432 -U postgres -D /usr/local/pgsql/data \
  --format=plain --checkpoint=fast --label=label1 \
  --progress --verbose

スタンバイサーバで設定

スタンバイには非同期と同期があるんだけど、今回はウェブでの参照ということで同期で設定。

recovery.conf

standby_mode = on
restore_command = 'cp /usr/local/pgsql/archive/%f %p'
primary_conninfo = 'host=192.168.1.1 port=5432 user=postgres application_name=sr1'

こっちでもarchiveディレクトリはないので手動で作成します。

postgres.conf

hot_standby = on

おお、これだけか。

postgresqlを起動

設定ファイルを編集したら、スタンドバイサーバのPostgreSQLを起動。

% /usr/local/pgsql/bin/pg_ctl start

私の環境ではこの段階でアーカイブがないとか云々と行ってきたので該当するアーカイブファイルを手動でマスタからコピーしてあげました。

今日やったのはここまで。ちょこちょことマスタでDBをイジってみましたがちゃんとレプリカしてくれる。。ように見えます。
もう少し検証してみます。

参考書はこちら。

WEB+DB PRESS Vol.65

WEB+DB PRESS Vol.65

  • 作者: 天尋左石,柄沢聡太郎,はまちや2,大塚弘記,松信嘉範,板垣貴裕,福岡博,大和田純,白土慧,太田昌吾,じゅんいち☆かとう,市川快,前田雅央,岩浅晃郎,原田均,小野修司,ミック,みやけん,長野雅広,おにたま,中島聡,清水亮,角田直行,WEB+DB PRESS編集部
  • 出版社/メーカー: 技術評論社
  • 発売日: 2011/10/22
  • メディア: 大型本
  • 購入: 12人 クリック: 177回
  • この商品を含むブログ (11件) を見る