5

我有一个transactions包含 2 亿行的常规表。

我决定使用逻辑复制将此表转换为声明性分区。

我在 node1 上创建了一个出版物,如下所示:

CREATE PUBLICATION transactions_pub FOR TABLE transactions;

当我尝试在 node2 上创建订阅时,如下所示:

CREATE SUBSCRIPTION transactions_sub CONNECTION 'host=x.x.x.x port=5432 password=123456 user=replicator dbname=mydbname' PUBLICATION transactions_pub;

返回此错误:

ERROR:  logical replication target relation "public.transactions" is not a table

是否可以使用逻辑复制将常规表复制到声明性分区表?

4

2 回答 2

3

目前,逻辑复制仅适用于基表。

请参阅此文档页面

只能从基表复制到基表。也就是说,发布端和订阅端的表必须是普通表,而不是视图、物化视图、分区根表或外部表。因此,在分区的情况下,您可以一对一地复制分区层次结构,但目前不能复制到不同的分区设置。尝试复制基表以外的表将导致错误。

于 2019-01-10T09:14:20.670 回答
3

不,逻辑复制不能从声明分区表复制到声明性分区表。

于 2018-12-03T06:19:40.830 回答