[Pgpool-general] pgpool-II + warm standby

Yoshiyuki Asaba y-asaba at sraoss.co.jp
Fri Feb 15 05:51:02 UTC 2008


Hi,

I've tried pgpool-II + PostgreSQL warm standby.

* Environment
  - pgpool-II(host1)
    - CVS HEAD version, not 2.0.1
  - Active PostgreSQL server(host2)
    - 8.3.0
  - Standby PostgreSQL server(host3)
    - 8.3.0
    - install pg_standby


* Setting pgpool-II
pgpool-II can set a trigger command executed at failover. I set
"failover_command" parameter to notice to standby server.

- pgpool.conf:
  connection_cache = true
  replication_mode = false
  master_slave_mode = false
  failover_command = 'ssh host3 touch /tmp/pgsql.trigger'
  backend_hostname0 = 'host1'
  backend_port0 = 5432
  backend_hostname1 = 'host2'
  backend_port1 = 5432
  health_check_period = 15


* Setting PostgreSQL
I used pg_standby module to recovery from WAL logs.
See the following URL.

http://www.postgresql.org/docs/8.3/static/pgstandby.html 

- postgresql.conf:
  archive_command = 'scp %p host3:/data/archive_log/%f'
  archive_timeout = 30

- recovery.conf:
  restore_command = 'pg_standby -s 2 -t /tmp/pgsql.trigger /data/archive_log %f %p %r'


* Setting warm standby
  host2% psql -c "SELECT pg_start_backup('warm standby')" postgres
  host2% rsync -az /data/ host3:/data
  host2% psql -c "SELECT pg_stop_backup()" postgres

  host3% cp recovery.conf /data
  host3% pg_ctl start


* Test
I've checked failover from host2 to host3.

  host1% createdb -p 9999 bench
  host1% pgbench -p 9999 -i bench
  host1% psql -p 9999 'SELECT pg_switch_xlog()' postgres

  host2% pg_ctl -D /data -mi stop (crash!!!)

  host1% psql -p 9999 'SELECT count(*) FROM accounts' bench


* Result
Success!


I think pgpool-II + warm standby is a good solution for HA system.
Any comment?

Regards,
--
Yoshiyuki Asaba
y-asaba at sraoss.co.jp


More information about the Pgpool-general mailing list