[Bucardo-general] errors when setting new sync - role already exists?
Perez Sanchez, Enrique
enrique.perez_sanchez at siemens.com
Mon Feb 20 08:49:59 UTC 2023
Hello,
I have some difficulty understanding your situation.
However:
- You seem to have Bucardo installed in both nodes, you only need it in 1 which can be either or even a 3rd node.
- Bucardo will add a schema and triggers on all your tables being replicated in both dbs if you go for a multimaster setup.
- I'd start from scratch making sure you only have the bucardo software running in 1 node.
BR!
> -----Original Message-----
> From: Bucardo-general <bucardo-general-bounces at bucardo.org> On Behalf
> Of Michael Richardson
> Sent: viernes, 17 de febrero de 2023 22:44
> To: bucardo-general at bucardo.org
> Subject: [Bucardo-general] errors when setting new sync - role already exists?
>
>
> After having setup bucardo successful in a test environment, I tried to
> operationalize my stuff on some virtual appliances. The goal is to do forklift
> upgrades of the virtual appliances, but use bucardo to synchronize the
> databases before turning off the old machine.
> (Or to gain resilience by having a multimaster setup)
>
> I've run into a blocker that I can't seem to get any additional info on.
> In this case the "old" machine shipped without bucardo, and I installed
> bucardo on it via apt-get, while the new machine had bucardo as part of the
> build process. Aside from ~6 months differences in some packages, they are
> mostly identical. There is certificate authentication between the two
> machines, and that seems to work:
>
> bucardo at minerva-fountain:~$ psql
> psql (13.9 (Debian 13.9-0+deb11u1))
> Type "help" for help.
>
> bucardo=# select * from bucardo.sync;
> bucardo=# \q
> bucardo at minerva-fountain:~$ psql -h minerva-fountain-01 psql (13.9
> (Debian 13.9-0+deb11u1)) SSL connection (protocol: TLSv1.3, cipher:
> TLS_AES_256_GCM_SHA384, bits: 256, compression: off) Type "help" for
> help.
>
> bucardo=# select * from bucardo.sync;
> bucardo=# \q
>
> ("minerva-fountain" is new machine, "minerva-fountain-01" is old machine.
> Names according to mdns)
>
> I was looking at the sync table on both machines, and it's empty.
>
> bucardo at minerva-fountain:~$ export BUCARDO_DEBUG=true
> bucardo at minerva-fountain:~$ bucardo add sync resilience
> relgroup=resilience dbs=old,me
> SQL: INSERT INTO bucardo.sync (dbs,name,herd) VALUES (?,?,?)
> $VAR1 = 'resilience';
> $VAR2 = 'resilience';
> $VAR3 = 'resilience';
> WARNING: Issuing rollback() due to DESTROY without explicit disconnect() of
> DBD::Pg::db handle dbname=fountain at line 189.
> Failed to add sync: DBD::Pg::st execute failed: ERROR: DBD::Pg::db do failed:
> ERROR: role "bucardo" already exists at line 189. at line 30.
> CONTEXT: PL/Perl function "validate_sync" at /usr/bin/bucardo line 4670.
>
> My guess is that validate_sync thinks that bucardo is not properly installed on
> the old machine, and is trying to install it, that is failing.
>
> I've tried to drop the bucardo table and role from the old machine, but:
>
> postgres at minerva-fountain-01:~$ dropuser bucardo
> dropuser: error: removal of role "bucardo" failed: ERROR: role "bucardo"
> cannot be dropped because some objects depend on it
> DETAIL: 60 objects in database fountain
>
> where "fountain" is the database that I want to actually replicate.
> I don't quite understand why bucardo owns objects in my target database.
>
> bucardo at minerva-fountain:~$ bucardo list all
> -- dbgroups:
> dbgroup: resilience Members: me:target old:source
> -- databases:
> Database: me Status: active Conn: psql -U bucardo -d fountain
> Database: old Status: active Conn: psql -U bucardo -d fountain -h minerva-
> fountain-01
> -- relgroup:
> Relgroup: resilience DB: old Members: public.administrators,
> public.administrators_id_seq, public.ar_internal_metadata,
> public.certificates, public.certificates_id_seq, public.device_types,
> public.device_types_id_seq, public.devices, public.devices_id_seq,
> public.manufacturers, public.manufacturers_id_seq,
> public.schema_migrations, public.system_variables,
> public.system_variables_id_seq, public.voucher_requests,
> public.voucher_requests_id_seq, public.vouchers, public.vouchers_id_seq
> -- syncs:
> No syncs found
> -- tables:
> 9. Table: public.administrators DB: old PK: id (bigint)
> 3. Table: public.ar_internal_metadata DB: old PK: key (varchar)
> 4. Table: public.certificates DB: old PK: id (integer)
> 11. Table: public.device_types DB: old PK: id (integer)
> 10. Table: public.devices DB: old PK: id (integer)
> 8. Table: public.manufacturers DB: old PK: id (integer)
> 2. Table: public.schema_migrations DB: old PK: version (varchar)
> 5. Table: public.system_variables DB: old PK: id (integer)
> 6. Table: public.voucher_requests DB: old PK: id (integer)
> 7. Table: public.vouchers DB: old PK: id (integer)
> -- sequences:
> Sequence: public.administrators_id_seq DB: old
> Sequence: public.certificates_id_seq DB: old
> Sequence: public.devices_id_seq DB: old
> Sequence: public.device_types_id_seq DB: old
> Sequence: public.manufacturers_id_seq DB: old
> Sequence: public.system_variables_id_seq DB: old
> Sequence: public.voucher_requests_id_seq DB: old
> Sequence: public.vouchers_id_seq DB: old
More information about the Bucardo-general
mailing list