2012-08-02 3 views
1

J'utilise Bucardo pour répliquer des données dans une base de données. J'ai une base de données, appelée mydb, et une autre appelée mydb2. Ils contiennent tous les deux des tables identiques, appelées "données" dans les deux cas. En suivant les étapes sur this website, j'ai installé Bucardo et a ajouté les deux bases de données:Bucardo ajouter la synchronisation pour répliquer les données

bucardo_ctl add database mydb 
bucardo_ctl add database mydb2 

et a ajouté les tables:

bucardo_ctl add all tables 

Maintenant, quand j'essaie d'ajouter une synchronisation en utilisant la commande suivante:

bucardo_ctl add sync testfc source=mydb targetdb=mydb2 type=pushdelta tables=data 

je reçois l'erreur suivante:

DBD :: Pg :: st ex ecute a échoué: ERROR: erreur de la fonction Perl "herdcheck": Impossible d'avoir des chèvres de différentes bases dans le même troupeau (1) à la ligne 17. à/usr/bin/bucardo_ctl ligne 3346.

Quelqu'un a des suggestions? Tout serait apprécié.

Répondre

2

Ainsi, l'option de source que vous devez mettre le nom du troupeau (qui, comme je sais, la liste des tables Ensuite , au lieu de:.

bucardo_ctl add all tables 

utilisation

bucardo_ctl add all tables --herd=foobar 

Et au lieu d'utiliser

bucardo_ctl add sync testfc source=mydb targetdb=mydb2 type=pushdelta tables=data

u se

bucardo_ctl add sync testfc source=foobar targetdb=mydb2 type=pushdelta tables=data 

La chose est que l'option source n'est pas un endroit où vous mettez la base de données source, mais le « troupeau » ou tables. Rappelez-vous que les pushdelta sont pour les tables avec des clés primaires, et la copie complète est pour les tables qui n'a pas d'importance est qu'ils ont un PK ou non.

Espérons que ça aide.

Questions connexes