[Bucardo-general] Alternative to onetimecopy with bucardo 5.1.2

sym39 marechal.sylvain2 at gmail.com
Fri Jan 9 11:01:29 UTC 2015


Hello all,

Here my configuration :
-One machine "A" with one database that already have data, some clients 
regularly fill the database
-Another machine "B" with the same database schema, all tables empty, 
nobody fills the database

The database is quite simple : few tables with sequences.
-some tables are regularly updated each second with new lines of data. 
So those tables become big (at least 10 millions more lines per month)
-other tables contains only metadata that may vary during the time, but 
not too often

What I am trying to do is :
1. To initialize machine "B" with "A", when machine "B" can be 
assimilated as slave, and "A" as master (As said above, nobody tries to 
add lines to it when A is up, only A database is filled by the clients)
2. To make sure I can change role, ie, if machine A fails, machine B 
becomes the master and is filled with data, and when machine A is up (so 
it is the slave and B stay master) and there should be no gap in A 
databases (especially for big tables)

To do this, I though I could create a sync with database A and B as 
"source" and set the conflict_strategy of the sync to onetimecopy. But 
initial data is not filled, most probably because of the issue described 
here : https://github.com/bucardo/bucardo/issues/37 "onetime Does Not 
Work in 4.99.6 #37 "

So what is the best work around with the current version of bucardo to 
fill the initial data?
I was thinking of initially setting machine "B" as "target", then 
updating the role of the database to "source" and reloading the sync 
when the initial data has been copied to B.
-Is that what I should do?
-Should I wait "some time" before changing the B db role from "target" 
to "source"?
-If yes to previous question, how can I monitor the initial copy is 
complete? By checking the bucardo sync status is "Good"?
-Not really related - Should I create some specific sync for "big" 
tables, or is it better to have only one sync for all tables? I saw that 
having only one sync for all tables avoid tables to be filled when a 
conflict is detected (may be more about automatic conflicts resolution 
in another post ...)

Thanks and Regards,
Sylvain




More information about the Bucardo-general mailing list