Есть сервер OPensuse 11.3 на нем postgresql 8.4. с БД с большим количеством таблиц и структурой которая может время от времени меняться. Поставили задачу что бы в случае падения основного сервера можно было продолжить работу на резервном сервере. Решили организовать репликацию пострес базы на основе pgpool. Установили 2-ой сервер с opensuse на нем также постгрес 8.4. на первом сервере установили пакет pgpool II 3.2. начали настройку. по инструкции: http://postgresql.ru.net/docs/pgpool-II.html.
появилась пачка вопросов:
1. в файле pgPool.conf есть переменные listen_addresses и port хотелось бы понять какие данные приходят на пгпул на этот порт и от кого они должны приходить ?
2. как проверить что соединение с резервным сервером состоялось и данные на него пошли?
3. в переменной backend_port0 мы указываем любой порт на который посылаем данные или именно порт постгреса 5432?
4 на резервном сервере какие нибудь настройки нужно проводить кроме: разрешения на подключение к постгресу в файле pg_hba.conf
Если я правильно понимаю,
Если я правильно понимаю, pgpool - это некий демон, который поддерживает пул соединений от клиента к серверу PostgreSQL и пул серверов, соединениями с которыми он управляет. В зависимости от настроек, он может заниматься балансировкой, т.е. раскидывать входящие соединения по тем серверам PostgreSQL, которые подключены к pgpool, так и репликацией, под которой тут подразумевается ПАРАЛЛЕЛЬНАЯ отправка входящих запросов на все серверы PostgreSQL подключенные к pgpool.
Теперь ответы на ваши вопросы:
> 1. в файле pgPool.conf есть переменные listen_addresses и port хотелось бы понять какие данные приходят на пгпул на этот порт и от кого они должны приходить ?
Приходят все те же данные, которые должны приходить от клиента к серверу PostgreSQL, т.е. pgpool для клиента прикидывается сервером PostgreSQL и соответственно данные приходят от клиента.
> 2. как проверить что соединение с резервным сервером состоялось и данные на него пошли?
Выполните INSERT, UPDATE или DELETE или любой другой запрос изменяющий данные в БД, затем сравните данные на обоих серверах - они должны добавится/удалиться/измениться и там и там.
> 3. в переменной backend_port0 мы указываем любой порт на который посылаем данные или именно порт постгреса 5432?
Вы указываете тот порт, на котором у вас работает PostgreSQL, потому что pgpool выступает в данном случае как front-end к пулу серверов PostgreSQL, перечисленных в backend_hostname*
> 4 на резервном сервере какие нибудь настройки нужно проводить кроме: разрешения на подключение к постгресу в файле pg_hba.conf
А вы инструкцию читали? По-моему там буквально на пальцах всё расписано.
1 исходя из логики вещей так
1 исходя из логики вещей так как клиент взаимодействует с постресом через порт 5432 то надо прописывать его. или я чего-то недогоняю?
2. а при первом запуске пгпула он не будет тупо копировать базу с сервера 1 на сервер2?
3. не понял что в бэкэнде нужно также указать еще и сервер на котором установлен пгпул а не только сервер на который мы делаем репликацию?
4 вопрос возник так как ни чего не сказано в примере про настройку 2-го сервера. если у вас есть какая либо другая юолее простая инстукция желательно на русском хотя и английский пойдет киньте пожалста ссылку
1. да. потому что машина с
1. да. потому что машина с pgpool совсем не факт, что та же самая, что и с PostgreSQL
2. ессно не будет
3. у вас не понимание, что есть фронт-энд, а что есть бак-энд. Фронт-энд - это pgpool, бак-энд - это PostgreSQL (возможно не один), у вас есть возможность в PostgreSQL указать настройки pgpool? Правильно - нету. На нет и суда нет.
4. вы понимаете, что такое ПАРАЛЛЕЛЬНЫЕ запросы? Почему второго? Хоть третьего, хоть сотого - сколько укажете в настройках pgpool. Проще того, что там написано - уже некуда. Если вам этой информации мало - велком на офф. сайт pgpool в раздел документации: http://pgpool.net/mediawiki/index.php/Main_Page