--------(--)

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

2011-11-06(Sun)

postgreSQL9.1で非同期レプリケーションを構築する(2)

$PGDATA=/mnt/pgsqlとします。
Master Server / Slave Serverの設定
(1).各サーバーでDBを初期化する。
コマンドは以下の通り。

$ cd /mnt
$ initdb --no-locale -E UTF8 -D data


(2).適当にテーブルを作成する
テーブルはMasterサーバーだけでよい。
SlaveはMasterからrsyncでコピーする。

$ createdb testdb
$ psql -c "CREATE TABLE hoge_table (
aa integer,
bb integer,
);"


(3).postgresql.confの設定
このファイルを$PGDATAにおきます。
これは、Master / Slave両方設定します。

archive_mode = on
archive_command = 'cp %p /mnt/pgsql/data/archive_log/%f'
wal_level = hot_standby
wal_buffers = 1MB
wal_writer_delay = 200ms
max_wal_senders = 2

hot_standby = on (slaveのみ)


(4).pg_hba.confの設定
このファイルを$PGDATAにおきます。
これは、Master / Slave両方設定します。
replicationとしてSlave2台を指定します。

host all all 192.168.0.0/16 trust
host replication all 192.168.11.201/32 trust
host replication all 192.168.11.202/32 trust


(5).slaveにrecovery.confを設定する
Slaveは起動時にMasterからデータリカバリーするためrecovery.confを使います。
このファイルを$PGDATAにおきます。

restore_command = 'cp /mnt/pgsql/data/archive_log/%f %p'
archive_cleanup_command = 'pg_archivecleanup /mnt/pgsql/data/archive_log %r'
standby_mode = 'on'
primary_conninfo = 'host=192.168.11.200 user=postgres port=5432'
trigger_file = '/tmp/trigger_file0'


(6).データコーピー
設定が終わったので、MaterサーバーのデータをSlaveへコピーします。
まず、Masterサーバーだけ起動します。

$ cd /mnt
$ pg_ctl -D data start


データ転送準備
転送用スクリプト
trans.shを作ります。以下のままコピー。

#!/bin/sh
psql -c "SELECT pg_start_backup('replication backup', true)" postgres
rsync -C -a --delete -e ssh --exclude postgresql.conf --exclude pg_hba.conf --exclude postmaster.pid \
--exclude postmaster.opts --exclude pg_log \
--exclude recovery.conf --exclude recovery.done \
/mnt/pgsql/data $1:/mnt/pgsql
psql -c "SELECT pg_stop_backup()" postgres

長ったらしいrsyncオプションに見えるがpostgresql.confとか、 pg_hba.confとか上書きしたくないものを指定しているたけである。
では転送を開始する。

$ ./trans.sh 192.168.11.201
$ ./trans.sh 192.168.11.202

実はpostgreSQL9.1からpg_basebackupというコマンドが追加されこの作業が楽になったらしいがまだ試してない。。。

これで転送完了。
では、Slaveを2つとも起動してみよう。
これでMaster/Slaveによるレプリケーションが構築できた。
次はpgpoolによる非同期レプリケーションだ。 つづく。


関連記事
スポンサーサイト

コメントの投稿

管理者にだけ表示を許可する

コメント

プロフィール

kumagonjp2

Author:kumagonjp2
Python,Django,R,Mongo,MySQL,Struts,Spring,データマイニングなどサーバー関係のメモを残していきます。

最新記事
最新コメント
最新トラックバック
月別アーカイブ
カテゴリ
雪が3Dで降るブログパーツ ver2

マウスで見る方向変えられます

検索フォーム
RSSリンクの表示
リンク
ブロとも申請フォーム

この人とブロともになる

QRコード
QR
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。