2015-09-28 190 views
0

我一直在尝试使用pg_comparator构建数据仓库,以便从生产中同步特定的表。看起来pg_comparator很好地识别UPDATES,INSERTS和DELETES并同步记录正确。使用pg_comparator同步两个表在不同postgresql数据库中

虽然pg_comparator导致表被锁定在生产环境中,导致其他活动事务问题,但仍面临一个问题。

./pg_comparator -S -D \ 
     pgsql://[email protected]/dbname/user pgsql://[email protected]/dbname/user 

有人可以告诉我如何在不锁定源数据库表的情况下运行pg_comparator?

+0

它应该只需要锁定目标表。源表只应该需要一个快照。奇怪的是,它需要一个重量级的锁。 –

回答

1

按照docs有一个--lock, --no-lock选项:

--lock, --no-lock
是否锁定表。显式设置选项会覆盖默认的这种或那种方式。对于PostgreSQL,这个选项需要--transaction,默认启用。

默认值取决于当前操作:表未锁定用于比较,但锁定用于同步。