Bucardo添加同步以复制数据

时间:2012-08-02 21:00:22

标签: database postgresql perl database-replication bucardo

我正在使用Bucardo来复制数据库中的数据。我有一个名为mydb的数据库,另一个名为mydb2。它们都包含相同的表,在两种情况下都称为“数据”。按照this website上的步骤,我安装了Bucardo并添加了两个数据库:

bucardo_ctl add database mydb
bucardo_ctl add database mydb2

并添加了表格:

bucardo_ctl add all tables

现在,当我尝试使用以下命令添加同步时:

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

我收到以下错误:

DBD :: Pg :: st执行失败:错误:来自Perl函数的错误“herdcheck”:不能在第17行的同一个herd(1)中的不同数据库中获得山羊在/ usr / bin / bucardo_ctl第3346行。

有人有什么建议吗?任何人都将不胜感激。

1 个答案:

答案 0 :(得分:2)

所以,在source选项中你应该放置herd的名字(据我所知,它是表的列表。 然后,而不是:

bucardo_ctl add all tables

使用

bucardo_ctl add all tables --herd=foobar

而不是使用

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

使用

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

问题是源选项不是放置源数据库的地方,而是“牧群”或表。

请记住,pushdelta适用于带有主键的表,而fullcopy适用于无关紧要的表是否有PK。

希望有所帮助。