pgpool-II を使った PostgreSQL のオンラインリカバリ(インストール編)

あとで、修正する

PostgreSQL が稼動してるサーバ側の設定

PostgreSQL を稼動させているサーバ pgsql1(192.168.1.151) と pgsql2(192.168.1.152) で
pgpool 経由での接続を許可する

  • /usr/local/pgsql/data/postgres.conf
# NICを 1枚しか挿してないので
listen_address = '*'

pgpool を動かすサーバ

PostgreSQL のインストール

tar zxf postgresql-8.3.5.tar.gz
cd ../src/postgresql-8.3.5/
./configure
make && make install
chown -R postgres:postgres /usr/local/pgsql

pgpool-II のインストール

tar zxf pgpool-II-2.1.tar.gz
cd pgpool-II-2.1/
./configure \

    • prefix=/usr/local/pgpool2 \
    • with-pgsql-libdir=/usr/local/pgsql/lib

make && make install
chown -R postgres:postgres /usr/local/pgpool2

su - postgres

  • postgres ユーザの環境変数 PATH に /usr/local/pgsql/bin を追加

export PATH=$PATH:/usr/local/pgsql/bin

  • recovery 関連のインストール

cd /usr/local/src/pgpool-II-2.1/sql/pgpool-recovery/
make && make install

ついでに pgpool2 にも PATH を通しておく
  • ~/.bashrc
export PATH=$PATH:/usr/local/pgsql/bin:/usr/local/pgpool2/bin
設定ファイルの作成

cd /usr/local/pgpool2/etc
cp pcp.conf.sample pcp.conf
cp pgpool.conf.sample pgpool.conf
cp pool_hba.conf.sample pool_hba.conf

pgpool2:027adbeda60c4110f38c4d484c6f9731
  • pgpool.conf
backend_hostname0 = '192.168.1.151'
backend_port0 = 5432
backend_weight0 = 1
backend_data_directory0 = '/usr/local/pgsql/data'
backend_hostname1 = '192.168.1.152'
backend_port1 = 5433
backend_weight1 = 1
backend_data_directory1 = '/usr/local/pgsql/data'
  • pool_hba.conf
host    all         all         127.0.0.1/32          trust
host    all         all         192.168.1.151         trust     
host    all         all         192.168.1.152         trust
host    all         all         192.168.1.155         trust
ライブラリとかの配布
  • /usr/local/src/pgpool-II-2.1/sql/pgpool-recovery/ にある pgpool-recovery.so と pgpool-recovery.sqlPostgreSQL が稼動しているサーバにコピーする

/usr/local/src/pgpool-II-2.1/sql/pgpool-recovery/
scp pgpool-recovery.so postgres@192.168.1.151:/usr/local/pgsql/lib
scp pgpool-recovery.so postgres@192.168.1.152:/usr/local/pgsql/lib
scp pgpool-recovery.sql postgres@192.168.1.151:/usr/local/pgsql/share
scp pgpool-recovery.sql postgres@192.168.1.152:/usr/local/pgsql/share