[Bucardo-general] multiple database - is there an issue?

Mitchell Perilstein Mitchell.Perilstein at trueposition.com
Mon Feb 4 19:06:55 UTC 2013


Good day,  Prospective noob here, trying to get a master-master swap 
going on several Postgres databases.  I think we're hitting the issue 
Rafik reported in July:

https://mail.endcrypt.com/pipermail/bucardo-general/2012-July/001498.html

I'm wondering if this made it into the bugzilla (if so I can't tell 
which one it is) and if anyone has made progress on it.  I think I'm 
getting close to tracking it down but first wanted to ask if someone 
could please sanity check my config?  I'm first assuming we're driving 
it wrong. Any advice appreciated.

Details:   If I rig for only one DB, they swap sync fine.  If I add a 
second db, things go astray as below. I've got two Solaris 10 boxes with 
the same PG 9.1 on both sides; each has a hostname for its peer called 
remotehost and localhost for itself.   Each box has Bucardo-4.99.6  
DBD-Pg-2.19.3  DBI-1.623 DBIx-Safe-1.2.5 and perl v5.8.8.   We do this 
exact same thing on both boxes:

   bucardo install --batch --log-destination=/tpdata/lg/logs 
--debugname=replication
     bucardo set log_level=debug
     bucardo add database         source_sg host=localhost user=tpadmin 
db=TPSignalingGateway
     bucardo add database --force target_sg host=remotehost user=tpadmin 
db=TPSignalingGateway
     bucardo add table connidtable db=source_sg herd=sgherd
     bucardo add dbgroup sggroup source_sg:source target_sg:target
     bucardo add database         source_lg host=localhost user=tpadmin 
db=TPLocationGateway
     bucardo add database --force target_lg host=remotehost user=tpadmin 
db=TPLocationGateway
     bucardo add table transactionid db=source_lg herd=lgherd
     bucardo add table smlcseqnum db=source_lg herd=lgherd
     bucardo add dbgroup lggroup source_lg:source target_lg:target

     bucardo start --log-destination=/tpdata/lg/logs --debug 
--no-exit-on-nosync

     bucardo add sync sg_sync herd=sgherd conflict_strategy=latest 
dbs=sggroup
     bucardo add sync lg_sync herd=lgherd conflict_strategy=latest 
dbs=lggroup
     bucardo activate sync sg_sync
     bucardo activate sync lg_sync

at this point we have this, which is already wrong:

     PID of Bucardo MCP: 17836
      Name      State              Last good    Time    Last I/D Last 
bad    Time
=========+==================+============+=======+===========+===========+======= 

      lg_sync | No records found |            |       | | |
      sg_sync | No records found |            |       | | |

If I stop bucardo and restart, I get this crash in 
Bucardo::validate_sync().

     (17874) [Thu Jan 31 12:16:57 2013] MCP    Inspecting target table 
"public.connidtable" on database "target_lg"
     (17874) [Thu Jan 31 12:16:57 2013] MCP Warning: Killed (line 5970): 
DBD::Pg::st execute failed: ERROR:  relation "public.connidtable" does 
not exist at /tpapp/tpdb/lib/perl5/Bucardo.pm line 5959.

Sticking some dumpers in there, just above that line, it turns out 
$self->{sdb} contains all four db's: source_lg target_lg source_sg 
target_sg; where I really expected only the source and target for the 
sync in question.  The checkcols prepare tried to hit a table in the 
wrong database.

    bash-3.2# bucardo list db
    Database: source_lg  Status: active  Conn: psql -p  -U tpadmin -d
    TPLocationGateway -h localhost
    Database: source_sg  Status: active  Conn: psql -p  -U tpadmin -d
    TPSignalingGateway -h localhost
    Database: target_lg  Status: active  Conn: psql -p  -U tpadmin -d
    TPLocationGateway -h tppeervirt
    Database: target_sg  Status: active  Conn: psql -p  -U tpadmin -d
    TPSignalingGateway -h tppeervirt
    bash-3.2# bucardo list herd
    Relgroup: lgherd  DB: source_lg  Members: public.smlcseqnum,
    public.transactionid
       Used in syncs: lg_sync
    Relgroup: sgherd  DB: source_sg  Members: public.connidtable
       Used in syncs: sg_sync
    bash-3.2# bucardo list sync
    Sync: lg_sync  Relgroup: lgherd [Active]
       DB group lggroup: source_lg (source) target_lg (target)
    Sync: sg_sync  Relgroup: sgherd [Active]
       DB group sggroup: source_sg (source) target_sg (target)
    bash-3.2# bucardo list table
    1. Table: public.connidtable    DB: source_sg  PK: type (int2)
    Syncs: sg_sync
    3. Table: public.smlcseqnum     DB: source_lg  PK: smlcid (bytea)
    Syncs: lg_sync
    2. Table: public.transactionid  DB: source_lg  PK: type (int2)
    Syncs: lg_sync


Thanks!


Confidentiality Notice: This e-mail (including any attachments) is intended only for the recipients named above. It may contain confidential or privileged information and should not be read, copied or otherwise used by any other person. If you are not a named recipient, please notify the sender of that fact and delete the e-mail from your system.

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mail.endcrypt.com/pipermail/bucardo-general/attachments/20130204/d1bf6232/attachment.html>


More information about the Bucardo-general mailing list