Я пытаюсь настроить bucardo в настройке главный-подчиненный с помощью pushdelta, однако при попытке создать синхронизацию я продолжаю сталкиваться со следующей ошибкой.
bash-4.1$ bucardo_ctl add sync dns source=dns_tables type=pushdelta targetgroup=dns_slaves
WARNING: Issuing rollback() due to DESTROY without explicit disconnect() of DBD::Pg::db handle dbname=dns;port=5432 at line 191.
CONTEXT: PL/Perl function "validate_sync"
SQL statement "SELECT validate_sync('dns')"
PL/Perl function "validate_sync"
Failed to add sync: DBD::Pg::st execute failed: ERROR: DBD::Pg::st execute failed: ERROR: permission denied for schema bucardo
LINE 1: SELECT 1 FROM bucardo.bucardo_delta_targets WHERE tablename=...
^ at line 191. at line 30.
CONTEXT: PL/Perl function "validate_sync" at /usr/sbin/bucardo_ctl line 3362.
Это потому, что я не настроил удаленную часть должным образом или ?, главный hba / идентификатор выглядит следующим образом:
# TYPE DATABASE USER CIDR-ADDRESS METHOD
# "local" is for Unix domain socket connections only
#local all postgres trust
host all postgres 127.0.0.1/32 ident
local all postgres ident
local all bucardo ident map=bucardo
local dns dns md5
host all all 127.0.0.1/32 md5
# MAPNAME SYSTEM-USERNAME PG-USERNAME
bucardo postgres bucardo
bucardo bucardo bucardo
# TYPE DATABASE USER CIDR-ADDRESS METHOD
# "local" is for Unix domain socket connections only
local all all ident
host all all 127.0.0.1/32 ident
# 10.0.1.2 is the master
host bucardo bucardo 10.0.1.2/32 ident
На самом деле я понятия не имею, что я делаю не так, но, вероятно, это как-то связано с неправильной настройкой удаленной стороны, но я не смог найти много на этом.
По какой-то причине я полностью упустил из виду, что вы должны создать суперпользователя на ведомом устройстве для самого bucardo, после добавления того, что синхронизация была успешно включена.