小编mli*_*ner的帖子

使用Postgresql逻辑复制,怎么知道订阅者被追上了?

Postgresql 有一些有趣的监控工具,用于监控新的逻辑复制系统的进度,但我不是很了解它们。我知道的两个工具是:

pg_stat_replication
Run Code Online (Sandbox Code Playgroud)

它是兄弟姐妹:

pg_stat_subscription
Run Code Online (Sandbox Code Playgroud)

我已经阅读了这些文档,但他们没有说明如何知道副本是否实际同步,并且解释这些表对我来说似乎并不明显。有人可以解释一下吗?

postgresql replication

7
推荐指数
2
解决办法
9555
查看次数

在 PostgreSQL 上允许逻辑复制订阅者的安全考虑

我经营一个非营利组织,致力于分享类似于维基百科的数据。

我们最近有一个客户想要我们的数据库的副本,我们意识到通过使用 PostgreSQL 的新逻辑复制,我们可以将我们的数据库表复制到他们控制的服务器上。

这对于完成我们共享数据的使命非常有用。它比提供慢速 API 好 100 倍。

我们为他们创建了一个这样的角色:

CREATE ROLE some_client WITH REPLICATION LOGIN PASSWORD 'long-password';
GRANT SELECT ON TABLE some_table TO some_client;
Run Code Online (Sandbox Code Playgroud)

我们为他们创建了一个 PUBLICATION,如下所示:

CREATE PUBLICATION testpublication FOR TABLE ONLY some_table;
Run Code Online (Sandbox Code Playgroud)

这样做有风险吗?我的分析是,这使他们可以选择访问他们正在复制到他们自己的服务器的表,但仅此而已。还有其他顾虑吗?如果有顾虑,是否有办法使这项工作发挥作用?我们有不想共享的表,但我们的大多数表只有公共数据。

postgresql replication security

5
推荐指数
1
解决办法
146
查看次数

如何从 PostgreSQL 中的 FOR ALL TABLES 逻辑复制 PUBLICATION 中删除表

我创建了一个逻辑复制 PUBLICATION 使用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.
Run Code Online (Sandbox Code Playgroud)

我已经完成了数百 GB 的巨大同步,而且我不想从新出版物开始。

问题: 1、本刊有赎回的希望吗?2. 如果没有,有没有办法创建一个完全同步的新发布,​​而不用完全同步重新开始?

谢谢。

postgresql replication

5
推荐指数
1
解决办法
1437
查看次数

标签 统计

postgresql ×3

replication ×3

security ×1