Здравствуйте!
Собираю такую схему:
pgpool2 . . . . . . node1 node2
Тип - Master/slave
pgpool2 - pgpool2 v3.1
node* - pgsql@etersoft v9.0.4
клиент - 1с v7.7 под wine@etersoft + selta@etersoft
stream репликация между нодами.
Клиент 1с не может установить соединение с базой, ошибка базы:
ERROR: cannot execute LOCK TABLE during recovery
STATEMENT: BEGIN;LOCK TABLE _1SCONNECT IN EXCLUSIVE MODE;
Ошибка 1с клиента:
"Доступ к базе данных на сервере возможен только из одного каталога информационной базы!"
При обычном положении вещей, такая ошибка клиента возникает, когда он видит более одного соединения к базе из одного каталога информационной базы.
Напрямую к node1 подключается. То есть грабли в pgpool2. По докумантации он не должен посылать на slave некоторые запросы, в том числе, BEGIN.
Знаю, что в конфиге pgpool2 можно выставить black_function_list, тогда на slave не будут посылаться запросы в списке. Пробовал различные варианты. Может, каким-то образом запретить pgpool2 сообщать клиенту об ошибке?
Единственное, когда работает, если исключить node2 из pgpool.
Что можете подсказать, какие решения можете предложить и, возможно, поделитесь вашими решениями подобного рода?