2010年9月18日土曜日

PostgreSQLでウォームスタンバイ(pg_standby)

スズキです。

PostgreSQLのインストールが終わったら、
http://blog.suz-lab.com/2010/09/centospostgresql84.html
次は"pg_standby"を利用したウォームスタンバイです。

ですので、マスターサーバとスレーブ(スタンバイ)サーバが登場します。

▼ まずは両サーバでの作業です。

(1) 下記で"pg_standby"を利用できるようにします。

# yum -y install postgresql84-contrib

(2) "rsync"で"/var/lib/pgsql/backups/archive"に
アーカイブログを転送できるようにします。

# yum -y install xinetd
# yum -y install rsync

--------【/etc/rsyncd.conf】--------
[archive]
path=/var/lib/pgsql/backups/archive
read only=false
uid = postgres
gid = postgres
--------

# chkconfig xinetd on
# chkconfig rsync on
# /etc/init.d/xinetd start

詳しくはこちら
http://blog.suz-lab.com/2010/03/centosrsync.html

▼ 次にマスターサーバです。

(1) PostgreSQLを起動する前に、"/var/lib/pgsql/data"をバックアップして、
スレーブサーバに転送しておきます。

(2) 設定ファイル(/var/lib/pgsql/data/postgresql.conf)を下記のようにして、
アーカイブログをスレーブサーバに転送するようにします。

--------【postgresql.conf】--------
...
archive_mode = on
archive_command = 'rsync %p pg-slave::archive/%f'
archive_timeout = 10
...
--------

(3) PostgreSQLを起動します。

# /etc/init.d/postgresql start

▼ 最後にスレーブサーバです。

(1) まず、"/var/lib/pgsql/data"をマスターサーバのものにします。

(2) 下記のような"/var/lib/pgsql/data/recovery.conf"を用意します。

--------【recovery.conf】--------
restore_command = '/usr/bin/pg_standby -l -t
/var/lib/pgsql/data/failover /var/lib/pgsql/backups/archive/ %f %p %r'
--------
# ll recovery.conf
-rw------- 1 postgres postgres 116 9月 17 22:58 recovery.done

(3) PostgreSQLを起動するとリカバリーモードで起動します。(接続はできません)

# /etc/init.d/postgresql start

(4) "/var/lib/pgsql/data/failover"を作成するとファイルオーバーして、
接続できるようになります。

# touch /var/lib/pgsql/data/failover

次は、pgpool-II...
--------
http://www.suz-lab.com

0 コメント: