我有一个包含2亿行的常规表transactions
。
我决定使用逻辑复制将此表转换为声明性分区。
我在node1上创建了一个发布,如下所示:
CREATE PUBLICATION transactions_pub FOR TABLE transactions;
当我尝试在node2上创建Subscription时,如下所示:
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
是否可以使用逻辑复制将常规表复制到声明性分区表?
答案 0 :(得分:2)
否,逻辑复制无法从和复制到声明性分区表。
答案 1 :(得分:2)
目前,逻辑复制仅适用于基表。
仅可在基本表之间进行复制。也就是说,发布和预订端的表必须是普通表,而不是视图,实例化视图,分区根表或外部表。因此,在使用分区的情况下,您可以一对一地复制分区层次结构,但是当前无法复制到其他分区的设置。尝试复制基本表以外的表将导致错误。