[Bucardo-general] how to re-sync databases?

Greg Sabino Mullane greg at endpoint.com
Wed Nov 5 18:23:05 UTC 2008


> 1) I think it would be better to use a full copy sync as you mentioned  
> in a previous post, I can set up one, but how do I get it to run only  
> the once?
> 	After it was complete it got kicked off again.  What I'd like is
> a pointer on how to run a full copy sync then once that's finished it  
> will run a SWAP.

Setup the swap sync. At this point, all changes to the table will be
recorded in the bucardo_delta table. If there is already a sync in place,
you can simply remove rows from the bucardo_delta and bucardo_track tables
for the table in question.

Setup a fullcopy sync. These do not fire until you tell them to. Make
sure that stayalive, kidsalive, and ping is false in the sync table for
this sync. Once it is in place, initiate a fullcopy by kicking off that
sync. The fullcopy sync will not create bucardo_delta entries on either
side.

When it is done, you can turn on the swap sync again. The fullcopy should
only fire when you request it to.

> 2)  One other question is (I'm no expert on PostgreSQL) but I've been  
> playing with the setup and the triggers have been firing all day every  
> day on the live database as the database is now used and is LIVE - I  
> now have lots and lots of deltas, which I don't really need.  I think  
> I need to "clean" them out, do a full copy sync then start a SWAP  
> process to run indefinitely - once I get that then the two machines  
> will be fully synced.  The secondary machine is really just a hot  
> backup.
> 
> Can anyone give me fairly clear direction on how to achieve this -  
> once I get this working I promise to document the whole process - my  
> sake if for no one else!

Are you purging the tables with the bucardo_purge_delta() functions? These
should be run as a cronjob to keep the bucardo_delta and bucardo_track
tables slim and trim. On busy sites, you might have it run every 5 minutes
with a 5 minute 'window' (SELECT bucardo_purge_delta('5
minutes'::interval);

As I said above, if you are about to do a full copy, you blow away that
tables entires from the bucardo_delta and bucardo_track tables if you are
sure the tables are in sync as you need them to be.

On a related note, there is a long-term todo for a function to "compress"
the bucardo_delta entries. Originally, an upsert was used for this table,
but it was way too slow, so now we simply insert to the table on every
action, and similar rows are consolidated with a DISTINCT call in the
Bucardo code. But for syncs that don't run often and tables that change a
lot, a method to prune the "duplicate" bucardo_delta rows would help.

-- 
Greg Sabino Mullane greg at endpoint.com
End Point Corporation
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 163 bytes
Desc: not available
Url : https://mail.endcrypt.com/pipermail/bucardo-general/attachments/20081105/ed60e317/attachment.bin 


More information about the Bucardo-general mailing list