我使用FOR ALL TABLES
. 现在我意识到我毕竟不想复制所有的表。我尝试从出版物中删除其中一个表,但是:
mydb=# alter publication replicapublication drop table only migrations;
ERROR: publication "replicapublication" is defined as FOR ALL TABLES
DETAIL: Tables cannot be added to or dropped from FOR ALL TABLES publications.
我已经完成了数百 GB 的巨大同步,我不想从新的出版物重新开始。
问题: 1. 有没有赎回本刊物的希望?2. 如果没有,有什么方法可以创建一个完全同步的新出版物,而不用完全同步重新开始?
谢谢。
对于1,不,我不认为。2,可能,但似乎令人担忧。
我天真地认为,创建一个列出您的表的新出版物,然后在订阅端禁用旧订阅并使用相同的插槽创建新的订阅,所有这些都在一个事务中,会起作用。但是做一个实验,如果发布者负载不足,这将不起作用。它最终失去了一些变化。但是,如果发布者处于静止状态并且订阅者在交换时被赶上,它似乎确实有效。
我无法确定这是否是错误。我在文档中没有看到任何可以为这种非交易行为辩解的内容,但我没有仔细阅读整个内容。