Postgresql HA Q

Апгрейдил тут постгрес с 8.4 на 9.1, типа давно пора.

Поднял в соседней виртуальной машине (jail-е, точнее) второй сервер БД, отнес все туда, запустил postgresql-relay, вроде все работает, стал постепенно апгрейдить.

Где-то через час заметил, что PHP-шные (друпальские) сайты - работают (медленно), а перловые - нет. Ну так, из общих соображений, PHP ходит через локальный сокет, а если не вышло - через localhost:5432 (а там у меня relay), а DBI::Pg, если hostname не указали, ходит только в /tmp/.s.PGSQL... и все.

Отсюда вопросы, раз уж всплыла тема:

  1. А есть ли такой постгресовый proxy, который и локальный сокет эмулирует тоже?
  2. А есть ли такой постгресовый proxy, который на psql -l нормально отзывался бы, показывая бы нечто, согласно своей конфигурации?
  3. А есть ли такой простой постгесовый proxy, который умеет делать fallback на запасной сервер? Ну вот был master-slave, мастер сдох, а жить то надо.
Я знаю про PL/proxy, но идея со stored procedures меня совершенно не радует, у меня написанные мной за 15 лет скрипты, у меня написанные совершенно не мной всякие штуки, это банальные 'select a from b where c' и переписывать их нет никаких возможностей.

Comments

PgBouncer же, он вообще-то не прокси, а такой себе лоад-балансер и пулер коннектов, но большую часть требований умеет, включая сокеты. Я его всегда ставлю, даже если инстанс постгреса всего один. Рекомендую :)

О, спасибо!

Я слово слышал много раз, естественно, но когда понадобилось вспомнить - ниасилил.

Есть еще pgpool - частично подходит под заданные условия.

Реально заюзать pgbouncer под такие цели.
1. Умеет слушать как на tcp, так и через сокет
2. psql -l работает нормально (но это на локальной машине, с базой на другом сервере не проверял)
3. fallback также умеет