PG13流复制:主从库pg_replication_slots是否应返回相同槽名?
Postgres流复制:主从库
pg_replication_slots视图差异说明 你的期望不正确,主库和从库的pg_replication_slots视图展示的内容本质上就不一样,具体逻辑如下:
主库的pg_replication_slots
主库上的这个视图记录的是在主库本地创建的所有复制槽(包括物理、逻辑复制槽),这些槽的核心作用是跟踪从库的WAL接收进度,避免主库提前清理从库尚未同步的WAL日志。你在主库能查到mycluster槽且active为t,说明当前从库正通过这个槽建立流复制连接,状态正常。
从库的pg_replication_slots
从库上的这个视图仅显示从库自身创建的复制槽——比如当从库作为级联复制的上游(给其他实例提供复制),或者在从库上创建了逻辑复制槽时,才会有记录。而单纯作为流复制接收端的从库,本地不会存储主库的复制槽信息,所以查询pg_replication_slots返回空结果是完全正常的。
关于从库pg_stat_wal_receiver中的slot_name
从库的pg_stat_wal_receiver视图是用来跟踪自身WAL接收进程的运行状态,其中的slot_name字段只是记录当前接收进程正在使用的主库端复制槽名称,并不代表从库本地存在这个槽的记录,这和主库的pg_replication_slots是两个完全独立的概念。
内容的提问来源于stack exchange,提问作者toanwa
相关产品推荐
相关产品推荐

